Average Error: 16.6 → 10.6
Time: 37.6s
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 43788683678766.93:\\ \;\;\;\;\pi \cdot \ell - \frac{\tan \left(\left(\sqrt{\sqrt{\pi}} \cdot \sqrt{\sqrt{\pi}}\right) \cdot \left(\sqrt{\pi} \cdot \ell\right)\right) \cdot \frac{1}{F}}{F}\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \frac{\left(\left(\frac{\tan \left(\pi \cdot \ell\right)}{F}\right)\right)}{F}\\ \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 43788683678766.93:\\
\;\;\;\;\pi \cdot \ell - \frac{\tan \left(\left(\sqrt{\sqrt{\pi}} \cdot \sqrt{\sqrt{\pi}}\right) \cdot \left(\sqrt{\pi} \cdot \ell\right)\right) \cdot \frac{1}{F}}{F}\\

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

\end{array}
double f(double F, double l) {
        double r723235 = atan2(1.0, 0.0);
        double r723236 = l;
        double r723237 = r723235 * r723236;
        double r723238 = 1.0;
        double r723239 = F;
        double r723240 = r723239 * r723239;
        double r723241 = r723238 / r723240;
        double r723242 = tan(r723237);
        double r723243 = r723241 * r723242;
        double r723244 = r723237 - r723243;
        return r723244;
}

double f(double F, double l) {
        double r723245 = atan2(1.0, 0.0);
        double r723246 = l;
        double r723247 = r723245 * r723246;
        double r723248 = 43788683678766.93;
        bool r723249 = r723247 <= r723248;
        double r723250 = sqrt(r723245);
        double r723251 = sqrt(r723250);
        double r723252 = r723251 * r723251;
        double r723253 = r723250 * r723246;
        double r723254 = r723252 * r723253;
        double r723255 = tan(r723254);
        double r723256 = 1.0;
        double r723257 = F;
        double r723258 = r723256 / r723257;
        double r723259 = r723255 * r723258;
        double r723260 = r723259 / r723257;
        double r723261 = r723247 - r723260;
        double r723262 = tan(r723247);
        double r723263 = r723262 / r723257;
        double r723264 = /* ERROR: no posit support in C */;
        double r723265 = /* ERROR: no posit support in C */;
        double r723266 = r723265 / r723257;
        double r723267 = r723247 - r723266;
        double r723268 = r723249 ? r723261 : r723267;
        return r723268;
}

Error

Bits error versus F

Bits error versus l

Derivation

  1. Split input into 2 regimes
  2. if (* PI l) < 43788683678766.93

    1. Initial program 14.5

      \[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)\]
    2. Simplified8.9

      \[\leadsto \color{blue}{\pi \cdot \ell - \frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}}\]
    3. Using strategy rm
    4. Applied div-inv9.0

      \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\tan \left(\pi \cdot \ell\right) \cdot \frac{1}{F}}}{F}\]
    5. Using strategy rm
    6. Applied add-sqr-sqrt9.1

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

      \[\leadsto \pi \cdot \ell - \frac{\tan \color{blue}{\left(\sqrt{\pi} \cdot \left(\sqrt{\pi} \cdot \ell\right)\right)} \cdot \frac{1}{F}}{F}\]
    8. Using strategy rm
    9. Applied add-sqr-sqrt9.0

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

    if 43788683678766.93 < (* PI l)

    1. Initial program 22.7

      \[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)\]
    2. Simplified22.7

      \[\leadsto \color{blue}{\pi \cdot \ell - \frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}}\]
    3. Using strategy rm
    4. Applied div-inv22.7

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

      \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\left(\left(\tan \left(\pi \cdot \ell\right) \cdot \frac{1}{F}\right)\right)}}{F}\]
    7. Simplified15.5

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\pi \cdot \ell \le 43788683678766.93:\\ \;\;\;\;\pi \cdot \ell - \frac{\tan \left(\left(\sqrt{\sqrt{\pi}} \cdot \sqrt{\sqrt{\pi}}\right) \cdot \left(\sqrt{\pi} \cdot \ell\right)\right) \cdot \frac{1}{F}}{F}\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \frac{\left(\left(\frac{\tan \left(\pi \cdot \ell\right)}{F}\right)\right)}{F}\\ \end{array}\]

Reproduce

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