\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)\begin{array}{l}
\mathbf{if}\;\pi \cdot \ell \le -8.659932407972988 \cdot 10^{+22}:\\
\;\;\;\;\pi \cdot \ell - \frac{\left(\left(\frac{\tan \left(\pi \cdot \ell\right)}{F}\right)\right)}{F}\\
\mathbf{elif}\;\pi \cdot \ell \le 1.3394936946479616 \cdot 10^{-06}:\\
\;\;\;\;\pi \cdot \ell - \frac{\tan \left(\sqrt{\pi} \cdot \left(\ell \cdot \left(\sqrt{\sqrt{\pi}} \cdot \sqrt{\sqrt{\pi}}\right)\right)\right)}{F} \cdot \frac{1}{F}\\
\mathbf{else}:\\
\;\;\;\;\pi \cdot \ell - \frac{\left(\left(\frac{\tan \left(\pi \cdot \ell\right)}{F}\right)\right)}{F}\\
\end{array}double f(double F, double l) {
double r811072 = atan2(1.0, 0.0);
double r811073 = l;
double r811074 = r811072 * r811073;
double r811075 = 1.0;
double r811076 = F;
double r811077 = r811076 * r811076;
double r811078 = r811075 / r811077;
double r811079 = tan(r811074);
double r811080 = r811078 * r811079;
double r811081 = r811074 - r811080;
return r811081;
}
double f(double F, double l) {
double r811082 = atan2(1.0, 0.0);
double r811083 = l;
double r811084 = r811082 * r811083;
double r811085 = -8.659932407972988e+22;
bool r811086 = r811084 <= r811085;
double r811087 = tan(r811084);
double r811088 = F;
double r811089 = r811087 / r811088;
double r811090 = /* ERROR: no posit support in C */;
double r811091 = /* ERROR: no posit support in C */;
double r811092 = r811091 / r811088;
double r811093 = r811084 - r811092;
double r811094 = 1.3394936946479616e-06;
bool r811095 = r811084 <= r811094;
double r811096 = sqrt(r811082);
double r811097 = sqrt(r811096);
double r811098 = r811097 * r811097;
double r811099 = r811083 * r811098;
double r811100 = r811096 * r811099;
double r811101 = tan(r811100);
double r811102 = r811101 / r811088;
double r811103 = 1.0;
double r811104 = r811103 / r811088;
double r811105 = r811102 * r811104;
double r811106 = r811084 - r811105;
double r811107 = r811095 ? r811106 : r811093;
double r811108 = r811086 ? r811093 : r811107;
return r811108;
}



Bits error versus F



Bits error versus l
if (* PI l) < -8.659932407972988e+22 or 1.3394936946479616e-06 < (* PI l) Initial program 23.5
Simplified23.5
rmApplied associate-/r*23.5
rmApplied insert-posit1616.4
if -8.659932407972988e+22 < (* PI l) < 1.3394936946479616e-06Initial program 9.1
Simplified8.5
rmApplied *-un-lft-identity8.5
Applied times-frac0.9
rmApplied add-sqr-sqrt1.2
Applied associate-*l*1.1
rmApplied add-sqr-sqrt1.1
Applied sqrt-prod0.9
Final simplification8.9
herbie shell --seed 2019158 +o rules:numerics
(FPCore (F l)
:name "VandenBroeck and Keller, Equation (6)"
(- (* PI l) (* (/ 1 (* F F)) (tan (* PI l)))))