Average Error: 14.0 → 0.3
Time: 8.7m
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{\frac{1}{b - a} \cdot \pi}{b \cdot a} \cdot \frac{\left(b - a\right) \cdot \frac{1}{2}}{a + b}\]
double f(double a, double b) {
        double r53670390 = atan2(1.0, 0.0);
        double r53670391 = 2.0;
        double r53670392 = r53670390 / r53670391;
        double r53670393 = 1.0;
        double r53670394 = b;
        double r53670395 = r53670394 * r53670394;
        double r53670396 = a;
        double r53670397 = r53670396 * r53670396;
        double r53670398 = r53670395 - r53670397;
        double r53670399 = r53670393 / r53670398;
        double r53670400 = r53670392 * r53670399;
        double r53670401 = r53670393 / r53670396;
        double r53670402 = r53670393 / r53670394;
        double r53670403 = r53670401 - r53670402;
        double r53670404 = r53670400 * r53670403;
        return r53670404;
}

double f(double a, double b) {
        double r53670405 = 1.0;
        double r53670406 = b;
        double r53670407 = a;
        double r53670408 = r53670406 - r53670407;
        double r53670409 = r53670405 / r53670408;
        double r53670410 = atan2(1.0, 0.0);
        double r53670411 = r53670409 * r53670410;
        double r53670412 = r53670406 * r53670407;
        double r53670413 = r53670411 / r53670412;
        double r53670414 = 0.5;
        double r53670415 = r53670408 * r53670414;
        double r53670416 = r53670407 + r53670406;
        double r53670417 = r53670415 / r53670416;
        double r53670418 = r53670413 * r53670417;
        return r53670418;
}

\left(\frac{\pi}{2} \cdot \frac{1}{b \cdot b - a \cdot a}\right) \cdot \left(\frac{1}{a} - \frac{1}{b}\right)
\frac{\frac{1}{b - a} \cdot \pi}{b \cdot a} \cdot \frac{\left(b - a\right) \cdot \frac{1}{2}}{a + b}

Error

Bits error versus a

Bits error versus b

Derivation

  1. Initial program 14.0

    \[\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.0

    \[\leadsto \color{blue}{\frac{\frac{\pi}{b \cdot b - a \cdot a}}{\frac{2}{\frac{1}{a} - \frac{1}{b}}}}\]
  3. Using strategy rm
  4. Applied frac-sub14.0

    \[\leadsto \frac{\frac{\pi}{b \cdot b - a \cdot a}}{\frac{2}{\color{blue}{\frac{1 \cdot b - a \cdot 1}{a \cdot b}}}}\]
  5. Applied associate-/r/14.0

    \[\leadsto \frac{\frac{\pi}{b \cdot b - a \cdot a}}{\color{blue}{\frac{2}{1 \cdot b - a \cdot 1} \cdot \left(a \cdot b\right)}}\]
  6. Applied difference-of-squares9.4

    \[\leadsto \frac{\frac{\pi}{\color{blue}{\left(b + a\right) \cdot \left(b - a\right)}}}{\frac{2}{1 \cdot b - a \cdot 1} \cdot \left(a \cdot b\right)}\]
  7. Applied *-un-lft-identity9.4

    \[\leadsto \frac{\frac{\color{blue}{1 \cdot \pi}}{\left(b + a\right) \cdot \left(b - a\right)}}{\frac{2}{1 \cdot b - a \cdot 1} \cdot \left(a \cdot b\right)}\]
  8. Applied times-frac8.9

    \[\leadsto \frac{\color{blue}{\frac{1}{b + a} \cdot \frac{\pi}{b - a}}}{\frac{2}{1 \cdot b - a \cdot 1} \cdot \left(a \cdot b\right)}\]
  9. Applied times-frac0.3

    \[\leadsto \color{blue}{\frac{\frac{1}{b + a}}{\frac{2}{1 \cdot b - a \cdot 1}} \cdot \frac{\frac{\pi}{b - a}}{a \cdot b}}\]
  10. Simplified0.3

    \[\leadsto \color{blue}{\frac{\left(b - a\right) \cdot \frac{1}{2}}{b + a}} \cdot \frac{\frac{\pi}{b - a}}{a \cdot b}\]
  11. Using strategy rm
  12. Applied div-inv0.3

    \[\leadsto \frac{\left(b - a\right) \cdot \frac{1}{2}}{b + a} \cdot \frac{\color{blue}{\pi \cdot \frac{1}{b - a}}}{a \cdot b}\]
  13. Final simplification0.3

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

Reproduce

herbie shell --seed 2019101 
(FPCore (a b)
  :name "NMSE Section 6.1 mentioned, B"
  (* (* (/ PI 2) (/ 1 (- (* b b) (* a a)))) (- (/ 1 a) (/ 1 b))))