\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)\pi \cdot \ell - \frac{1}{F} \cdot \left(\frac{1}{F} \cdot \tan \left(\sqrt{\pi} \cdot \left(\mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt{\sqrt{\pi}} \cdot \sqrt{\sqrt{\pi}}\right)\right) \cdot \ell\right)\right)\right)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 / F) * ((1.0 / F) * tan((sqrt(((double) M_PI)) * (expm1(log1p((sqrt(sqrt(((double) M_PI))) * sqrt(sqrt(((double) M_PI)))))) * l))))));
}



Bits error versus F



Bits error versus l
Results
Initial program 16.4
rmApplied *-un-lft-identity16.4
Applied times-frac16.4
Applied associate-*l*12.5
rmApplied add-sqr-sqrt12.6
Applied associate-*l*12.6
rmApplied expm1-log1p-u12.7
rmApplied add-sqr-sqrt12.7
Applied sqrt-prod12.5
Final simplification12.5
herbie shell --seed 2020075 +o rules:numerics
(FPCore (F l)
:name "VandenBroeck and Keller, Equation (6)"
:precision binary64
(- (* PI l) (* (/ 1 (* F F)) (tan (* PI l)))))