glproj = `
float k = x * x + y * y + 2e-6;
lambda = x;
phi = 0.;
if (abs(y) > 1e-6) {
phi = y * .5;
for (int i = 0; i < 15; i++) {
float tanPhi = tan(phi),
secPhi = 1. / cos(phi),
j = k - (2. * y - phi) * phi;
phi -= (tanPhi * j + 2. * (phi - y)) / (2. + j * secPhi * secPhi + 2. * (phi - y) * tanPhi);
}
float tanPhi = tan(phi);
lambda = (abs(y) < abs(phi + 1. / tanPhi)
? asin(x * tanPhi)
: sign(y) * sign(x) * (acos(abs(x * tanPhi)) + halfPi)
) / sin(phi);
}
`