zhanmingkan
2022-05-14 0fc43fe898d14895c97427801293edfb3a0c5bf1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var HALF_PI = Math.PI/2;
 
module.exports = function(eccent, phi, sinphi) {
  if (Math.abs(phi) > HALF_PI) {
    return Number.NaN;
  }
  if (phi === HALF_PI) {
    return Number.POSITIVE_INFINITY;
  }
  if (phi === -1 * HALF_PI) {
    return Number.NEGATIVE_INFINITY;
  }
 
  var con = eccent * sinphi;
  return Math.log(Math.tan((HALF_PI + phi) / 2)) + eccent * Math.log((1 - con) / (1 + con)) / 2;
};