Average Error: 14.2 → 0.6
Time: 25.0s
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{\mathsf{fma}\left(\sqrt[3]{\frac{\pi}{\left(a + b\right) \cdot 2}} \cdot \left(\sqrt[3]{\frac{\pi}{\left(a + b\right) \cdot 2}} \cdot \sqrt[3]{\frac{\pi}{\left(a + b\right) \cdot 2}}\right), \frac{-1}{b}, \frac{\frac{\pi}{\left(a + b\right) \cdot 2}}{a}\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{\mathsf{fma}\left(\sqrt[3]{\frac{\pi}{\left(a + b\right) \cdot 2}} \cdot \left(\sqrt[3]{\frac{\pi}{\left(a + b\right) \cdot 2}} \cdot \sqrt[3]{\frac{\pi}{\left(a + b\right) \cdot 2}}\right), \frac{-1}{b}, \frac{\frac{\pi}{\left(a + b\right) \cdot 2}}{a}\right)}{b - a}
double f(double a, double b) {
        double r1515202 = atan2(1.0, 0.0);
        double r1515203 = 2.0;
        double r1515204 = r1515202 / r1515203;
        double r1515205 = 1.0;
        double r1515206 = b;
        double r1515207 = r1515206 * r1515206;
        double r1515208 = a;
        double r1515209 = r1515208 * r1515208;
        double r1515210 = r1515207 - r1515209;
        double r1515211 = r1515205 / r1515210;
        double r1515212 = r1515204 * r1515211;
        double r1515213 = r1515205 / r1515208;
        double r1515214 = r1515205 / r1515206;
        double r1515215 = r1515213 - r1515214;
        double r1515216 = r1515212 * r1515215;
        return r1515216;
}

double f(double a, double b) {
        double r1515217 = atan2(1.0, 0.0);
        double r1515218 = a;
        double r1515219 = b;
        double r1515220 = r1515218 + r1515219;
        double r1515221 = 2.0;
        double r1515222 = r1515220 * r1515221;
        double r1515223 = r1515217 / r1515222;
        double r1515224 = cbrt(r1515223);
        double r1515225 = r1515224 * r1515224;
        double r1515226 = r1515224 * r1515225;
        double r1515227 = -1.0;
        double r1515228 = r1515227 / r1515219;
        double r1515229 = r1515223 / r1515218;
        double r1515230 = fma(r1515226, r1515228, r1515229);
        double r1515231 = r1515219 - r1515218;
        double r1515232 = r1515230 / r1515231;
        return r1515232;
}

Error

Bits error versus a

Bits error versus b

Derivation

  1. Initial program 14.2

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

    \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\frac{\pi}{\left(a + b\right) \cdot 2}, \frac{-1}{b}, \frac{\frac{\pi}{\left(a + b\right) \cdot 2}}{a}\right)}{b - a}}\]
  3. Using strategy rm
  4. Applied add-cube-cbrt0.6

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

    \[\leadsto \frac{\mathsf{fma}\left(\sqrt[3]{\frac{\pi}{\left(a + b\right) \cdot 2}} \cdot \left(\sqrt[3]{\frac{\pi}{\left(a + b\right) \cdot 2}} \cdot \sqrt[3]{\frac{\pi}{\left(a + b\right) \cdot 2}}\right), \frac{-1}{b}, \frac{\frac{\pi}{\left(a + b\right) \cdot 2}}{a}\right)}{b - a}\]

Reproduce

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