Average Error: 16.7 → 8.5
Time: 27.0s
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 -5.453098658475609672248586104357606884188 \cdot 10^{161}:\\ \;\;\;\;\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\left(\sqrt[3]{\pi} \cdot \sqrt[3]{\pi}\right) \cdot \left(\sqrt[3]{\pi} \cdot \ell\right)\right)\\ \mathbf{elif}\;\pi \cdot \ell \le 2.743338952070097193707040862319909377212 \cdot 10^{146}:\\ \;\;\;\;\pi \cdot \ell - \frac{\frac{\sin \left(\pi \cdot \ell\right) \cdot 1}{F}}{F \cdot \mathsf{fma}\left(\frac{-1}{2}, {\pi}^{2} \cdot {\ell}^{2}, \mathsf{fma}\left(\frac{1}{24}, {\pi}^{4} \cdot {\ell}^{4}, 1\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \left(\sqrt[3]{\frac{\frac{1 \cdot \tan \left(\pi \cdot \ell\right)}{F}}{F}} \cdot \sqrt[3]{\frac{\frac{1 \cdot \tan \left(\pi \cdot \ell\right)}{F}}{F}}\right) \cdot \sqrt[3]{\frac{\frac{1 \cdot \tan \left(\pi \cdot \ell\right)}{F}}{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 -5.453098658475609672248586104357606884188 \cdot 10^{161}:\\
\;\;\;\;\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\left(\sqrt[3]{\pi} \cdot \sqrt[3]{\pi}\right) \cdot \left(\sqrt[3]{\pi} \cdot \ell\right)\right)\\

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

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

\end{array}
double f(double F, double l) {
        double r28604 = atan2(1.0, 0.0);
        double r28605 = l;
        double r28606 = r28604 * r28605;
        double r28607 = 1.0;
        double r28608 = F;
        double r28609 = r28608 * r28608;
        double r28610 = r28607 / r28609;
        double r28611 = tan(r28606);
        double r28612 = r28610 * r28611;
        double r28613 = r28606 - r28612;
        return r28613;
}

double f(double F, double l) {
        double r28614 = atan2(1.0, 0.0);
        double r28615 = l;
        double r28616 = r28614 * r28615;
        double r28617 = -5.45309865847561e+161;
        bool r28618 = r28616 <= r28617;
        double r28619 = 1.0;
        double r28620 = F;
        double r28621 = r28620 * r28620;
        double r28622 = r28619 / r28621;
        double r28623 = cbrt(r28614);
        double r28624 = r28623 * r28623;
        double r28625 = r28623 * r28615;
        double r28626 = r28624 * r28625;
        double r28627 = tan(r28626);
        double r28628 = r28622 * r28627;
        double r28629 = r28616 - r28628;
        double r28630 = 2.743338952070097e+146;
        bool r28631 = r28616 <= r28630;
        double r28632 = sin(r28616);
        double r28633 = r28632 * r28619;
        double r28634 = r28633 / r28620;
        double r28635 = -0.5;
        double r28636 = 2.0;
        double r28637 = pow(r28614, r28636);
        double r28638 = pow(r28615, r28636);
        double r28639 = r28637 * r28638;
        double r28640 = 0.041666666666666664;
        double r28641 = 4.0;
        double r28642 = pow(r28614, r28641);
        double r28643 = pow(r28615, r28641);
        double r28644 = r28642 * r28643;
        double r28645 = 1.0;
        double r28646 = fma(r28640, r28644, r28645);
        double r28647 = fma(r28635, r28639, r28646);
        double r28648 = r28620 * r28647;
        double r28649 = r28634 / r28648;
        double r28650 = r28616 - r28649;
        double r28651 = tan(r28616);
        double r28652 = r28619 * r28651;
        double r28653 = r28652 / r28620;
        double r28654 = r28653 / r28620;
        double r28655 = cbrt(r28654);
        double r28656 = r28655 * r28655;
        double r28657 = r28656 * r28655;
        double r28658 = r28616 - r28657;
        double r28659 = r28631 ? r28650 : r28658;
        double r28660 = r28618 ? r28629 : r28659;
        return r28660;
}

Error

Bits error versus F

Bits error versus l

Derivation

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

    1. Initial program 19.3

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

      \[\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*19.3

      \[\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 -5.45309865847561e+161 < (* PI l) < 2.743338952070097e+146

    1. Initial program 15.8

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

      \[\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-frac15.8

      \[\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.3

      \[\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 tan-quot10.3

      \[\leadsto \pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \left(\frac{\sqrt{1}}{F} \cdot \color{blue}{\frac{\sin \left(\pi \cdot \ell\right)}{\cos \left(\pi \cdot \ell\right)}}\right)\]
    8. Applied associate-*r/10.3

      \[\leadsto \pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \color{blue}{\frac{\frac{\sqrt{1}}{F} \cdot \sin \left(\pi \cdot \ell\right)}{\cos \left(\pi \cdot \ell\right)}}\]
    9. Applied frac-times10.2

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\sqrt{1} \cdot \left(\frac{\sqrt{1}}{F} \cdot \sin \left(\pi \cdot \ell\right)\right)}{F \cdot \cos \left(\pi \cdot \ell\right)}}\]
    10. Simplified10.2

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

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

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

    if 2.743338952070097e+146 < (* PI l)

    1. Initial program 19.2

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

      \[\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.2

      \[\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.2

      \[\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.2

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

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

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

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

Reproduce

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