Average Error: 16.7 → 8.9
Time: 8.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 -2.30427372910525123 \cdot 10^{156}:\\ \;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \left(\left(\sqrt[3]{\frac{\sqrt{1}}{F}} \cdot \sqrt[3]{\frac{\sqrt{1}}{F}}\right) \cdot \left(\sqrt[3]{\frac{\sqrt{1}}{F}} \cdot \tan \left(\pi \cdot \ell\right)\right)\right)\\ \mathbf{elif}\;\pi \cdot \ell \le 6.8293540204626205 \cdot 10^{135}:\\ \;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \frac{\sqrt{1} \cdot \sin \left(\pi \cdot \ell\right)}{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)}\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\left(\sqrt[3]{\pi \cdot \ell} \cdot \sqrt[3]{\pi \cdot \ell}\right) \cdot \sqrt[3]{\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 -2.30427372910525123 \cdot 10^{156}:\\
\;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \left(\left(\sqrt[3]{\frac{\sqrt{1}}{F}} \cdot \sqrt[3]{\frac{\sqrt{1}}{F}}\right) \cdot \left(\sqrt[3]{\frac{\sqrt{1}}{F}} \cdot \tan \left(\pi \cdot \ell\right)\right)\right)\\

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

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

\end{array}
double f(double F, double l) {
        double r16291 = atan2(1.0, 0.0);
        double r16292 = l;
        double r16293 = r16291 * r16292;
        double r16294 = 1.0;
        double r16295 = F;
        double r16296 = r16295 * r16295;
        double r16297 = r16294 / r16296;
        double r16298 = tan(r16293);
        double r16299 = r16297 * r16298;
        double r16300 = r16293 - r16299;
        return r16300;
}

double f(double F, double l) {
        double r16301 = atan2(1.0, 0.0);
        double r16302 = l;
        double r16303 = r16301 * r16302;
        double r16304 = -2.3042737291052512e+156;
        bool r16305 = r16303 <= r16304;
        double r16306 = 1.0;
        double r16307 = sqrt(r16306);
        double r16308 = F;
        double r16309 = r16307 / r16308;
        double r16310 = cbrt(r16309);
        double r16311 = r16310 * r16310;
        double r16312 = tan(r16303);
        double r16313 = r16310 * r16312;
        double r16314 = r16311 * r16313;
        double r16315 = r16309 * r16314;
        double r16316 = r16303 - r16315;
        double r16317 = 6.82935402046262e+135;
        bool r16318 = r16303 <= r16317;
        double r16319 = sin(r16303);
        double r16320 = r16307 * r16319;
        double r16321 = 0.041666666666666664;
        double r16322 = 4.0;
        double r16323 = pow(r16301, r16322);
        double r16324 = r16321 * r16323;
        double r16325 = pow(r16302, r16322);
        double r16326 = 1.0;
        double r16327 = 0.5;
        double r16328 = 2.0;
        double r16329 = pow(r16301, r16328);
        double r16330 = pow(r16302, r16328);
        double r16331 = r16329 * r16330;
        double r16332 = r16327 * r16331;
        double r16333 = r16326 - r16332;
        double r16334 = fma(r16324, r16325, r16333);
        double r16335 = r16308 * r16334;
        double r16336 = r16320 / r16335;
        double r16337 = r16309 * r16336;
        double r16338 = r16303 - r16337;
        double r16339 = r16308 * r16308;
        double r16340 = r16306 / r16339;
        double r16341 = cbrt(r16303);
        double r16342 = r16341 * r16341;
        double r16343 = r16342 * r16341;
        double r16344 = tan(r16343);
        double r16345 = r16340 * r16344;
        double r16346 = r16303 - r16345;
        double r16347 = r16318 ? r16338 : r16346;
        double r16348 = r16305 ? r16316 : r16347;
        return r16348;
}

Error

Bits error versus F

Bits error versus l

Derivation

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

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

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

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

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

    if -2.3042737291052512e+156 < (* PI l) < 6.82935402046262e+135

    1. Initial program 14.9

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

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

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

      \[\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. Taylor expanded around 0 4.1

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

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

    if 6.82935402046262e+135 < (* PI l)

    1. Initial program 21.4

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

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

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

Reproduce

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