orteliusRaw = function(λ, φ) {
if (λ === 0) return [0, φ];
const π = Math.PI,
l = Math.abs(λ),
s = Math.sign(λ);
if (l <= π / 2) {
const F = 0.5 * (π * π / (4 * l) + l);
return [s * (l - F + Math.sqrt(F * F - φ * φ)), φ];
} else {
return [s * (Math.sqrt(π * π / 4 - φ * φ) + l - π / 2), φ];
}
}