Average Error: 16.7 → 8.4
Time: 25.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.513617681291804811551207555211495024682 \cdot 10^{155}:\\ \;\;\;\;\pi \cdot \ell - e^{\log \left(\frac{1}{F \cdot F}\right)} \cdot \tan \left(\pi \cdot \ell\right)\\ \mathbf{elif}\;\pi \cdot \ell \le 8.335452524306350229831998021618975263623 \cdot 10^{134}:\\ \;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \frac{\sin \left(\pi \cdot \ell\right) \cdot \sqrt{1}}{\mathsf{fma}\left({\pi}^{2} \cdot {\ell}^{2}, \frac{-1}{2}, \mathsf{fma}\left(\frac{1}{24}, {\pi}^{4} \cdot {\ell}^{4}, 1\right)\right) \cdot F}\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\left(\sqrt[3]{\pi} \cdot \sqrt[3]{\pi}\right) \cdot \left(\sqrt[3]{\pi} \cdot \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.513617681291804811551207555211495024682 \cdot 10^{155}:\\
\;\;\;\;\pi \cdot \ell - e^{\log \left(\frac{1}{F \cdot F}\right)} \cdot \tan \left(\pi \cdot \ell\right)\\

\mathbf{elif}\;\pi \cdot \ell \le 8.335452524306350229831998021618975263623 \cdot 10^{134}:\\
\;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \frac{\sin \left(\pi \cdot \ell\right) \cdot \sqrt{1}}{\mathsf{fma}\left({\pi}^{2} \cdot {\ell}^{2}, \frac{-1}{2}, \mathsf{fma}\left(\frac{1}{24}, {\pi}^{4} \cdot {\ell}^{4}, 1\right)\right) \cdot F}\\

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

\end{array}
double f(double F, double l) {
        double r24255 = atan2(1.0, 0.0);
        double r24256 = l;
        double r24257 = r24255 * r24256;
        double r24258 = 1.0;
        double r24259 = F;
        double r24260 = r24259 * r24259;
        double r24261 = r24258 / r24260;
        double r24262 = tan(r24257);
        double r24263 = r24261 * r24262;
        double r24264 = r24257 - r24263;
        return r24264;
}

double f(double F, double l) {
        double r24265 = atan2(1.0, 0.0);
        double r24266 = l;
        double r24267 = r24265 * r24266;
        double r24268 = -1.5136176812918048e+155;
        bool r24269 = r24267 <= r24268;
        double r24270 = 1.0;
        double r24271 = F;
        double r24272 = r24271 * r24271;
        double r24273 = r24270 / r24272;
        double r24274 = log(r24273);
        double r24275 = exp(r24274);
        double r24276 = tan(r24267);
        double r24277 = r24275 * r24276;
        double r24278 = r24267 - r24277;
        double r24279 = 8.33545252430635e+134;
        bool r24280 = r24267 <= r24279;
        double r24281 = sqrt(r24270);
        double r24282 = r24281 / r24271;
        double r24283 = sin(r24267);
        double r24284 = r24283 * r24281;
        double r24285 = 2.0;
        double r24286 = pow(r24265, r24285);
        double r24287 = pow(r24266, r24285);
        double r24288 = r24286 * r24287;
        double r24289 = -0.5;
        double r24290 = 0.041666666666666664;
        double r24291 = 4.0;
        double r24292 = pow(r24265, r24291);
        double r24293 = pow(r24266, r24291);
        double r24294 = r24292 * r24293;
        double r24295 = 1.0;
        double r24296 = fma(r24290, r24294, r24295);
        double r24297 = fma(r24288, r24289, r24296);
        double r24298 = r24297 * r24271;
        double r24299 = r24284 / r24298;
        double r24300 = r24282 * r24299;
        double r24301 = r24267 - r24300;
        double r24302 = cbrt(r24265);
        double r24303 = r24302 * r24302;
        double r24304 = r24302 * r24266;
        double r24305 = r24303 * r24304;
        double r24306 = tan(r24305);
        double r24307 = r24273 * r24306;
        double r24308 = r24267 - r24307;
        double r24309 = r24280 ? r24301 : r24308;
        double r24310 = r24269 ? r24278 : r24309;
        return r24310;
}

Error

Bits error versus F

Bits error versus l

Derivation

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

    1. Initial program 21.3

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

      \[\leadsto \pi \cdot \ell - \frac{1}{F \cdot \color{blue}{e^{\log F}}} \cdot \tan \left(\pi \cdot \ell\right)\]
    4. Applied add-exp-log42.8

      \[\leadsto \pi \cdot \ell - \frac{1}{\color{blue}{e^{\log F}} \cdot e^{\log F}} \cdot \tan \left(\pi \cdot \ell\right)\]
    5. Applied prod-exp42.8

      \[\leadsto \pi \cdot \ell - \frac{1}{\color{blue}{e^{\log F + \log F}}} \cdot \tan \left(\pi \cdot \ell\right)\]
    6. Applied add-exp-log42.8

      \[\leadsto \pi \cdot \ell - \frac{\color{blue}{e^{\log 1}}}{e^{\log F + \log F}} \cdot \tan \left(\pi \cdot \ell\right)\]
    7. Applied div-exp42.8

      \[\leadsto \pi \cdot \ell - \color{blue}{e^{\log 1 - \left(\log F + \log F\right)}} \cdot \tan \left(\pi \cdot \ell\right)\]
    8. Simplified21.3

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

    if -1.5136176812918048e+155 < (* PI l) < 8.33545252430635e+134

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

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

      \[\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 3.6

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

      \[\leadsto \pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \frac{\sin \left(\pi \cdot \ell\right) \cdot \sqrt{1}}{\color{blue}{\mathsf{fma}\left({\pi}^{2} \cdot {\ell}^{2}, \frac{-1}{2}, \mathsf{fma}\left(\frac{1}{24}, {\pi}^{4} \cdot {\ell}^{4}, 1\right)\right)} \cdot F}\]

    if 8.33545252430635e+134 < (* PI l)

    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-cube-cbrt19.8

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\pi \cdot \ell \le -1.513617681291804811551207555211495024682 \cdot 10^{155}:\\ \;\;\;\;\pi \cdot \ell - e^{\log \left(\frac{1}{F \cdot F}\right)} \cdot \tan \left(\pi \cdot \ell\right)\\ \mathbf{elif}\;\pi \cdot \ell \le 8.335452524306350229831998021618975263623 \cdot 10^{134}:\\ \;\;\;\;\pi \cdot \ell - \frac{\sqrt{1}}{F} \cdot \frac{\sin \left(\pi \cdot \ell\right) \cdot \sqrt{1}}{\mathsf{fma}\left({\pi}^{2} \cdot {\ell}^{2}, \frac{-1}{2}, \mathsf{fma}\left(\frac{1}{24}, {\pi}^{4} \cdot {\ell}^{4}, 1\right)\right) \cdot F}\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\left(\sqrt[3]{\pi} \cdot \sqrt[3]{\pi}\right) \cdot \left(\sqrt[3]{\pi} \cdot \ell\right)\right)\\ \end{array}\]

Reproduce

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