Average Error: 16.7 → 7.0
Time: 9.6s
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.32475527761606443 \cdot 10^{155}:\\ \;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \frac{1}{\frac{F}{\sqrt{1} \cdot \left(\pi \cdot \ell\right)} - \frac{1}{3} \cdot \frac{F \cdot \left(\pi \cdot \ell\right)}{\sqrt{1}}}\\ \mathbf{elif}\;\pi \cdot \ell \le 5.627794797241471 \cdot 10^{141}:\\ \;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \frac{1}{\frac{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)}{\sqrt{1} \cdot \sin \left(\pi \cdot \ell\right)}}\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\ell \cdot \pi\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 -5.32475527761606443 \cdot 10^{155}:\\
\;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \frac{1}{\frac{F}{\sqrt{1} \cdot \left(\pi \cdot \ell\right)} - \frac{1}{3} \cdot \frac{F \cdot \left(\pi \cdot \ell\right)}{\sqrt{1}}}\\

\mathbf{elif}\;\pi \cdot \ell \le 5.627794797241471 \cdot 10^{141}:\\
\;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \frac{1}{\frac{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)}{\sqrt{1} \cdot \sin \left(\pi \cdot \ell\right)}}\\

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

\end{array}
double f(double F, double l) {
        double r18814 = atan2(1.0, 0.0);
        double r18815 = l;
        double r18816 = r18814 * r18815;
        double r18817 = 1.0;
        double r18818 = F;
        double r18819 = r18818 * r18818;
        double r18820 = r18817 / r18819;
        double r18821 = tan(r18816);
        double r18822 = r18820 * r18821;
        double r18823 = r18816 - r18822;
        return r18823;
}

double f(double F, double l) {
        double r18824 = atan2(1.0, 0.0);
        double r18825 = l;
        double r18826 = r18824 * r18825;
        double r18827 = -5.324755277616064e+155;
        bool r18828 = r18826 <= r18827;
        double r18829 = 1.0;
        double r18830 = sqrt(r18829);
        double r18831 = F;
        double r18832 = r18830 / r18831;
        double r18833 = 1.0;
        double r18834 = r18830 * r18826;
        double r18835 = r18831 / r18834;
        double r18836 = 0.3333333333333333;
        double r18837 = r18831 * r18826;
        double r18838 = r18837 / r18830;
        double r18839 = r18836 * r18838;
        double r18840 = r18835 - r18839;
        double r18841 = r18833 / r18840;
        double r18842 = r18832 * r18841;
        double r18843 = r18826 - r18842;
        double r18844 = 5.627794797241471e+141;
        bool r18845 = r18826 <= r18844;
        double r18846 = 0.041666666666666664;
        double r18847 = 4.0;
        double r18848 = pow(r18824, r18847);
        double r18849 = r18846 * r18848;
        double r18850 = pow(r18825, r18847);
        double r18851 = 0.5;
        double r18852 = 2.0;
        double r18853 = pow(r18824, r18852);
        double r18854 = pow(r18825, r18852);
        double r18855 = r18853 * r18854;
        double r18856 = r18851 * r18855;
        double r18857 = r18833 - r18856;
        double r18858 = fma(r18849, r18850, r18857);
        double r18859 = r18831 * r18858;
        double r18860 = sin(r18826);
        double r18861 = r18830 * r18860;
        double r18862 = r18859 / r18861;
        double r18863 = r18833 / r18862;
        double r18864 = r18832 * r18863;
        double r18865 = r18826 - r18864;
        double r18866 = r18831 * r18831;
        double r18867 = r18829 / r18866;
        double r18868 = r18825 * r18824;
        double r18869 = tan(r18868);
        double r18870 = r18867 * r18869;
        double r18871 = r18826 - r18870;
        double r18872 = r18845 ? r18865 : r18871;
        double r18873 = r18828 ? r18843 : r18872;
        return r18873;
}

Error

Bits error versus F

Bits error versus l

Derivation

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

    1. Initial program 20.5

      \[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt20.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-frac20.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*20.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 tan-quot20.5

      \[\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 frac-times20.5

      \[\leadsto \pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \color{blue}{\frac{\sqrt{1} \cdot \sin \left(\pi \cdot \ell\right)}{F \cdot \cos \left(\pi \cdot \ell\right)}}\]
    9. Using strategy rm
    10. Applied clear-num20.5

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

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

    if -5.324755277616064e+155 < (* PI l) < 5.627794797241471e+141

    1. Initial program 15.1

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

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

      \[\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*9.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 tan-quot9.1

      \[\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 frac-times9.1

      \[\leadsto \pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \color{blue}{\frac{\sqrt{1} \cdot \sin \left(\pi \cdot \ell\right)}{F \cdot \cos \left(\pi \cdot \ell\right)}}\]
    9. Using strategy rm
    10. Applied clear-num9.1

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

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

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

    if 5.627794797241471e+141 < (* PI l)

    1. Initial program 21.0

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\pi \cdot \ell \le -5.32475527761606443 \cdot 10^{155}:\\ \;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \frac{1}{\frac{F}{\sqrt{1} \cdot \left(\pi \cdot \ell\right)} - \frac{1}{3} \cdot \frac{F \cdot \left(\pi \cdot \ell\right)}{\sqrt{1}}}\\ \mathbf{elif}\;\pi \cdot \ell \le 5.627794797241471 \cdot 10^{141}:\\ \;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \frac{1}{\frac{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)}{\sqrt{1} \cdot \sin \left(\pi \cdot \ell\right)}}\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\ell \cdot \pi\right)\\ \end{array}\]

Reproduce

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