\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)\begin{array}{l}
\mathbf{if}\;\pi \cdot \ell \leq -8.641113133281987 \cdot 10^{+34} \lor \neg \left(\pi \cdot \ell \leq 3952334.5931660286\right):\\
\;\;\;\;\pi \cdot \ell\\
\mathbf{else}:\\
\;\;\;\;\pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right) \cdot \frac{1}{F}}{F}\\
\end{array}(FPCore (F l) :precision binary64 (- (* PI l) (* (/ 1.0 (* F F)) (tan (* PI l)))))
(FPCore (F l)
:precision binary64
(if (or (<= (* PI l) -8.641113133281987e+34)
(not (<= (* PI l) 3952334.5931660286)))
(* PI l)
(- (* PI l) (/ (* (tan (* PI l)) (/ 1.0 F)) F))))double code(double F, double l) {
return (((double) M_PI) * l) - ((1.0 / (F * F)) * tan(((double) M_PI) * l));
}
double code(double F, double l) {
double tmp;
if (((((double) M_PI) * l) <= -8.641113133281987e+34) || !((((double) M_PI) * l) <= 3952334.5931660286)) {
tmp = ((double) M_PI) * l;
} else {
tmp = (((double) M_PI) * l) - ((tan(((double) M_PI) * l) * (1.0 / F)) / F);
}
return tmp;
}



Bits error versus F



Bits error versus l
Results
if (*.f64 PI.f64 l) < -8.64111313328198651e34 or 3952334.59316602862 < (*.f64 PI.f64 l) Initial program 23.7
Simplified23.7
Taylor expanded around 0 0.6
if -8.64111313328198651e34 < (*.f64 PI.f64 l) < 3952334.59316602862Initial program 9.8
Simplified9.4
rmApplied associate-/r*_binary641.3
rmApplied div-inv_binary641.3
Final simplification1.0
herbie shell --seed 2020299
(FPCore (F l)
:name "VandenBroeck and Keller, Equation (6)"
:precision binary64
(- (* PI l) (* (/ 1.0 (* F F)) (tan (* PI l)))))