\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)\begin{array}{l}
\mathbf{if}\;\pi \cdot \ell \le -1.3881414212069512 \cdot 10^{+177}:\\
\;\;\;\;\pi \cdot \ell - \frac{\left(\left(\frac{\tan \left(\pi \cdot \ell\right)}{F}\right)\right)}{F}\\
\mathbf{elif}\;\pi \cdot \ell \le -8.564666451512906:\\
\;\;\;\;\pi \cdot \ell - \left(\left(\frac{\tan \left(\pi \cdot \ell\right)}{F \cdot F}\right)\right)\\
\mathbf{elif}\;\pi \cdot \ell \le 0.35529890587145435:\\
\;\;\;\;\mathsf{log1p}\left(\mathsf{expm1}\left(\pi \cdot \ell\right)\right) - \frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}\\
\mathbf{else}:\\
\;\;\;\;\pi \cdot \ell - \left(\left(\frac{\tan \left(\pi \cdot \ell\right)}{F \cdot F}\right)\right)\\
\end{array}double f(double F, double l) {
double r943391 = atan2(1.0, 0.0);
double r943392 = l;
double r943393 = r943391 * r943392;
double r943394 = 1.0;
double r943395 = F;
double r943396 = r943395 * r943395;
double r943397 = r943394 / r943396;
double r943398 = tan(r943393);
double r943399 = r943397 * r943398;
double r943400 = r943393 - r943399;
return r943400;
}
double f(double F, double l) {
double r943401 = atan2(1.0, 0.0);
double r943402 = l;
double r943403 = r943401 * r943402;
double r943404 = -1.3881414212069512e+177;
bool r943405 = r943403 <= r943404;
double r943406 = tan(r943403);
double r943407 = F;
double r943408 = r943406 / r943407;
double r943409 = /* ERROR: no posit support in C */;
double r943410 = /* ERROR: no posit support in C */;
double r943411 = r943410 / r943407;
double r943412 = r943403 - r943411;
double r943413 = -8.564666451512906;
bool r943414 = r943403 <= r943413;
double r943415 = r943407 * r943407;
double r943416 = r943406 / r943415;
double r943417 = /* ERROR: no posit support in C */;
double r943418 = /* ERROR: no posit support in C */;
double r943419 = r943403 - r943418;
double r943420 = 0.35529890587145435;
bool r943421 = r943403 <= r943420;
double r943422 = expm1(r943403);
double r943423 = log1p(r943422);
double r943424 = r943408 / r943407;
double r943425 = r943423 - r943424;
double r943426 = r943421 ? r943425 : r943419;
double r943427 = r943414 ? r943419 : r943426;
double r943428 = r943405 ? r943412 : r943427;
return r943428;
}



Bits error versus F



Bits error versus l
if (* PI l) < -1.3881414212069512e+177Initial program 20.4
Simplified20.4
rmApplied associate-/r*20.4
rmApplied insert-posit168.7
if -1.3881414212069512e+177 < (* PI l) < -8.564666451512906 or 0.35529890587145435 < (* PI l) Initial program 23.9
Simplified23.9
rmApplied insert-posit1616.6
if -8.564666451512906 < (* PI l) < 0.35529890587145435Initial program 8.6
Simplified8.1
rmApplied associate-/r*0.3
rmApplied log1p-expm1-u0.3
Final simplification7.8
herbie shell --seed 2019164 +o rules:numerics
(FPCore (F l)
:name "VandenBroeck and Keller, Equation (6)"
(- (* PI l) (* (/ 1 (* F F)) (tan (* PI l)))))