Average Error: 17.5 → 8.8
Time: 9.3s
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 -7.92727466488188767 \cdot 10^{162}:\\ \;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \left(\frac{\sqrt{1}}{F} \cdot \tan \left(\left(\sqrt[3]{\pi} \cdot \sqrt[3]{\pi}\right) \cdot \left(\sqrt[3]{\pi} \cdot \ell\right)\right)\right)\\ \mathbf{elif}\;\pi \cdot \ell \le 3.309098575533877 \cdot 10^{144}:\\ \;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \frac{\sin \left(\pi \cdot \ell\right) \cdot \sqrt{1}}{\mathsf{fma}\left(\frac{1}{24} \cdot {\pi}^{4}, {\ell}^{4}, 1 - \frac{1}{2} \cdot \left({\pi}^{2} \cdot {\ell}^{2}\right)\right) \cdot F}\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \left(\left(\sqrt[3]{\frac{1}{F \cdot F}} \cdot \sqrt[3]{\frac{1}{F \cdot F}}\right) \cdot \sqrt[3]{\frac{1}{F \cdot F}}\right) \cdot \tan \left(\pi \cdot \ell\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 -7.92727466488188767 \cdot 10^{162}:\\
\;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \left(\frac{\sqrt{1}}{F} \cdot \tan \left(\left(\sqrt[3]{\pi} \cdot \sqrt[3]{\pi}\right) \cdot \left(\sqrt[3]{\pi} \cdot \ell\right)\right)\right)\\

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

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

\end{array}
double f(double F, double l) {
        double r16444 = atan2(1.0, 0.0);
        double r16445 = l;
        double r16446 = r16444 * r16445;
        double r16447 = 1.0;
        double r16448 = F;
        double r16449 = r16448 * r16448;
        double r16450 = r16447 / r16449;
        double r16451 = tan(r16446);
        double r16452 = r16450 * r16451;
        double r16453 = r16446 - r16452;
        return r16453;
}

double f(double F, double l) {
        double r16454 = atan2(1.0, 0.0);
        double r16455 = l;
        double r16456 = r16454 * r16455;
        double r16457 = -7.927274664881888e+162;
        bool r16458 = r16456 <= r16457;
        double r16459 = 1.0;
        double r16460 = sqrt(r16459);
        double r16461 = F;
        double r16462 = r16460 / r16461;
        double r16463 = cbrt(r16454);
        double r16464 = r16463 * r16463;
        double r16465 = r16463 * r16455;
        double r16466 = r16464 * r16465;
        double r16467 = tan(r16466);
        double r16468 = r16462 * r16467;
        double r16469 = r16462 * r16468;
        double r16470 = r16456 - r16469;
        double r16471 = 3.309098575533877e+144;
        bool r16472 = r16456 <= r16471;
        double r16473 = sin(r16456);
        double r16474 = r16473 * r16460;
        double r16475 = 0.041666666666666664;
        double r16476 = 4.0;
        double r16477 = pow(r16454, r16476);
        double r16478 = r16475 * r16477;
        double r16479 = pow(r16455, r16476);
        double r16480 = 1.0;
        double r16481 = 0.5;
        double r16482 = 2.0;
        double r16483 = pow(r16454, r16482);
        double r16484 = pow(r16455, r16482);
        double r16485 = r16483 * r16484;
        double r16486 = r16481 * r16485;
        double r16487 = r16480 - r16486;
        double r16488 = fma(r16478, r16479, r16487);
        double r16489 = r16488 * r16461;
        double r16490 = r16474 / r16489;
        double r16491 = r16462 * r16490;
        double r16492 = r16456 - r16491;
        double r16493 = r16461 * r16461;
        double r16494 = r16459 / r16493;
        double r16495 = cbrt(r16494);
        double r16496 = r16495 * r16495;
        double r16497 = r16496 * r16495;
        double r16498 = tan(r16456);
        double r16499 = r16497 * r16498;
        double r16500 = r16456 - r16499;
        double r16501 = r16472 ? r16492 : r16500;
        double r16502 = r16458 ? r16470 : r16501;
        return r16502;
}

Error

Bits error versus F

Bits error versus l

Derivation

  1. Split input into 3 regimes
  2. if (* PI l) < -7.927274664881888e+162

    1. Initial program 19.5

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

      \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\sqrt{1} \cdot \sqrt{1}}}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)\]
    4. Applied times-frac19.5

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

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\sqrt{1}}{F} \cdot \left(\frac{\sqrt{1}}{F} \cdot \tan \left(\pi \cdot \ell\right)\right)}\]
    6. Using strategy rm
    7. Applied add-cube-cbrt19.4

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

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

    if -7.927274664881888e+162 < (* PI l) < 3.309098575533877e+144

    1. Initial program 16.5

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

      \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\sqrt{1} \cdot \sqrt{1}}}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)\]
    4. Applied times-frac16.5

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

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

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

      \[\leadsto \pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \frac{\sin \left(\pi \cdot \ell\right) \cdot \sqrt{1}}{\color{blue}{\left(\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)\right)} \cdot F}\]
    8. Simplified4.7

      \[\leadsto \pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \frac{\sin \left(\pi \cdot \ell\right) \cdot \sqrt{1}}{\color{blue}{\mathsf{fma}\left(\frac{1}{24} \cdot {\pi}^{4}, {\ell}^{4}, 1 - \frac{1}{2} \cdot \left({\pi}^{2} \cdot {\ell}^{2}\right)\right)} \cdot F}\]

    if 3.309098575533877e+144 < (* PI l)

    1. Initial program 20.8

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

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

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

Reproduce

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