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

\mathbf{elif}\;\pi \cdot \ell \le 2.691706907806316542182290270953314062387 \cdot 10^{133}:\\
\;\;\;\;\pi \cdot \ell - \frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{F} \cdot \frac{\sqrt[3]{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{\sqrt[3]{1} \cdot \sqrt[3]{1}}{F} \cdot \left(\frac{\sqrt[3]{1}}{F} \cdot \tan \left(\left(\pi \cdot \left(\mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt[3]{\ell}\right)\right) \cdot \sqrt[3]{\ell}\right)\right) \cdot \sqrt[3]{\ell}\right)\right)\\

\end{array}
double f(double F, double l) {
        double r20204 = atan2(1.0, 0.0);
        double r20205 = l;
        double r20206 = r20204 * r20205;
        double r20207 = 1.0;
        double r20208 = F;
        double r20209 = r20208 * r20208;
        double r20210 = r20207 / r20209;
        double r20211 = tan(r20206);
        double r20212 = r20210 * r20211;
        double r20213 = r20206 - r20212;
        return r20213;
}

double f(double F, double l) {
        double r20214 = atan2(1.0, 0.0);
        double r20215 = l;
        double r20216 = r20214 * r20215;
        double r20217 = -1.0119486917150245e+169;
        bool r20218 = r20216 <= r20217;
        double r20219 = 1.0;
        double r20220 = F;
        double r20221 = r20220 * r20220;
        double r20222 = r20219 / r20221;
        double r20223 = cbrt(r20222);
        double r20224 = r20223 * r20223;
        double r20225 = tan(r20216);
        double r20226 = r20223 * r20225;
        double r20227 = r20224 * r20226;
        double r20228 = r20216 - r20227;
        double r20229 = 2.6917069078063165e+133;
        bool r20230 = r20216 <= r20229;
        double r20231 = cbrt(r20219);
        double r20232 = r20231 * r20231;
        double r20233 = r20232 / r20220;
        double r20234 = sin(r20216);
        double r20235 = r20231 * r20234;
        double r20236 = 0.041666666666666664;
        double r20237 = 4.0;
        double r20238 = pow(r20214, r20237);
        double r20239 = r20236 * r20238;
        double r20240 = pow(r20215, r20237);
        double r20241 = 1.0;
        double r20242 = 0.5;
        double r20243 = 2.0;
        double r20244 = pow(r20214, r20243);
        double r20245 = pow(r20215, r20243);
        double r20246 = r20244 * r20245;
        double r20247 = r20242 * r20246;
        double r20248 = r20241 - r20247;
        double r20249 = fma(r20239, r20240, r20248);
        double r20250 = r20220 * r20249;
        double r20251 = r20235 / r20250;
        double r20252 = r20233 * r20251;
        double r20253 = r20216 - r20252;
        double r20254 = r20231 / r20220;
        double r20255 = cbrt(r20215);
        double r20256 = log1p(r20255);
        double r20257 = expm1(r20256);
        double r20258 = r20257 * r20255;
        double r20259 = r20214 * r20258;
        double r20260 = r20259 * r20255;
        double r20261 = tan(r20260);
        double r20262 = r20254 * r20261;
        double r20263 = r20233 * r20262;
        double r20264 = r20216 - r20263;
        double r20265 = r20230 ? r20253 : r20264;
        double r20266 = r20218 ? r20228 : r20265;
        return r20266;
}

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-cube-cbrt20.0

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

      \[\leadsto \pi \cdot \ell - \color{blue}{\left(\sqrt[3]{\frac{1}{F \cdot F}} \cdot \sqrt[3]{\frac{1}{F \cdot F}}\right) \cdot \left(\sqrt[3]{\frac{1}{F \cdot F}} \cdot \tan \left(\pi \cdot \ell\right)\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 add-cube-cbrt15.0

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

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

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{F} \cdot \left(\frac{\sqrt[3]{1}}{F} \cdot \tan \left(\pi \cdot \ell\right)\right)}\]
    6. Using strategy rm
    7. Applied tan-quot9.5

      \[\leadsto \pi \cdot \ell - \frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{F} \cdot \left(\frac{\sqrt[3]{1}}{F} \cdot \color{blue}{\frac{\sin \left(\pi \cdot \ell\right)}{\cos \left(\pi \cdot \ell\right)}}\right)\]
    8. Applied frac-times9.4

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

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

      \[\leadsto \pi \cdot \ell - \frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{F} \cdot \frac{\sqrt[3]{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 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 add-cube-cbrt21.6

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

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

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{F} \cdot \left(\frac{\sqrt[3]{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{\sqrt[3]{1} \cdot \sqrt[3]{1}}{F} \cdot \left(\frac{\sqrt[3]{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{\sqrt[3]{1} \cdot \sqrt[3]{1}}{F} \cdot \left(\frac{\sqrt[3]{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{\sqrt[3]{1} \cdot \sqrt[3]{1}}{F} \cdot \left(\frac{\sqrt[3]{1}}{F} \cdot \tan \left(\left(\pi \cdot \left(\color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt[3]{\ell}\right)\right)} \cdot \sqrt[3]{\ell}\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[3]{\frac{1}{F \cdot F}} \cdot \sqrt[3]{\frac{1}{F \cdot F}}\right) \cdot \left(\sqrt[3]{\frac{1}{F \cdot F}} \cdot \tan \left(\pi \cdot \ell\right)\right)\\ \mathbf{elif}\;\pi \cdot \ell \le 2.691706907806316542182290270953314062387 \cdot 10^{133}:\\ \;\;\;\;\pi \cdot \ell - \frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{F} \cdot \frac{\sqrt[3]{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{\sqrt[3]{1} \cdot \sqrt[3]{1}}{F} \cdot \left(\frac{\sqrt[3]{1}}{F} \cdot \tan \left(\left(\pi \cdot \left(\mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt[3]{\ell}\right)\right) \cdot \sqrt[3]{\ell}\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)))))