Average Error: 16.6 → 8.1
Time: 9.3s
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.455450186058043088726824553465467054861 \cdot 10^{159}:\\ \;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \left(\frac{\sqrt{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 2.02677691823346220115086084828006352432 \cdot 10^{150}:\\ \;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \frac{\sin \left(\pi \cdot \ell\right) \cdot \sqrt{1}}{\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}\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \left(\frac{\sqrt{1}}{F} \cdot \tan \left(\sqrt{\pi} \cdot \left(\sqrt{\pi} \cdot \ell\right)\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.455450186058043088726824553465467054861 \cdot 10^{159}:\\
\;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \left(\frac{\sqrt{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 2.02677691823346220115086084828006352432 \cdot 10^{150}:\\
\;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \frac{\sin \left(\pi \cdot \ell\right) \cdot \sqrt{1}}{\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}\\

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

\end{array}
double f(double F, double l) {
        double r17536 = atan2(1.0, 0.0);
        double r17537 = l;
        double r17538 = r17536 * r17537;
        double r17539 = 1.0;
        double r17540 = F;
        double r17541 = r17540 * r17540;
        double r17542 = r17539 / r17541;
        double r17543 = tan(r17538);
        double r17544 = r17542 * r17543;
        double r17545 = r17538 - r17544;
        return r17545;
}

double f(double F, double l) {
        double r17546 = atan2(1.0, 0.0);
        double r17547 = l;
        double r17548 = r17546 * r17547;
        double r17549 = -1.455450186058043e+159;
        bool r17550 = r17548 <= r17549;
        double r17551 = 1.0;
        double r17552 = sqrt(r17551);
        double r17553 = F;
        double r17554 = r17552 / r17553;
        double r17555 = cbrt(r17546);
        double r17556 = r17555 * r17555;
        double r17557 = r17555 * r17547;
        double r17558 = r17556 * r17557;
        double r17559 = tan(r17558);
        double r17560 = r17554 * r17559;
        double r17561 = r17554 * r17560;
        double r17562 = r17548 - r17561;
        double r17563 = 2.0267769182334622e+150;
        bool r17564 = r17548 <= r17563;
        double r17565 = sin(r17548);
        double r17566 = r17565 * r17552;
        double r17567 = 0.041666666666666664;
        double r17568 = 4.0;
        double r17569 = pow(r17546, r17568);
        double r17570 = r17567 * r17569;
        double r17571 = pow(r17547, r17568);
        double r17572 = 1.0;
        double r17573 = 0.5;
        double r17574 = 2.0;
        double r17575 = pow(r17546, r17574);
        double r17576 = pow(r17547, r17574);
        double r17577 = r17575 * r17576;
        double r17578 = r17573 * r17577;
        double r17579 = r17572 - r17578;
        double r17580 = fma(r17570, r17571, r17579);
        double r17581 = r17580 * r17553;
        double r17582 = r17566 / r17581;
        double r17583 = r17554 * r17582;
        double r17584 = r17548 - r17583;
        double r17585 = sqrt(r17546);
        double r17586 = r17585 * r17547;
        double r17587 = r17585 * r17586;
        double r17588 = tan(r17587);
        double r17589 = r17554 * r17588;
        double r17590 = r17554 * r17589;
        double r17591 = r17548 - r17590;
        double r17592 = r17564 ? r17584 : r17591;
        double r17593 = r17550 ? r17562 : r17592;
        return r17593;
}

Error

Bits error versus F

Bits error versus l

Derivation

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

    1. Initial program 19.9

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

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

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

      \[\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-cube-cbrt19.9

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

      \[\leadsto \pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \left(\frac{\sqrt{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 -1.455450186058043e+159 < (* PI l) < 2.0267769182334622e+150

    1. Initial program 15.4

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

      \[\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.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*9.6

      \[\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. Taylor expanded around inf 9.5

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

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

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

    if 2.0267769182334622e+150 < (* PI l)

    1. Initial program 19.6

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

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

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\pi \cdot \ell \le -1.455450186058043088726824553465467054861 \cdot 10^{159}:\\ \;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \left(\frac{\sqrt{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 2.02677691823346220115086084828006352432 \cdot 10^{150}:\\ \;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \frac{\sin \left(\pi \cdot \ell\right) \cdot \sqrt{1}}{\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}\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \left(\frac{\sqrt{1}}{F} \cdot \tan \left(\sqrt{\pi} \cdot \left(\sqrt{\pi} \cdot \ell\right)\right)\right)\\ \end{array}\]

Reproduce

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