Average Error: 13.5 → 0.3
Time: 1.6m
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{\frac{\frac{-1}{\frac{a + b}{\pi}}}{2}}{b} + \frac{\frac{\frac{\pi}{a + b}}{2}}{a}}{b - a}\]
\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{\frac{\frac{-1}{\frac{a + b}{\pi}}}{2}}{b} + \frac{\frac{\frac{\pi}{a + b}}{2}}{a}}{b - a}
double f(double a, double b) {
        double r4474598 = atan2(1.0, 0.0);
        double r4474599 = 2.0;
        double r4474600 = r4474598 / r4474599;
        double r4474601 = 1.0;
        double r4474602 = b;
        double r4474603 = r4474602 * r4474602;
        double r4474604 = a;
        double r4474605 = r4474604 * r4474604;
        double r4474606 = r4474603 - r4474605;
        double r4474607 = r4474601 / r4474606;
        double r4474608 = r4474600 * r4474607;
        double r4474609 = r4474601 / r4474604;
        double r4474610 = r4474601 / r4474602;
        double r4474611 = r4474609 - r4474610;
        double r4474612 = r4474608 * r4474611;
        return r4474612;
}

double f(double a, double b) {
        double r4474613 = -1.0;
        double r4474614 = a;
        double r4474615 = b;
        double r4474616 = r4474614 + r4474615;
        double r4474617 = atan2(1.0, 0.0);
        double r4474618 = r4474616 / r4474617;
        double r4474619 = r4474613 / r4474618;
        double r4474620 = 2.0;
        double r4474621 = r4474619 / r4474620;
        double r4474622 = r4474621 / r4474615;
        double r4474623 = r4474617 / r4474616;
        double r4474624 = r4474623 / r4474620;
        double r4474625 = r4474624 / r4474614;
        double r4474626 = r4474622 + r4474625;
        double r4474627 = r4474615 - r4474614;
        double r4474628 = r4474626 / r4474627;
        return r4474628;
}

Error

Bits error versus a

Bits error versus b

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 13.5

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

    \[\leadsto \color{blue}{\frac{\frac{\frac{\frac{\pi}{a + b}}{2}}{a} + \left(-\frac{\frac{\frac{\pi}{a + b}}{2}}{b}\right)}{b - a}}\]
  3. Using strategy rm
  4. Applied clear-num0.3

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

    \[\leadsto \frac{\frac{\frac{\frac{-1}{\frac{a + b}{\pi}}}{2}}{b} + \frac{\frac{\frac{\pi}{a + b}}{2}}{a}}{b - a}\]

Reproduce

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