Average Error: 16.3 → 8.3
Time: 23.7s
Precision: 64
\[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)\]
\[\begin{array}{l} \mathbf{if}\;\pi \cdot \ell \le -2.7948604358709023 \cdot 10^{+18}:\\ \;\;\;\;\pi \cdot \ell - \left(\left(\frac{\tan \left(\pi \cdot \ell\right)}{F \cdot F}\right)\right)\\ \mathbf{elif}\;\pi \cdot \ell \le 34381156308810.098:\\ \;\;\;\;\pi \cdot \ell - \frac{\frac{\frac{\sin \left(\sqrt{\pi} \cdot \left(\left(\sqrt{\sqrt{\pi}} \cdot \sqrt{\sqrt{\pi}}\right) \cdot \ell\right)\right)}{F}}{F}}{\cos \left(\pi \cdot \ell\right)}\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \left(\left(\frac{\tan \left(\pi \cdot \ell\right)}{F \cdot F}\right)\right)\\ \end{array}\]
\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)
\begin{array}{l}
\mathbf{if}\;\pi \cdot \ell \le -2.7948604358709023 \cdot 10^{+18}:\\
\;\;\;\;\pi \cdot \ell - \left(\left(\frac{\tan \left(\pi \cdot \ell\right)}{F \cdot F}\right)\right)\\

\mathbf{elif}\;\pi \cdot \ell \le 34381156308810.098:\\
\;\;\;\;\pi \cdot \ell - \frac{\frac{\frac{\sin \left(\sqrt{\pi} \cdot \left(\left(\sqrt{\sqrt{\pi}} \cdot \sqrt{\sqrt{\pi}}\right) \cdot \ell\right)\right)}{F}}{F}}{\cos \left(\pi \cdot \ell\right)}\\

\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 r329346 = atan2(1.0, 0.0);
        double r329347 = l;
        double r329348 = r329346 * r329347;
        double r329349 = 1.0;
        double r329350 = F;
        double r329351 = r329350 * r329350;
        double r329352 = r329349 / r329351;
        double r329353 = tan(r329348);
        double r329354 = r329352 * r329353;
        double r329355 = r329348 - r329354;
        return r329355;
}

double f(double F, double l) {
        double r329356 = atan2(1.0, 0.0);
        double r329357 = l;
        double r329358 = r329356 * r329357;
        double r329359 = -2.7948604358709023e+18;
        bool r329360 = r329358 <= r329359;
        double r329361 = tan(r329358);
        double r329362 = F;
        double r329363 = r329362 * r329362;
        double r329364 = r329361 / r329363;
        double r329365 = /* ERROR: no posit support in C */;
        double r329366 = /* ERROR: no posit support in C */;
        double r329367 = r329358 - r329366;
        double r329368 = 34381156308810.098;
        bool r329369 = r329358 <= r329368;
        double r329370 = sqrt(r329356);
        double r329371 = sqrt(r329370);
        double r329372 = r329371 * r329371;
        double r329373 = r329372 * r329357;
        double r329374 = r329370 * r329373;
        double r329375 = sin(r329374);
        double r329376 = r329375 / r329362;
        double r329377 = r329376 / r329362;
        double r329378 = cos(r329358);
        double r329379 = r329377 / r329378;
        double r329380 = r329358 - r329379;
        double r329381 = r329369 ? r329380 : r329367;
        double r329382 = r329360 ? r329367 : r329381;
        return r329382;
}

Error

Bits error versus F

Bits error versus l

Derivation

  1. Split input into 2 regimes
  2. if (* PI l) < -2.7948604358709023e+18 or 34381156308810.098 < (* PI l)

    1. Initial program 23.3

      \[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)\]
    2. Simplified23.3

      \[\leadsto \color{blue}{\pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right)}{F \cdot F}}\]
    3. Using strategy rm
    4. Applied insert-posit1615.6

      \[\leadsto \pi \cdot \ell - \color{blue}{\left(\left(\frac{\tan \left(\pi \cdot \ell\right)}{F \cdot F}\right)\right)}\]

    if -2.7948604358709023e+18 < (* PI l) < 34381156308810.098

    1. Initial program 9.2

      \[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)\]
    2. Simplified8.6

      \[\leadsto \color{blue}{\pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right)}{F \cdot F}}\]
    3. Taylor expanded around inf 8.6

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\sin \left(\pi \cdot \ell\right)}{{F}^{2} \cdot \cos \left(\pi \cdot \ell\right)}}\]
    4. Simplified0.7

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{F}}{F}}{\cos \left(\pi \cdot \ell\right)}}\]
    5. Using strategy rm
    6. Applied add-sqr-sqrt1.0

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\color{blue}{\left(\sqrt{\pi} \cdot \sqrt{\pi}\right)} \cdot \ell\right)}{F}}{F}}{\cos \left(\pi \cdot \ell\right)}\]
    7. Applied associate-*l*0.9

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \color{blue}{\left(\sqrt{\pi} \cdot \left(\sqrt{\pi} \cdot \ell\right)\right)}}{F}}{F}}{\cos \left(\pi \cdot \ell\right)}\]
    8. Using strategy rm
    9. Applied add-sqr-sqrt0.9

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\sqrt{\pi} \cdot \left(\sqrt{\color{blue}{\sqrt{\pi} \cdot \sqrt{\pi}}} \cdot \ell\right)\right)}{F}}{F}}{\cos \left(\pi \cdot \ell\right)}\]
    10. Applied sqrt-prod0.7

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\sqrt{\pi} \cdot \left(\color{blue}{\left(\sqrt{\sqrt{\pi}} \cdot \sqrt{\sqrt{\pi}}\right)} \cdot \ell\right)\right)}{F}}{F}}{\cos \left(\pi \cdot \ell\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification8.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;\pi \cdot \ell \le -2.7948604358709023 \cdot 10^{+18}:\\ \;\;\;\;\pi \cdot \ell - \left(\left(\frac{\tan \left(\pi \cdot \ell\right)}{F \cdot F}\right)\right)\\ \mathbf{elif}\;\pi \cdot \ell \le 34381156308810.098:\\ \;\;\;\;\pi \cdot \ell - \frac{\frac{\frac{\sin \left(\sqrt{\pi} \cdot \left(\left(\sqrt{\sqrt{\pi}} \cdot \sqrt{\sqrt{\pi}}\right) \cdot \ell\right)\right)}{F}}{F}}{\cos \left(\pi \cdot \ell\right)}\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \left(\left(\frac{\tan \left(\pi \cdot \ell\right)}{F \cdot F}\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019156 +o rules:numerics
(FPCore (F l)
  :name "VandenBroeck and Keller, Equation (6)"
  (- (* PI l) (* (/ 1 (* F F)) (tan (* PI l)))))