forward-phip

Specification

?
\[ecc > 0 \land ecc < 1\]
\[\begin{array}{l} t_0 := ecc \cdot \sin \phi\\ 2 \cdot \tan^{-1} \left(e^{c \cdot \left(\log \tan \left(\frac{\pi}{4} + 0.5 \cdot \phi\right) - hlf\_e \cdot \log \left(\frac{1 + t\_0}{1 - t\_0}\right)\right) + K}\right) - \frac{\pi}{2} \end{array} \]
(FPCore (phi ecc c hlf_e K)
  :precision binary64
  :pre (and (> ecc 0.0) (< ecc 1.0))
  (let* ((t_0 (* ecc (sin phi))))
  (-
   (*
    2.0
    (atan
     (exp
      (+
       (*
        c
        (-
         (log (tan (+ (/ PI 4.0) (* 0.5 phi))))
         (* hlf_e (log (/ (+ 1.0 t_0) (- 1.0 t_0))))))
       K))))
   (/ PI 2.0))))
double code(double phi, double ecc, double c, double hlf_e, double K) {
	double t_0 = ecc * sin(phi);
	return (2.0 * atan(exp(((c * (log(tan(((((double) M_PI) / 4.0) + (0.5 * phi)))) - (hlf_e * log(((1.0 + t_0) / (1.0 - t_0)))))) + K)))) - (((double) M_PI) / 2.0);
}
public static double code(double phi, double ecc, double c, double hlf_e, double K) {
	double t_0 = ecc * Math.sin(phi);
	return (2.0 * Math.atan(Math.exp(((c * (Math.log(Math.tan(((Math.PI / 4.0) + (0.5 * phi)))) - (hlf_e * Math.log(((1.0 + t_0) / (1.0 - t_0)))))) + K)))) - (Math.PI / 2.0);
}
def code(phi, ecc, c, hlf_e, K):
	t_0 = ecc * math.sin(phi)
	return (2.0 * math.atan(math.exp(((c * (math.log(math.tan(((math.pi / 4.0) + (0.5 * phi)))) - (hlf_e * math.log(((1.0 + t_0) / (1.0 - t_0)))))) + K)))) - (math.pi / 2.0)
function code(phi, ecc, c, hlf_e, K)
	t_0 = Float64(ecc * sin(phi))
	return Float64(Float64(2.0 * atan(exp(Float64(Float64(c * Float64(log(tan(Float64(Float64(pi / 4.0) + Float64(0.5 * phi)))) - Float64(hlf_e * log(Float64(Float64(1.0 + t_0) / Float64(1.0 - t_0)))))) + K)))) - Float64(pi / 2.0))
end
function tmp = code(phi, ecc, c, hlf_e, K)
	t_0 = ecc * sin(phi);
	tmp = (2.0 * atan(exp(((c * (log(tan(((pi / 4.0) + (0.5 * phi)))) - (hlf_e * log(((1.0 + t_0) / (1.0 - t_0)))))) + K)))) - (pi / 2.0);
end
code[phi_, ecc_, c_, hlf$95$e_, K_] := Block[{t$95$0 = N[(ecc * N[Sin[phi], $MachinePrecision]), $MachinePrecision]}, N[(N[(2.0 * N[ArcTan[N[Exp[N[(N[(c * N[(N[Log[N[Tan[N[(N[(Pi / 4.0), $MachinePrecision] + N[(0.5 * phi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]], $MachinePrecision] - N[(hlf$95$e * N[Log[N[(N[(1.0 + t$95$0), $MachinePrecision] / N[(1.0 - t$95$0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + K), $MachinePrecision]], $MachinePrecision]], $MachinePrecision]), $MachinePrecision] - N[(Pi / 2.0), $MachinePrecision]), $MachinePrecision]]
f(phi, ecc, c, hlf_e, K):
	phi in [-inf, +inf],
	ecc in [0, 1],
	c in [-inf, +inf],
	hlf_e in [-inf, +inf],
	K in [-inf, +inf]
code: THEORY
BEGIN
f(phi, ecc, c, hlf_e, K: real): real =
	LET t_0 = (ecc * (sin(phi))) IN
	((2) * (atan((exp(((c * ((ln((tan((((4 * atan(1)) / (4)) + ((5e-1) * phi)))))) - (hlf_e * (ln((((1) + t_0) / ((1) - t_0))))))) + K)))))) - ((4 * atan(1)) / (2))
END code
\begin{array}{l}
t_0 := ecc \cdot \sin \phi\\
2 \cdot \tan^{-1} \left(e^{c \cdot \left(\log \tan \left(\frac{\pi}{4} + 0.5 \cdot \phi\right) - hlf\_e \cdot \log \left(\frac{1 + t\_0}{1 - t\_0}\right)\right) + K}\right) - \frac{\pi}{2}
\end{array}

Timeout after 2.5min

Use the --timeout flag to change the timeout.