forward-ellipsoid-logratio

Specification

?
\[ecc > 0 \land ecc < 1\]
\[\begin{array}{l} t_0 := ecc \cdot \sin \phi\\ \log \left(\frac{1 + t\_0}{1 - t\_0}\right) \end{array} \]
(FPCore (phi ecc)
  :precision binary64
  :pre (and (> ecc 0.0) (< ecc 1.0))
  (let* ((t_0 (* ecc (sin phi)))) (log (/ (+ 1.0 t_0) (- 1.0 t_0)))))
double code(double phi, double ecc) {
	double t_0 = ecc * sin(phi);
	return log(((1.0 + t_0) / (1.0 - t_0)));
}
real(8) function code(phi, ecc)
use fmin_fmax_functions
    real(8), intent (in) :: phi
    real(8), intent (in) :: ecc
    real(8) :: t_0
    t_0 = ecc * sin(phi)
    code = log(((1.0d0 + t_0) / (1.0d0 - t_0)))
end function
public static double code(double phi, double ecc) {
	double t_0 = ecc * Math.sin(phi);
	return Math.log(((1.0 + t_0) / (1.0 - t_0)));
}
def code(phi, ecc):
	t_0 = ecc * math.sin(phi)
	return math.log(((1.0 + t_0) / (1.0 - t_0)))
function code(phi, ecc)
	t_0 = Float64(ecc * sin(phi))
	return log(Float64(Float64(1.0 + t_0) / Float64(1.0 - t_0)))
end
function tmp = code(phi, ecc)
	t_0 = ecc * sin(phi);
	tmp = log(((1.0 + t_0) / (1.0 - t_0)));
end
code[phi_, ecc_] := Block[{t$95$0 = N[(ecc * N[Sin[phi], $MachinePrecision]), $MachinePrecision]}, N[Log[N[(N[(1.0 + t$95$0), $MachinePrecision] / N[(1.0 - t$95$0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
f(phi, ecc):
	phi in [-inf, +inf],
	ecc in [0, 1]
code: THEORY
BEGIN
f(phi, ecc: real): real =
	LET t_0 = (ecc * (sin(phi))) IN
	ln((((1) + t_0) / ((1) - t_0)))
END code
\begin{array}{l}
t_0 := ecc \cdot \sin \phi\\
\log \left(\frac{1 + t\_0}{1 - t\_0}\right)
\end{array}

Timeout after 2.5min

Use the --timeout flag to change the timeout.