\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)
\pi \cdot \ell - \frac{\frac{1}{\mathsf{fma}\left(F, \mathsf{fma}\left(\pi \cdot \ell, -0.3333333333333333, {\left(\pi \cdot \ell\right)}^{3} \cdot -0.022222222222222223\right) + -0.0021164021164021165 \cdot \left({\pi}^{5} \cdot {\ell}^{5}\right), \frac{F}{\pi \cdot \ell}\right)}}{F}
(FPCore (F l) :precision binary64 (- (* PI l) (* (/ 1.0 (* F F)) (tan (* PI l)))))
(FPCore (F l)
:precision binary64
(-
(* PI l)
(/
(/
1.0
(fma
F
(+
(fma
(* PI l)
-0.3333333333333333
(* (pow (* PI l) 3.0) -0.022222222222222223))
(* -0.0021164021164021165 (* (pow PI 5.0) (pow l 5.0))))
(/ F (* PI l))))
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) {
return (((double) M_PI) * l) - ((1.0 / fma(F, (fma((((double) M_PI) * l), -0.3333333333333333, (pow((((double) M_PI) * l), 3.0) * -0.022222222222222223)) + (-0.0021164021164021165 * (pow(((double) M_PI), 5.0) * pow(l, 5.0)))), (F / (((double) M_PI) * l)))) / F);
}



Bits error versus F



Bits error versus l
Initial program 16.6
Simplified16.4
Applied clear-num_binary6416.4
Simplified12.4
Applied associate-/r/_binary6412.4
Applied *-un-lft-identity_binary6412.4
Applied times-frac_binary6412.4
Taylor expanded in l around 0 2.2
Simplified2.2
Applied associate-*r/_binary642.2
Simplified2.2
Final simplification2.2
herbie shell --seed 2022160
(FPCore (F l)
:name "VandenBroeck and Keller, Equation (6)"
:precision binary64
(- (* PI l) (* (/ 1.0 (* F F)) (tan (* PI l)))))