Average Error: 14.9 → 0.3
Time: 16.8s
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{0.5 \cdot \left(\frac{1}{a} \cdot \frac{\pi}{b}\right)}{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{0.5 \cdot \left(\frac{1}{a} \cdot \frac{\pi}{b}\right)}{b + a}
double f(double a, double b) {
        double r37510 = atan2(1.0, 0.0);
        double r37511 = 2.0;
        double r37512 = r37510 / r37511;
        double r37513 = 1.0;
        double r37514 = b;
        double r37515 = r37514 * r37514;
        double r37516 = a;
        double r37517 = r37516 * r37516;
        double r37518 = r37515 - r37517;
        double r37519 = r37513 / r37518;
        double r37520 = r37512 * r37519;
        double r37521 = r37513 / r37516;
        double r37522 = r37513 / r37514;
        double r37523 = r37521 - r37522;
        double r37524 = r37520 * r37523;
        return r37524;
}

double f(double a, double b) {
        double r37525 = 0.5;
        double r37526 = 1.0;
        double r37527 = a;
        double r37528 = r37526 / r37527;
        double r37529 = atan2(1.0, 0.0);
        double r37530 = b;
        double r37531 = r37529 / r37530;
        double r37532 = r37528 * r37531;
        double r37533 = r37525 * r37532;
        double r37534 = r37530 + r37527;
        double r37535 = r37533 / r37534;
        return r37535;
}

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.9

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

    \[\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 associate-*r/0.3

    \[\leadsto \color{blue}{\frac{\frac{\pi}{2} \cdot \left(\frac{\frac{1}{a} - \frac{1}{b}}{b - a} \cdot 1\right)}{b + a}}\]
  8. Taylor expanded around 0 0.2

    \[\leadsto \frac{\color{blue}{0.5 \cdot \frac{\pi}{a \cdot b}}}{b + a}\]
  9. Using strategy rm
  10. Applied *-un-lft-identity0.2

    \[\leadsto \frac{0.5 \cdot \frac{\color{blue}{1 \cdot \pi}}{a \cdot b}}{b + a}\]
  11. Applied times-frac0.3

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

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

Reproduce

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