Average Error: 16.9 → 10.5
Time: 22.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 -8.757979863708946505416534410315933795511 \cdot 10^{154}:\\ \;\;\;\;\pi \cdot \ell - \tan \left(\left(\sqrt[3]{\pi} \cdot \sqrt[3]{\pi}\right) \cdot \left(\ell \cdot \sqrt[3]{\pi}\right)\right) \cdot \frac{1}{F \cdot F}\\ \mathbf{elif}\;\pi \cdot \ell \le 3.05190989949100331550401816924217866895 \cdot 10^{135}:\\ \;\;\;\;\pi \cdot \ell - \frac{\frac{\sin \left(\pi \cdot \ell\right)}{F} \cdot \frac{1}{F}}{\mathsf{fma}\left(\frac{-1}{2}, \left(\pi \cdot \ell\right) \cdot \left(\pi \cdot \ell\right), \mathsf{fma}\left(\frac{1}{24}, \left(\left(\pi \cdot \ell\right) \cdot \left(\pi \cdot \ell\right)\right) \cdot \left(\left(\pi \cdot \ell\right) \cdot \left(\pi \cdot \ell\right)\right), 1\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \tan \left(\left(\sqrt[3]{\pi} \cdot \sqrt[3]{\pi}\right) \cdot \left(\ell \cdot \sqrt[3]{\pi}\right)\right) \cdot \frac{1}{F \cdot F}\\ \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 -8.757979863708946505416534410315933795511 \cdot 10^{154}:\\
\;\;\;\;\pi \cdot \ell - \tan \left(\left(\sqrt[3]{\pi} \cdot \sqrt[3]{\pi}\right) \cdot \left(\ell \cdot \sqrt[3]{\pi}\right)\right) \cdot \frac{1}{F \cdot F}\\

\mathbf{elif}\;\pi \cdot \ell \le 3.05190989949100331550401816924217866895 \cdot 10^{135}:\\
\;\;\;\;\pi \cdot \ell - \frac{\frac{\sin \left(\pi \cdot \ell\right)}{F} \cdot \frac{1}{F}}{\mathsf{fma}\left(\frac{-1}{2}, \left(\pi \cdot \ell\right) \cdot \left(\pi \cdot \ell\right), \mathsf{fma}\left(\frac{1}{24}, \left(\left(\pi \cdot \ell\right) \cdot \left(\pi \cdot \ell\right)\right) \cdot \left(\left(\pi \cdot \ell\right) \cdot \left(\pi \cdot \ell\right)\right), 1\right)\right)}\\

\mathbf{else}:\\
\;\;\;\;\pi \cdot \ell - \tan \left(\left(\sqrt[3]{\pi} \cdot \sqrt[3]{\pi}\right) \cdot \left(\ell \cdot \sqrt[3]{\pi}\right)\right) \cdot \frac{1}{F \cdot F}\\

\end{array}
double f(double F, double l) {
        double r671518 = atan2(1.0, 0.0);
        double r671519 = l;
        double r671520 = r671518 * r671519;
        double r671521 = 1.0;
        double r671522 = F;
        double r671523 = r671522 * r671522;
        double r671524 = r671521 / r671523;
        double r671525 = tan(r671520);
        double r671526 = r671524 * r671525;
        double r671527 = r671520 - r671526;
        return r671527;
}

double f(double F, double l) {
        double r671528 = atan2(1.0, 0.0);
        double r671529 = l;
        double r671530 = r671528 * r671529;
        double r671531 = -8.757979863708947e+154;
        bool r671532 = r671530 <= r671531;
        double r671533 = cbrt(r671528);
        double r671534 = r671533 * r671533;
        double r671535 = r671529 * r671533;
        double r671536 = r671534 * r671535;
        double r671537 = tan(r671536);
        double r671538 = 1.0;
        double r671539 = F;
        double r671540 = r671539 * r671539;
        double r671541 = r671538 / r671540;
        double r671542 = r671537 * r671541;
        double r671543 = r671530 - r671542;
        double r671544 = 3.051909899491003e+135;
        bool r671545 = r671530 <= r671544;
        double r671546 = sin(r671530);
        double r671547 = r671546 / r671539;
        double r671548 = r671538 / r671539;
        double r671549 = r671547 * r671548;
        double r671550 = -0.5;
        double r671551 = r671530 * r671530;
        double r671552 = 0.041666666666666664;
        double r671553 = r671551 * r671551;
        double r671554 = 1.0;
        double r671555 = fma(r671552, r671553, r671554);
        double r671556 = fma(r671550, r671551, r671555);
        double r671557 = r671549 / r671556;
        double r671558 = r671530 - r671557;
        double r671559 = r671545 ? r671558 : r671543;
        double r671560 = r671532 ? r671543 : r671559;
        return r671560;
}

Error

Bits error versus F

Bits error versus l

Derivation

  1. Split input into 2 regimes
  2. if (* PI l) < -8.757979863708947e+154 or 3.051909899491003e+135 < (* PI l)

    1. Initial program 20.7

      \[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)\]
    2. Using strategy rm
    3. Applied add-cube-cbrt20.7

      \[\leadsto \pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\color{blue}{\left(\left(\sqrt[3]{\pi} \cdot \sqrt[3]{\pi}\right) \cdot \sqrt[3]{\pi}\right)} \cdot \ell\right)\]
    4. Applied associate-*l*20.7

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

    if -8.757979863708947e+154 < (* PI l) < 3.051909899491003e+135

    1. Initial program 15.3

      \[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)\]
    2. Taylor expanded around inf 15.0

      \[\leadsto \pi \cdot \ell - \color{blue}{1 \cdot \frac{\sin \left(\pi \cdot \ell\right)}{{F}^{2} \cdot \cos \left(\pi \cdot \ell\right)}}\]
    3. Simplified9.2

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{\sin \left(\ell \cdot \pi\right)}{F} \cdot \frac{1}{F}}{\cos \left(\ell \cdot \pi\right)}}\]
    4. Taylor expanded around 0 6.5

      \[\leadsto \pi \cdot \ell - \frac{\frac{\sin \left(\ell \cdot \pi\right)}{F} \cdot \frac{1}{F}}{\color{blue}{\left(\frac{1}{24} \cdot \left({\pi}^{4} \cdot {\ell}^{4}\right) + 1\right) - \frac{1}{2} \cdot \left({\pi}^{2} \cdot {\ell}^{2}\right)}}\]
    5. Simplified6.5

      \[\leadsto \pi \cdot \ell - \frac{\frac{\sin \left(\ell \cdot \pi\right)}{F} \cdot \frac{1}{F}}{\color{blue}{\mathsf{fma}\left(\frac{-1}{2}, \left(\ell \cdot \pi\right) \cdot \left(\ell \cdot \pi\right), \mathsf{fma}\left(\frac{1}{24}, \left(\left(\ell \cdot \pi\right) \cdot \left(\ell \cdot \pi\right)\right) \cdot \left(\left(\ell \cdot \pi\right) \cdot \left(\ell \cdot \pi\right)\right), 1\right)\right)}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification10.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;\pi \cdot \ell \le -8.757979863708946505416534410315933795511 \cdot 10^{154}:\\ \;\;\;\;\pi \cdot \ell - \tan \left(\left(\sqrt[3]{\pi} \cdot \sqrt[3]{\pi}\right) \cdot \left(\ell \cdot \sqrt[3]{\pi}\right)\right) \cdot \frac{1}{F \cdot F}\\ \mathbf{elif}\;\pi \cdot \ell \le 3.05190989949100331550401816924217866895 \cdot 10^{135}:\\ \;\;\;\;\pi \cdot \ell - \frac{\frac{\sin \left(\pi \cdot \ell\right)}{F} \cdot \frac{1}{F}}{\mathsf{fma}\left(\frac{-1}{2}, \left(\pi \cdot \ell\right) \cdot \left(\pi \cdot \ell\right), \mathsf{fma}\left(\frac{1}{24}, \left(\left(\pi \cdot \ell\right) \cdot \left(\pi \cdot \ell\right)\right) \cdot \left(\left(\pi \cdot \ell\right) \cdot \left(\pi \cdot \ell\right)\right), 1\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \tan \left(\left(\sqrt[3]{\pi} \cdot \sqrt[3]{\pi}\right) \cdot \left(\ell \cdot \sqrt[3]{\pi}\right)\right) \cdot \frac{1}{F \cdot F}\\ \end{array}\]

Reproduce

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