Average Error: 14.6 → 4.8
Time: 1.0m
Precision: 64
\[\left(\frac{\pi}{2} \cdot \frac{1}{b \cdot b - a \cdot a}\right) \cdot \left(\frac{1}{a} - \frac{1}{b}\right)\]
\[\frac{\mathsf{fma}\left(\left(\frac{\pi}{b - a} \cdot \frac{1}{b + a}\right), \left(\frac{-1}{b}\right), \left(\frac{\frac{1}{\frac{b - a}{\pi}}}{a \cdot \left(b + a\right)}\right)\right)}{2}\]
\left(\frac{\pi}{2} \cdot \frac{1}{b \cdot b - a \cdot a}\right) \cdot \left(\frac{1}{a} - \frac{1}{b}\right)
\frac{\mathsf{fma}\left(\left(\frac{\pi}{b - a} \cdot \frac{1}{b + a}\right), \left(\frac{-1}{b}\right), \left(\frac{\frac{1}{\frac{b - a}{\pi}}}{a \cdot \left(b + a\right)}\right)\right)}{2}
double f(double a, double b) {
        double r3537264 = atan2(1.0, 0.0);
        double r3537265 = 2.0;
        double r3537266 = r3537264 / r3537265;
        double r3537267 = 1.0;
        double r3537268 = b;
        double r3537269 = r3537268 * r3537268;
        double r3537270 = a;
        double r3537271 = r3537270 * r3537270;
        double r3537272 = r3537269 - r3537271;
        double r3537273 = r3537267 / r3537272;
        double r3537274 = r3537266 * r3537273;
        double r3537275 = r3537267 / r3537270;
        double r3537276 = r3537267 / r3537268;
        double r3537277 = r3537275 - r3537276;
        double r3537278 = r3537274 * r3537277;
        return r3537278;
}

double f(double a, double b) {
        double r3537279 = atan2(1.0, 0.0);
        double r3537280 = b;
        double r3537281 = a;
        double r3537282 = r3537280 - r3537281;
        double r3537283 = r3537279 / r3537282;
        double r3537284 = 1.0;
        double r3537285 = r3537280 + r3537281;
        double r3537286 = r3537284 / r3537285;
        double r3537287 = r3537283 * r3537286;
        double r3537288 = -1.0;
        double r3537289 = r3537288 / r3537280;
        double r3537290 = r3537282 / r3537279;
        double r3537291 = r3537284 / r3537290;
        double r3537292 = r3537281 * r3537285;
        double r3537293 = r3537291 / r3537292;
        double r3537294 = fma(r3537287, r3537289, r3537293);
        double r3537295 = 2.0;
        double r3537296 = r3537294 / r3537295;
        return r3537296;
}

Error

Bits error versus a

Bits error versus b

Derivation

  1. Initial program 14.6

    \[\left(\frac{\pi}{2} \cdot \frac{1}{b \cdot b - a \cdot a}\right) \cdot \left(\frac{1}{a} - \frac{1}{b}\right)\]
  2. Simplified14.6

    \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\left(\frac{\pi}{b \cdot b - a \cdot a}\right), \left(\frac{-1}{b}\right), \left(\frac{\frac{\pi}{b \cdot b - a \cdot a}}{a}\right)\right)}{2}}\]
  3. Using strategy rm
  4. Applied *-un-lft-identity14.6

    \[\leadsto \frac{\mathsf{fma}\left(\left(\frac{\pi}{b \cdot b - a \cdot a}\right), \left(\frac{-1}{b}\right), \left(\frac{\frac{\pi}{b \cdot b - a \cdot a}}{\color{blue}{1 \cdot a}}\right)\right)}{2}\]
  5. Applied difference-of-squares14.6

    \[\leadsto \frac{\mathsf{fma}\left(\left(\frac{\pi}{b \cdot b - a \cdot a}\right), \left(\frac{-1}{b}\right), \left(\frac{\frac{\pi}{\color{blue}{\left(b + a\right) \cdot \left(b - a\right)}}}{1 \cdot a}\right)\right)}{2}\]
  6. Applied *-un-lft-identity14.6

    \[\leadsto \frac{\mathsf{fma}\left(\left(\frac{\pi}{b \cdot b - a \cdot a}\right), \left(\frac{-1}{b}\right), \left(\frac{\frac{\color{blue}{1 \cdot \pi}}{\left(b + a\right) \cdot \left(b - a\right)}}{1 \cdot a}\right)\right)}{2}\]
  7. Applied times-frac14.3

    \[\leadsto \frac{\mathsf{fma}\left(\left(\frac{\pi}{b \cdot b - a \cdot a}\right), \left(\frac{-1}{b}\right), \left(\frac{\color{blue}{\frac{1}{b + a} \cdot \frac{\pi}{b - a}}}{1 \cdot a}\right)\right)}{2}\]
  8. Applied times-frac10.0

    \[\leadsto \frac{\mathsf{fma}\left(\left(\frac{\pi}{b \cdot b - a \cdot a}\right), \left(\frac{-1}{b}\right), \color{blue}{\left(\frac{\frac{1}{b + a}}{1} \cdot \frac{\frac{\pi}{b - a}}{a}\right)}\right)}{2}\]
  9. Simplified10.0

    \[\leadsto \frac{\mathsf{fma}\left(\left(\frac{\pi}{b \cdot b - a \cdot a}\right), \left(\frac{-1}{b}\right), \left(\color{blue}{\frac{1}{b + a}} \cdot \frac{\frac{\pi}{b - a}}{a}\right)\right)}{2}\]
  10. Using strategy rm
  11. Applied difference-of-squares5.0

    \[\leadsto \frac{\mathsf{fma}\left(\left(\frac{\pi}{\color{blue}{\left(b + a\right) \cdot \left(b - a\right)}}\right), \left(\frac{-1}{b}\right), \left(\frac{1}{b + a} \cdot \frac{\frac{\pi}{b - a}}{a}\right)\right)}{2}\]
  12. Applied *-un-lft-identity5.0

    \[\leadsto \frac{\mathsf{fma}\left(\left(\frac{\color{blue}{1 \cdot \pi}}{\left(b + a\right) \cdot \left(b - a\right)}\right), \left(\frac{-1}{b}\right), \left(\frac{1}{b + a} \cdot \frac{\frac{\pi}{b - a}}{a}\right)\right)}{2}\]
  13. Applied times-frac4.8

    \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{\left(\frac{1}{b + a} \cdot \frac{\pi}{b - a}\right)}, \left(\frac{-1}{b}\right), \left(\frac{1}{b + a} \cdot \frac{\frac{\pi}{b - a}}{a}\right)\right)}{2}\]
  14. Using strategy rm
  15. Applied frac-times4.7

    \[\leadsto \frac{\mathsf{fma}\left(\left(\frac{1}{b + a} \cdot \frac{\pi}{b - a}\right), \left(\frac{-1}{b}\right), \color{blue}{\left(\frac{1 \cdot \frac{\pi}{b - a}}{\left(b + a\right) \cdot a}\right)}\right)}{2}\]
  16. Simplified4.7

    \[\leadsto \frac{\mathsf{fma}\left(\left(\frac{1}{b + a} \cdot \frac{\pi}{b - a}\right), \left(\frac{-1}{b}\right), \left(\frac{\color{blue}{\frac{\pi}{b - a}}}{\left(b + a\right) \cdot a}\right)\right)}{2}\]
  17. Using strategy rm
  18. Applied *-un-lft-identity4.7

    \[\leadsto \frac{\mathsf{fma}\left(\left(\frac{1}{b + a} \cdot \frac{\pi}{b - a}\right), \left(\frac{-1}{b}\right), \left(\frac{\frac{\color{blue}{1 \cdot \pi}}{b - a}}{\left(b + a\right) \cdot a}\right)\right)}{2}\]
  19. Applied associate-/l*4.8

    \[\leadsto \frac{\mathsf{fma}\left(\left(\frac{1}{b + a} \cdot \frac{\pi}{b - a}\right), \left(\frac{-1}{b}\right), \left(\frac{\color{blue}{\frac{1}{\frac{b - a}{\pi}}}}{\left(b + a\right) \cdot a}\right)\right)}{2}\]
  20. Final simplification4.8

    \[\leadsto \frac{\mathsf{fma}\left(\left(\frac{\pi}{b - a} \cdot \frac{1}{b + a}\right), \left(\frac{-1}{b}\right), \left(\frac{\frac{1}{\frac{b - a}{\pi}}}{a \cdot \left(b + a\right)}\right)\right)}{2}\]

Reproduce

herbie shell --seed 2019121 +o rules:numerics
(FPCore (a b)
  :name "NMSE Section 6.1 mentioned, B"
  (* (* (/ PI 2) (/ 1 (- (* b b) (* a a)))) (- (/ 1 a) (/ 1 b))))