Average Error: 16.7 → 9.2
Time: 9.4s
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.011948691715024543580909495142699086666 \cdot 10^{169}:\\ \;\;\;\;\pi \cdot \ell - \left(\sqrt{\frac{1}{F \cdot F}} \cdot \sqrt{\frac{1}{F \cdot F}}\right) \cdot \tan \left(\pi \cdot \ell\right)\\ \mathbf{elif}\;\pi \cdot \ell \le 2.691706907806316542182290270953314062387 \cdot 10^{133}:\\ \;\;\;\;\pi \cdot \ell - \frac{1}{F} \cdot \left(1 \cdot \frac{\sin \left(\pi \cdot \ell\right)}{\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}\right)\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \frac{1}{F} \cdot \left(\frac{1}{F} \cdot \tan \left(\left(\pi \cdot \left(\sqrt[3]{\ell} \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt[3]{\ell}\right)\right)\right)\right) \cdot \sqrt[3]{\ell}\right)\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.011948691715024543580909495142699086666 \cdot 10^{169}:\\
\;\;\;\;\pi \cdot \ell - \left(\sqrt{\frac{1}{F \cdot F}} \cdot \sqrt{\frac{1}{F \cdot F}}\right) \cdot \tan \left(\pi \cdot \ell\right)\\

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

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

\end{array}
double f(double F, double l) {
        double r17802 = atan2(1.0, 0.0);
        double r17803 = l;
        double r17804 = r17802 * r17803;
        double r17805 = 1.0;
        double r17806 = F;
        double r17807 = r17806 * r17806;
        double r17808 = r17805 / r17807;
        double r17809 = tan(r17804);
        double r17810 = r17808 * r17809;
        double r17811 = r17804 - r17810;
        return r17811;
}

double f(double F, double l) {
        double r17812 = atan2(1.0, 0.0);
        double r17813 = l;
        double r17814 = r17812 * r17813;
        double r17815 = -1.0119486917150245e+169;
        bool r17816 = r17814 <= r17815;
        double r17817 = 1.0;
        double r17818 = F;
        double r17819 = r17818 * r17818;
        double r17820 = r17817 / r17819;
        double r17821 = sqrt(r17820);
        double r17822 = r17821 * r17821;
        double r17823 = tan(r17814);
        double r17824 = r17822 * r17823;
        double r17825 = r17814 - r17824;
        double r17826 = 2.6917069078063165e+133;
        bool r17827 = r17814 <= r17826;
        double r17828 = 1.0;
        double r17829 = r17828 / r17818;
        double r17830 = sin(r17814);
        double r17831 = 0.041666666666666664;
        double r17832 = 4.0;
        double r17833 = pow(r17812, r17832);
        double r17834 = r17831 * r17833;
        double r17835 = pow(r17813, r17832);
        double r17836 = 0.5;
        double r17837 = 2.0;
        double r17838 = pow(r17812, r17837);
        double r17839 = pow(r17813, r17837);
        double r17840 = r17838 * r17839;
        double r17841 = r17836 * r17840;
        double r17842 = r17828 - r17841;
        double r17843 = fma(r17834, r17835, r17842);
        double r17844 = r17843 * r17818;
        double r17845 = r17830 / r17844;
        double r17846 = r17817 * r17845;
        double r17847 = r17829 * r17846;
        double r17848 = r17814 - r17847;
        double r17849 = r17817 / r17818;
        double r17850 = cbrt(r17813);
        double r17851 = log1p(r17850);
        double r17852 = expm1(r17851);
        double r17853 = r17850 * r17852;
        double r17854 = r17812 * r17853;
        double r17855 = r17854 * r17850;
        double r17856 = tan(r17855);
        double r17857 = r17849 * r17856;
        double r17858 = r17829 * r17857;
        double r17859 = r17814 - r17858;
        double r17860 = r17827 ? r17848 : r17859;
        double r17861 = r17816 ? r17825 : r17860;
        return r17861;
}

Error

Bits error versus F

Bits error versus l

Derivation

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

    1. Initial program 20.0

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

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

    if -1.0119486917150245e+169 < (* PI l) < 2.6917069078063165e+133

    1. Initial program 15.0

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

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

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

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

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

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

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

    if 2.6917069078063165e+133 < (* PI l)

    1. Initial program 21.6

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

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

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

      \[\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-cbrt21.6

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\pi \cdot \ell \le -1.011948691715024543580909495142699086666 \cdot 10^{169}:\\ \;\;\;\;\pi \cdot \ell - \left(\sqrt{\frac{1}{F \cdot F}} \cdot \sqrt{\frac{1}{F \cdot F}}\right) \cdot \tan \left(\pi \cdot \ell\right)\\ \mathbf{elif}\;\pi \cdot \ell \le 2.691706907806316542182290270953314062387 \cdot 10^{133}:\\ \;\;\;\;\pi \cdot \ell - \frac{1}{F} \cdot \left(1 \cdot \frac{\sin \left(\pi \cdot \ell\right)}{\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}\right)\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \frac{1}{F} \cdot \left(\frac{1}{F} \cdot \tan \left(\left(\pi \cdot \left(\sqrt[3]{\ell} \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt[3]{\ell}\right)\right)\right)\right) \cdot \sqrt[3]{\ell}\right)\right)\\ \end{array}\]

Reproduce

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