Average Error: 16.7 → 12.4
Time: 23.9s
Precision: 64
\[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)\]
\[\mathsf{fma}\left(\frac{1}{F} \cdot \tan \left(\left(\sqrt{\sqrt{\pi}} \cdot \left(\ell \cdot \left(\sqrt{\sqrt{\pi}} \cdot \sqrt{\sqrt{\pi}}\right)\right)\right) \cdot \sqrt{\sqrt{\pi}}\right), -\frac{1}{F}, \ell \cdot \pi\right)\]
\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)
\mathsf{fma}\left(\frac{1}{F} \cdot \tan \left(\left(\sqrt{\sqrt{\pi}} \cdot \left(\ell \cdot \left(\sqrt{\sqrt{\pi}} \cdot \sqrt{\sqrt{\pi}}\right)\right)\right) \cdot \sqrt{\sqrt{\pi}}\right), -\frac{1}{F}, \ell \cdot \pi\right)
double f(double F, double l) {
        double r22316 = atan2(1.0, 0.0);
        double r22317 = l;
        double r22318 = r22316 * r22317;
        double r22319 = 1.0;
        double r22320 = F;
        double r22321 = r22320 * r22320;
        double r22322 = r22319 / r22321;
        double r22323 = tan(r22318);
        double r22324 = r22322 * r22323;
        double r22325 = r22318 - r22324;
        return r22325;
}

double f(double F, double l) {
        double r22326 = 1.0;
        double r22327 = F;
        double r22328 = r22326 / r22327;
        double r22329 = atan2(1.0, 0.0);
        double r22330 = sqrt(r22329);
        double r22331 = sqrt(r22330);
        double r22332 = l;
        double r22333 = r22331 * r22331;
        double r22334 = r22332 * r22333;
        double r22335 = r22331 * r22334;
        double r22336 = r22335 * r22331;
        double r22337 = tan(r22336);
        double r22338 = r22328 * r22337;
        double r22339 = 1.0;
        double r22340 = r22339 / r22327;
        double r22341 = -r22340;
        double r22342 = r22332 * r22329;
        double r22343 = fma(r22338, r22341, r22342);
        return r22343;
}

Error

Bits error versus F

Bits error versus l

Derivation

  1. Initial program 16.7

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

    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\tan \left(\pi \cdot \ell\right)}{F}, \frac{-1}{F}, \pi \cdot \ell\right)}\]
  3. Using strategy rm
  4. Applied div-inv12.4

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

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

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

    \[\leadsto \mathsf{fma}\left(\tan \left(\sqrt{\color{blue}{\sqrt{\pi} \cdot \sqrt{\pi}}} \cdot \left(\sqrt{\pi} \cdot \ell\right)\right) \cdot \frac{1}{F}, \frac{-1}{F}, \pi \cdot \ell\right)\]
  10. Applied sqrt-prod12.4

    \[\leadsto \mathsf{fma}\left(\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}, \frac{-1}{F}, \pi \cdot \ell\right)\]
  11. Applied associate-*l*12.4

    \[\leadsto \mathsf{fma}\left(\tan \color{blue}{\left(\sqrt{\sqrt{\pi}} \cdot \left(\sqrt{\sqrt{\pi}} \cdot \left(\sqrt{\pi} \cdot \ell\right)\right)\right)} \cdot \frac{1}{F}, \frac{-1}{F}, \pi \cdot \ell\right)\]
  12. Simplified12.4

    \[\leadsto \mathsf{fma}\left(\tan \left(\sqrt{\sqrt{\pi}} \cdot \color{blue}{\left(\left(\ell \cdot \sqrt{\pi}\right) \cdot \sqrt{\sqrt{\pi}}\right)}\right) \cdot \frac{1}{F}, \frac{-1}{F}, \pi \cdot \ell\right)\]
  13. Using strategy rm
  14. Applied add-sqr-sqrt12.4

    \[\leadsto \mathsf{fma}\left(\tan \left(\sqrt{\sqrt{\pi}} \cdot \left(\left(\ell \cdot \sqrt{\color{blue}{\sqrt{\pi} \cdot \sqrt{\pi}}}\right) \cdot \sqrt{\sqrt{\pi}}\right)\right) \cdot \frac{1}{F}, \frac{-1}{F}, \pi \cdot \ell\right)\]
  15. Applied sqrt-prod12.4

    \[\leadsto \mathsf{fma}\left(\tan \left(\sqrt{\sqrt{\pi}} \cdot \left(\left(\ell \cdot \color{blue}{\left(\sqrt{\sqrt{\pi}} \cdot \sqrt{\sqrt{\pi}}\right)}\right) \cdot \sqrt{\sqrt{\pi}}\right)\right) \cdot \frac{1}{F}, \frac{-1}{F}, \pi \cdot \ell\right)\]
  16. Final simplification12.4

    \[\leadsto \mathsf{fma}\left(\frac{1}{F} \cdot \tan \left(\left(\sqrt{\sqrt{\pi}} \cdot \left(\ell \cdot \left(\sqrt{\sqrt{\pi}} \cdot \sqrt{\sqrt{\pi}}\right)\right)\right) \cdot \sqrt{\sqrt{\pi}}\right), -\frac{1}{F}, \ell \cdot \pi\right)\]

Reproduce

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