Average Error: 17.1 → 0.7
Time: 27.1s
Precision: 64
\[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)\]
\[\pi \cdot \ell - \frac{1}{F} \cdot \frac{1}{\frac{F}{\pi \cdot \ell} - \frac{1}{3} \cdot \left(F \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(\pi \cdot \ell\right)\right)\right)}\]
\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)
\pi \cdot \ell - \frac{1}{F} \cdot \frac{1}{\frac{F}{\pi \cdot \ell} - \frac{1}{3} \cdot \left(F \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(\pi \cdot \ell\right)\right)\right)}
double f(double F, double l) {
        double r25508 = atan2(1.0, 0.0);
        double r25509 = l;
        double r25510 = r25508 * r25509;
        double r25511 = 1.0;
        double r25512 = F;
        double r25513 = r25512 * r25512;
        double r25514 = r25511 / r25513;
        double r25515 = tan(r25510);
        double r25516 = r25514 * r25515;
        double r25517 = r25510 - r25516;
        return r25517;
}

double f(double F, double l) {
        double r25518 = atan2(1.0, 0.0);
        double r25519 = l;
        double r25520 = r25518 * r25519;
        double r25521 = 1.0;
        double r25522 = F;
        double r25523 = r25521 / r25522;
        double r25524 = 1.0;
        double r25525 = r25522 / r25520;
        double r25526 = 0.3333333333333333;
        double r25527 = expm1(r25520);
        double r25528 = log1p(r25527);
        double r25529 = r25522 * r25528;
        double r25530 = r25526 * r25529;
        double r25531 = r25525 - r25530;
        double r25532 = r25524 / r25531;
        double r25533 = r25523 * r25532;
        double r25534 = r25520 - r25533;
        return r25534;
}

Error

Bits error versus F

Bits error versus l

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 17.1

    \[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)\]
  2. Using strategy rm
  3. Applied *-un-lft-identity17.1

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

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

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

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

    \[\leadsto \pi \cdot \ell - \frac{1}{F} \cdot \frac{1}{\color{blue}{\frac{F}{\pi \cdot \ell} - \frac{1}{3} \cdot \left(F \cdot \left(\pi \cdot \ell\right)\right)}}\]
  8. Using strategy rm
  9. Applied log1p-expm1-u0.7

    \[\leadsto \pi \cdot \ell - \frac{1}{F} \cdot \frac{1}{\frac{F}{\pi \cdot \ell} - \frac{1}{3} \cdot \left(F \cdot \color{blue}{\mathsf{log1p}\left(\mathsf{expm1}\left(\pi \cdot \ell\right)\right)}\right)}\]
  10. Final simplification0.7

    \[\leadsto \pi \cdot \ell - \frac{1}{F} \cdot \frac{1}{\frac{F}{\pi \cdot \ell} - \frac{1}{3} \cdot \left(F \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(\pi \cdot \ell\right)\right)\right)}\]

Reproduce

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