Average Error: 16.8 → 8.5
Time: 25.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 -1.11061370736856776078178159035441977786 \cdot 10^{157}:\\ \;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \left(\frac{\sqrt{1}}{F} \cdot \tan \left(\sqrt{\pi} \cdot \left(\mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt{\pi}\right)\right) \cdot \ell\right)\right)\right)\\ \mathbf{elif}\;\pi \cdot \ell \le 1.822976993796846565161595270557530324041 \cdot 10^{151}:\\ \;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \frac{\frac{\sqrt{1}}{F} \cdot \sin \left(\sqrt{\pi} \cdot \left(\sqrt{\pi} \cdot \ell\right)\right)}{\mathsf{fma}\left(\frac{-1}{2}, \left(\pi \cdot \ell\right) \cdot \left(\pi \cdot \ell\right), \mathsf{fma}\left(\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), \frac{1}{24}, 1\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{1}{F \cdot F}\right)\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 -1.11061370736856776078178159035441977786 \cdot 10^{157}:\\
\;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \left(\frac{\sqrt{1}}{F} \cdot \tan \left(\sqrt{\pi} \cdot \left(\mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt{\pi}\right)\right) \cdot \ell\right)\right)\right)\\

\mathbf{elif}\;\pi \cdot \ell \le 1.822976993796846565161595270557530324041 \cdot 10^{151}:\\
\;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \frac{\frac{\sqrt{1}}{F} \cdot \sin \left(\sqrt{\pi} \cdot \left(\sqrt{\pi} \cdot \ell\right)\right)}{\mathsf{fma}\left(\frac{-1}{2}, \left(\pi \cdot \ell\right) \cdot \left(\pi \cdot \ell\right), \mathsf{fma}\left(\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), \frac{1}{24}, 1\right)\right)}\\

\mathbf{else}:\\
\;\;\;\;\pi \cdot \ell - \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{1}{F \cdot F}\right)\right) \cdot \tan \left(\pi \cdot \ell\right)\\

\end{array}
double f(double F, double l) {
        double r1199701 = atan2(1.0, 0.0);
        double r1199702 = l;
        double r1199703 = r1199701 * r1199702;
        double r1199704 = 1.0;
        double r1199705 = F;
        double r1199706 = r1199705 * r1199705;
        double r1199707 = r1199704 / r1199706;
        double r1199708 = tan(r1199703);
        double r1199709 = r1199707 * r1199708;
        double r1199710 = r1199703 - r1199709;
        return r1199710;
}

double f(double F, double l) {
        double r1199711 = atan2(1.0, 0.0);
        double r1199712 = l;
        double r1199713 = r1199711 * r1199712;
        double r1199714 = -1.1106137073685678e+157;
        bool r1199715 = r1199713 <= r1199714;
        double r1199716 = 1.0;
        double r1199717 = sqrt(r1199716);
        double r1199718 = F;
        double r1199719 = r1199717 / r1199718;
        double r1199720 = sqrt(r1199711);
        double r1199721 = log1p(r1199720);
        double r1199722 = expm1(r1199721);
        double r1199723 = r1199722 * r1199712;
        double r1199724 = r1199720 * r1199723;
        double r1199725 = tan(r1199724);
        double r1199726 = r1199719 * r1199725;
        double r1199727 = r1199719 * r1199726;
        double r1199728 = r1199713 - r1199727;
        double r1199729 = 1.8229769937968466e+151;
        bool r1199730 = r1199713 <= r1199729;
        double r1199731 = r1199720 * r1199712;
        double r1199732 = r1199720 * r1199731;
        double r1199733 = sin(r1199732);
        double r1199734 = r1199719 * r1199733;
        double r1199735 = -0.5;
        double r1199736 = r1199713 * r1199713;
        double r1199737 = r1199736 * r1199736;
        double r1199738 = 0.041666666666666664;
        double r1199739 = 1.0;
        double r1199740 = fma(r1199737, r1199738, r1199739);
        double r1199741 = fma(r1199735, r1199736, r1199740);
        double r1199742 = r1199734 / r1199741;
        double r1199743 = r1199719 * r1199742;
        double r1199744 = r1199713 - r1199743;
        double r1199745 = r1199718 * r1199718;
        double r1199746 = r1199716 / r1199745;
        double r1199747 = log1p(r1199746);
        double r1199748 = expm1(r1199747);
        double r1199749 = tan(r1199713);
        double r1199750 = r1199748 * r1199749;
        double r1199751 = r1199713 - r1199750;
        double r1199752 = r1199730 ? r1199744 : r1199751;
        double r1199753 = r1199715 ? r1199728 : r1199752;
        return r1199753;
}

Error

Bits error versus F

Bits error versus l

Derivation

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

    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-sqr-sqrt20.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-frac20.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*20.8

      \[\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-sqr-sqrt20.9

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

      \[\leadsto \pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \left(\frac{\sqrt{1}}{F} \cdot \tan \color{blue}{\left(\sqrt{\pi} \cdot \left(\sqrt{\pi} \cdot \ell\right)\right)}\right)\]
    9. Using strategy rm
    10. Applied expm1-log1p-u20.9

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

    if -1.1106137073685678e+157 < (* PI l) < 1.8229769937968466e+151

    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.1

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

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

      \[\leadsto \pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \left(\frac{\sqrt{1}}{F} \cdot \tan \color{blue}{\left(\sqrt{\pi} \cdot \left(\sqrt{\pi} \cdot \ell\right)\right)}\right)\]
    9. Using strategy rm
    10. Applied tan-quot10.3

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

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

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

      \[\leadsto \pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \frac{\frac{\sqrt{1}}{F} \cdot \sin \left(\sqrt{\pi} \cdot \left(\sqrt{\pi} \cdot \ell\right)\right)}{\color{blue}{\mathsf{fma}\left(\frac{-1}{2}, \left(\pi \cdot \ell\right) \cdot \left(\pi \cdot \ell\right), \mathsf{fma}\left(\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), \frac{1}{24}, 1\right)\right)}}\]

    if 1.8229769937968466e+151 < (* PI l)

    1. Initial program 18.6

      \[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)\]
    2. Using strategy rm
    3. Applied expm1-log1p-u18.6

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\pi \cdot \ell \le -1.11061370736856776078178159035441977786 \cdot 10^{157}:\\ \;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \left(\frac{\sqrt{1}}{F} \cdot \tan \left(\sqrt{\pi} \cdot \left(\mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt{\pi}\right)\right) \cdot \ell\right)\right)\right)\\ \mathbf{elif}\;\pi \cdot \ell \le 1.822976993796846565161595270557530324041 \cdot 10^{151}:\\ \;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \frac{\frac{\sqrt{1}}{F} \cdot \sin \left(\sqrt{\pi} \cdot \left(\sqrt{\pi} \cdot \ell\right)\right)}{\mathsf{fma}\left(\frac{-1}{2}, \left(\pi \cdot \ell\right) \cdot \left(\pi \cdot \ell\right), \mathsf{fma}\left(\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), \frac{1}{24}, 1\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{1}{F \cdot F}\right)\right) \cdot \tan \left(\pi \cdot \ell\right)\\ \end{array}\]

Reproduce

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