glproj = `
float pi_4 = pi / 4., f = pi_4, y0 = abs(y), sqrt8 = sqrt(8.), cosPhi_2, tanPhi_2;
if (y0 < ${Math.log(1 + Math.sqrt(2))}) {
lambda = x;
phi = 2. * atan(exp(y)) - halfPi;
} else {
for (int i = 0; i < 25; i++) {
cosPhi_2 = cos(f / 2.);
tanPhi_2 = tan(f / 2.);
f -= (sqrt8 * (f - pi_4) - log(tanPhi_2) - y0) / (sqrt8 - cosPhi_2 * cosPhi_2 / (2. * tanPhi_2));
}
lambda = x / (cos(f) * (sqrt8 - 1. / sin(f)));
phi = sign(y) * f;
}
`