Average Error: 14.3 → 0.3
Time: 35.9s
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{1}{a + b} \cdot \frac{\frac{\pi}{a} - \frac{1}{\frac{b}{\pi}}}{\frac{b - a}{\frac{1}{2}}}\]
\left(\frac{\pi}{2} \cdot \frac{1}{b \cdot b - a \cdot a}\right) \cdot \left(\frac{1}{a} - \frac{1}{b}\right)
\frac{1}{a + b} \cdot \frac{\frac{\pi}{a} - \frac{1}{\frac{b}{\pi}}}{\frac{b - a}{\frac{1}{2}}}
double f(double a, double b) {
        double r1481613 = atan2(1.0, 0.0);
        double r1481614 = 2.0;
        double r1481615 = r1481613 / r1481614;
        double r1481616 = 1.0;
        double r1481617 = b;
        double r1481618 = r1481617 * r1481617;
        double r1481619 = a;
        double r1481620 = r1481619 * r1481619;
        double r1481621 = r1481618 - r1481620;
        double r1481622 = r1481616 / r1481621;
        double r1481623 = r1481615 * r1481622;
        double r1481624 = r1481616 / r1481619;
        double r1481625 = r1481616 / r1481617;
        double r1481626 = r1481624 - r1481625;
        double r1481627 = r1481623 * r1481626;
        return r1481627;
}

double f(double a, double b) {
        double r1481628 = 1.0;
        double r1481629 = a;
        double r1481630 = b;
        double r1481631 = r1481629 + r1481630;
        double r1481632 = r1481628 / r1481631;
        double r1481633 = atan2(1.0, 0.0);
        double r1481634 = r1481633 / r1481629;
        double r1481635 = r1481630 / r1481633;
        double r1481636 = r1481628 / r1481635;
        double r1481637 = r1481634 - r1481636;
        double r1481638 = r1481630 - r1481629;
        double r1481639 = 0.5;
        double r1481640 = r1481638 / r1481639;
        double r1481641 = r1481637 / r1481640;
        double r1481642 = r1481632 * r1481641;
        return r1481642;
}

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

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

    \[\leadsto \color{blue}{\frac{\frac{\pi}{a} - \frac{\pi}{b}}{\frac{b \cdot b - a \cdot a}{\frac{1}{2}}}}\]
  3. Using strategy rm
  4. Applied *-un-lft-identity14.3

    \[\leadsto \frac{\frac{\pi}{a} - \frac{\pi}{b}}{\frac{b \cdot b - a \cdot a}{\color{blue}{1 \cdot \frac{1}{2}}}}\]
  5. Applied difference-of-squares9.5

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

    \[\leadsto \frac{\frac{\pi}{a} - \frac{\pi}{b}}{\color{blue}{\frac{b + a}{1} \cdot \frac{b - a}{\frac{1}{2}}}}\]
  7. Applied *-un-lft-identity9.5

    \[\leadsto \frac{\frac{\pi}{a} - \color{blue}{1 \cdot \frac{\pi}{b}}}{\frac{b + a}{1} \cdot \frac{b - a}{\frac{1}{2}}}\]
  8. Applied *-un-lft-identity9.5

    \[\leadsto \frac{\color{blue}{1 \cdot \frac{\pi}{a}} - 1 \cdot \frac{\pi}{b}}{\frac{b + a}{1} \cdot \frac{b - a}{\frac{1}{2}}}\]
  9. Applied distribute-lft-out--9.5

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

    \[\leadsto \color{blue}{\frac{1}{\frac{b + a}{1}} \cdot \frac{\frac{\pi}{a} - \frac{\pi}{b}}{\frac{b - a}{\frac{1}{2}}}}\]
  11. Simplified0.3

    \[\leadsto \color{blue}{\frac{1}{a + b}} \cdot \frac{\frac{\pi}{a} - \frac{\pi}{b}}{\frac{b - a}{\frac{1}{2}}}\]
  12. Using strategy rm
  13. Applied clear-num0.3

    \[\leadsto \frac{1}{a + b} \cdot \frac{\frac{\pi}{a} - \color{blue}{\frac{1}{\frac{b}{\pi}}}}{\frac{b - a}{\frac{1}{2}}}\]
  14. Final simplification0.3

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

Reproduce

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