Average Error: 17.5 → 8.8
Time: 8.8s
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{1}{F} \cdot \left(\frac{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{1}{F} \cdot \frac{1 \cdot \sin \left(\pi \cdot \ell\right)}{F \cdot \mathsf{fma}\left(\frac{1}{24} \cdot {\pi}^{4}, {\ell}^{4}, 1 - \frac{1}{2} \cdot \left({\pi}^{2} \cdot {\ell}^{2}\right)\right)}\\ \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{1}{F} \cdot \left(\frac{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{1}{F} \cdot \frac{1 \cdot \sin \left(\pi \cdot \ell\right)}{F \cdot \mathsf{fma}\left(\frac{1}{24} \cdot {\pi}^{4}, {\ell}^{4}, 1 - \frac{1}{2} \cdot \left({\pi}^{2} \cdot {\ell}^{2}\right)\right)}\\

\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 r15643 = atan2(1.0, 0.0);
        double r15644 = l;
        double r15645 = r15643 * r15644;
        double r15646 = 1.0;
        double r15647 = F;
        double r15648 = r15647 * r15647;
        double r15649 = r15646 / r15648;
        double r15650 = tan(r15645);
        double r15651 = r15649 * r15650;
        double r15652 = r15645 - r15651;
        return r15652;
}

double f(double F, double l) {
        double r15653 = atan2(1.0, 0.0);
        double r15654 = l;
        double r15655 = r15653 * r15654;
        double r15656 = -7.927274664881888e+162;
        bool r15657 = r15655 <= r15656;
        double r15658 = 1.0;
        double r15659 = F;
        double r15660 = r15658 / r15659;
        double r15661 = 1.0;
        double r15662 = r15661 / r15659;
        double r15663 = cbrt(r15653);
        double r15664 = r15663 * r15663;
        double r15665 = r15663 * r15654;
        double r15666 = r15664 * r15665;
        double r15667 = tan(r15666);
        double r15668 = r15662 * r15667;
        double r15669 = r15660 * r15668;
        double r15670 = r15655 - r15669;
        double r15671 = 3.309098575533877e+144;
        bool r15672 = r15655 <= r15671;
        double r15673 = sin(r15655);
        double r15674 = r15661 * r15673;
        double r15675 = 0.041666666666666664;
        double r15676 = 4.0;
        double r15677 = pow(r15653, r15676);
        double r15678 = r15675 * r15677;
        double r15679 = pow(r15654, r15676);
        double r15680 = 0.5;
        double r15681 = 2.0;
        double r15682 = pow(r15653, r15681);
        double r15683 = pow(r15654, r15681);
        double r15684 = r15682 * r15683;
        double r15685 = r15680 * r15684;
        double r15686 = r15658 - r15685;
        double r15687 = fma(r15678, r15679, r15686);
        double r15688 = r15659 * r15687;
        double r15689 = r15674 / r15688;
        double r15690 = r15660 * r15689;
        double r15691 = r15655 - r15690;
        double r15692 = r15659 * r15659;
        double r15693 = r15661 / r15692;
        double r15694 = cbrt(r15693);
        double r15695 = r15694 * r15694;
        double r15696 = r15695 * r15694;
        double r15697 = tan(r15655);
        double r15698 = r15696 * r15697;
        double r15699 = r15655 - r15698;
        double r15700 = r15672 ? r15691 : r15699;
        double r15701 = r15657 ? r15670 : r15700;
        return r15701;
}

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 *-un-lft-identity19.5

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

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

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{1}{F} \cdot \left(\frac{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{1}{F} \cdot \left(\frac{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{1}{F} \cdot \left(\frac{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 *-un-lft-identity16.5

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

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

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

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

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

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

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

    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{1}{F} \cdot \left(\frac{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{1}{F} \cdot \frac{1 \cdot \sin \left(\pi \cdot \ell\right)}{F \cdot \mathsf{fma}\left(\frac{1}{24} \cdot {\pi}^{4}, {\ell}^{4}, 1 - \frac{1}{2} \cdot \left({\pi}^{2} \cdot {\ell}^{2}\right)\right)}\\ \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)))))