Average Error: 14.5 → 0.3
Time: 21.6s
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)\]
\[\left(\pi \cdot \left(\frac{\frac{1}{a} - \frac{1}{b}}{b - a} \cdot 1\right)\right) \cdot \frac{1}{2 \cdot \left(b + a\right)}\]
\left(\frac{\pi}{2} \cdot \frac{1}{b \cdot b - a \cdot a}\right) \cdot \left(\frac{1}{a} - \frac{1}{b}\right)
\left(\pi \cdot \left(\frac{\frac{1}{a} - \frac{1}{b}}{b - a} \cdot 1\right)\right) \cdot \frac{1}{2 \cdot \left(b + a\right)}
double f(double a, double b) {
        double r41074 = atan2(1.0, 0.0);
        double r41075 = 2.0;
        double r41076 = r41074 / r41075;
        double r41077 = 1.0;
        double r41078 = b;
        double r41079 = r41078 * r41078;
        double r41080 = a;
        double r41081 = r41080 * r41080;
        double r41082 = r41079 - r41081;
        double r41083 = r41077 / r41082;
        double r41084 = r41076 * r41083;
        double r41085 = r41077 / r41080;
        double r41086 = r41077 / r41078;
        double r41087 = r41085 - r41086;
        double r41088 = r41084 * r41087;
        return r41088;
}

double f(double a, double b) {
        double r41089 = atan2(1.0, 0.0);
        double r41090 = 1.0;
        double r41091 = a;
        double r41092 = r41090 / r41091;
        double r41093 = b;
        double r41094 = r41090 / r41093;
        double r41095 = r41092 - r41094;
        double r41096 = r41093 - r41091;
        double r41097 = r41095 / r41096;
        double r41098 = r41097 * r41090;
        double r41099 = r41089 * r41098;
        double r41100 = 1.0;
        double r41101 = 2.0;
        double r41102 = r41093 + r41091;
        double r41103 = r41101 * r41102;
        double r41104 = r41100 / r41103;
        double r41105 = r41099 * r41104;
        return r41105;
}

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.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. Using strategy rm
  3. Applied associate-*l*14.5

    \[\leadsto \color{blue}{\frac{\pi}{2} \cdot \left(\frac{1}{b \cdot b - a \cdot a} \cdot \left(\frac{1}{a} - \frac{1}{b}\right)\right)}\]
  4. Simplified0.3

    \[\leadsto \frac{\pi}{2} \cdot \color{blue}{\left(\frac{\frac{1}{a} - \frac{1}{b}}{b - a} \cdot \frac{1}{b + a}\right)}\]
  5. Using strategy rm
  6. Applied associate-*r/0.3

    \[\leadsto \frac{\pi}{2} \cdot \color{blue}{\frac{\frac{\frac{1}{a} - \frac{1}{b}}{b - a} \cdot 1}{b + a}}\]
  7. Applied frac-times0.3

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

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

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

Reproduce

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