Average Error: 14.6 → 0.4
Time: 8.4s
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{\pi}{2} \cdot \left(1 \cdot \left(b - a\right)\right)}{b - a} \cdot \frac{\frac{1}{b + a}}{a \cdot b}\]
\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{\pi}{2} \cdot \left(1 \cdot \left(b - a\right)\right)}{b - a} \cdot \frac{\frac{1}{b + a}}{a \cdot b}
double f(double a, double b) {
        double r54152 = atan2(1.0, 0.0);
        double r54153 = 2.0;
        double r54154 = r54152 / r54153;
        double r54155 = 1.0;
        double r54156 = b;
        double r54157 = r54156 * r54156;
        double r54158 = a;
        double r54159 = r54158 * r54158;
        double r54160 = r54157 - r54159;
        double r54161 = r54155 / r54160;
        double r54162 = r54154 * r54161;
        double r54163 = r54155 / r54158;
        double r54164 = r54155 / r54156;
        double r54165 = r54163 - r54164;
        double r54166 = r54162 * r54165;
        return r54166;
}

double f(double a, double b) {
        double r54167 = atan2(1.0, 0.0);
        double r54168 = 2.0;
        double r54169 = r54167 / r54168;
        double r54170 = 1.0;
        double r54171 = b;
        double r54172 = a;
        double r54173 = r54171 - r54172;
        double r54174 = r54170 * r54173;
        double r54175 = r54169 * r54174;
        double r54176 = r54175 / r54173;
        double r54177 = r54171 + r54172;
        double r54178 = r54170 / r54177;
        double r54179 = r54172 * r54171;
        double r54180 = r54178 / r54179;
        double r54181 = r54176 * r54180;
        return r54181;
}

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. Using strategy rm
  3. Applied difference-of-squares9.6

    \[\leadsto \left(\frac{\pi}{2} \cdot \frac{1}{\color{blue}{\left(b + a\right) \cdot \left(b - a\right)}}\right) \cdot \left(\frac{1}{a} - \frac{1}{b}\right)\]
  4. Applied associate-/r*9.1

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

    \[\leadsto \color{blue}{\frac{\pi \cdot \frac{1}{b + a}}{2 \cdot \left(b - a\right)}} \cdot \left(\frac{1}{a} - \frac{1}{b}\right)\]
  7. Applied associate-*l/0.3

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

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

    \[\leadsto \frac{\pi \cdot \frac{1}{b + a}}{\frac{2 \cdot \left(b - a\right)}{\color{blue}{\frac{1 \cdot b - a \cdot 1}{a \cdot b}}}}\]
  12. Applied associate-/r/0.3

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

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

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

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

Reproduce

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