Average Error: 14.6 → 0.3
Time: 35.1s
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{\left(-\frac{\frac{\frac{\pi}{a + b}}{2}}{b}\right) + \frac{\frac{\pi}{a + b}}{2} \cdot \frac{1}{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{\left(-\frac{\frac{\frac{\pi}{a + b}}{2}}{b}\right) + \frac{\frac{\pi}{a + b}}{2} \cdot \frac{1}{a}}{b - a}
double f(double a, double b) {
        double r1668802 = atan2(1.0, 0.0);
        double r1668803 = 2.0;
        double r1668804 = r1668802 / r1668803;
        double r1668805 = 1.0;
        double r1668806 = b;
        double r1668807 = r1668806 * r1668806;
        double r1668808 = a;
        double r1668809 = r1668808 * r1668808;
        double r1668810 = r1668807 - r1668809;
        double r1668811 = r1668805 / r1668810;
        double r1668812 = r1668804 * r1668811;
        double r1668813 = r1668805 / r1668808;
        double r1668814 = r1668805 / r1668806;
        double r1668815 = r1668813 - r1668814;
        double r1668816 = r1668812 * r1668815;
        return r1668816;
}

double f(double a, double b) {
        double r1668817 = atan2(1.0, 0.0);
        double r1668818 = a;
        double r1668819 = b;
        double r1668820 = r1668818 + r1668819;
        double r1668821 = r1668817 / r1668820;
        double r1668822 = 2.0;
        double r1668823 = r1668821 / r1668822;
        double r1668824 = r1668823 / r1668819;
        double r1668825 = -r1668824;
        double r1668826 = 1.0;
        double r1668827 = r1668826 / r1668818;
        double r1668828 = r1668823 * r1668827;
        double r1668829 = r1668825 + r1668828;
        double r1668830 = r1668819 - r1668818;
        double r1668831 = r1668829 / r1668830;
        return r1668831;
}

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 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. 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 div-inv0.3

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

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

Reproduce

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