Average Error: 16.8 → 8.4
Time: 7.9s
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.3614300485963869 \cdot 10^{155} \lor \neg \left(\pi \cdot \ell \le 3.5842679016593094 \cdot 10^{146}\right):\\ \;\;\;\;\pi \cdot \ell - \left(\sqrt[3]{\frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)} \cdot \sqrt[3]{\frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)}\right) \cdot \sqrt[3]{\frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)}\\ \mathbf{else}:\\ \;\;\;\;\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)\\ \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.3614300485963869 \cdot 10^{155} \lor \neg \left(\pi \cdot \ell \le 3.5842679016593094 \cdot 10^{146}\right):\\
\;\;\;\;\pi \cdot \ell - \left(\sqrt[3]{\frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)} \cdot \sqrt[3]{\frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)}\right) \cdot \sqrt[3]{\frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)}\\

\mathbf{else}:\\
\;\;\;\;\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)\\

\end{array}
double f(double F, double l) {
        double r12744 = atan2(1.0, 0.0);
        double r12745 = l;
        double r12746 = r12744 * r12745;
        double r12747 = 1.0;
        double r12748 = F;
        double r12749 = r12748 * r12748;
        double r12750 = r12747 / r12749;
        double r12751 = tan(r12746);
        double r12752 = r12750 * r12751;
        double r12753 = r12746 - r12752;
        return r12753;
}

double f(double F, double l) {
        double r12754 = atan2(1.0, 0.0);
        double r12755 = l;
        double r12756 = r12754 * r12755;
        double r12757 = -1.361430048596387e+155;
        bool r12758 = r12756 <= r12757;
        double r12759 = 3.5842679016593094e+146;
        bool r12760 = r12756 <= r12759;
        double r12761 = !r12760;
        bool r12762 = r12758 || r12761;
        double r12763 = 1.0;
        double r12764 = F;
        double r12765 = r12764 * r12764;
        double r12766 = r12763 / r12765;
        double r12767 = tan(r12756);
        double r12768 = r12766 * r12767;
        double r12769 = cbrt(r12768);
        double r12770 = r12769 * r12769;
        double r12771 = r12770 * r12769;
        double r12772 = r12756 - r12771;
        double r12773 = 1.0;
        double r12774 = r12773 / r12764;
        double r12775 = sin(r12756);
        double r12776 = 0.041666666666666664;
        double r12777 = 4.0;
        double r12778 = pow(r12754, r12777);
        double r12779 = r12776 * r12778;
        double r12780 = pow(r12755, r12777);
        double r12781 = 0.5;
        double r12782 = 2.0;
        double r12783 = pow(r12754, r12782);
        double r12784 = pow(r12755, r12782);
        double r12785 = r12783 * r12784;
        double r12786 = r12781 * r12785;
        double r12787 = r12773 - r12786;
        double r12788 = fma(r12779, r12780, r12787);
        double r12789 = r12788 * r12764;
        double r12790 = r12775 / r12789;
        double r12791 = r12763 * r12790;
        double r12792 = r12774 * r12791;
        double r12793 = r12756 - r12792;
        double r12794 = r12762 ? r12772 : r12793;
        return r12794;
}

Error

Bits error versus F

Bits error versus l

Derivation

  1. Split input into 2 regimes
  2. if (* PI l) < -1.361430048596387e+155 or 3.5842679016593094e+146 < (* PI l)

    1. Initial program 20.1

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

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

    if -1.361430048596387e+155 < (* PI l) < 3.5842679016593094e+146

    1. Initial program 15.5

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

      \[\leadsto \pi \cdot \ell - \frac{\color{blue}{1 \cdot 1}}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)\]
    4. Applied times-frac15.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*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.5

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

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

      \[\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)\]
  3. Recombined 2 regimes into one program.
  4. Final simplification8.4

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

Reproduce

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