Average Error: 0.2 → 0.7
Time: 6.1s
Precision: 64
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]
\[\left({\left(\sqrt[3]{a \cdot a + b \cdot b} \cdot \sqrt[3]{a \cdot a + b \cdot b}\right)}^{2} \cdot {\left(\sqrt[3]{a \cdot a + b \cdot b}\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1
\left({\left(\sqrt[3]{a \cdot a + b \cdot b} \cdot \sqrt[3]{a \cdot a + b \cdot b}\right)}^{2} \cdot {\left(\sqrt[3]{a \cdot a + b \cdot b}\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1
double f(double a, double b) {
        double r201243 = a;
        double r201244 = r201243 * r201243;
        double r201245 = b;
        double r201246 = r201245 * r201245;
        double r201247 = r201244 + r201246;
        double r201248 = 2.0;
        double r201249 = pow(r201247, r201248);
        double r201250 = 4.0;
        double r201251 = 1.0;
        double r201252 = r201251 + r201243;
        double r201253 = r201244 * r201252;
        double r201254 = 3.0;
        double r201255 = r201254 * r201243;
        double r201256 = r201251 - r201255;
        double r201257 = r201246 * r201256;
        double r201258 = r201253 + r201257;
        double r201259 = r201250 * r201258;
        double r201260 = r201249 + r201259;
        double r201261 = r201260 - r201251;
        return r201261;
}

double f(double a, double b) {
        double r201262 = a;
        double r201263 = r201262 * r201262;
        double r201264 = b;
        double r201265 = r201264 * r201264;
        double r201266 = r201263 + r201265;
        double r201267 = cbrt(r201266);
        double r201268 = r201267 * r201267;
        double r201269 = 2.0;
        double r201270 = pow(r201268, r201269);
        double r201271 = pow(r201267, r201269);
        double r201272 = r201270 * r201271;
        double r201273 = 4.0;
        double r201274 = 1.0;
        double r201275 = r201274 + r201262;
        double r201276 = r201263 * r201275;
        double r201277 = 3.0;
        double r201278 = r201277 * r201262;
        double r201279 = r201274 - r201278;
        double r201280 = r201265 * r201279;
        double r201281 = r201276 + r201280;
        double r201282 = r201273 * r201281;
        double r201283 = r201272 + r201282;
        double r201284 = r201283 - r201274;
        return r201284;
}

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 0.2

    \[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]
  2. Using strategy rm
  3. Applied add-cube-cbrt0.7

    \[\leadsto \left({\color{blue}{\left(\left(\sqrt[3]{a \cdot a + b \cdot b} \cdot \sqrt[3]{a \cdot a + b \cdot b}\right) \cdot \sqrt[3]{a \cdot a + b \cdot b}\right)}}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]
  4. Applied unpow-prod-down0.7

    \[\leadsto \left(\color{blue}{{\left(\sqrt[3]{a \cdot a + b \cdot b} \cdot \sqrt[3]{a \cdot a + b \cdot b}\right)}^{2} \cdot {\left(\sqrt[3]{a \cdot a + b \cdot b}\right)}^{2}} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]
  5. Final simplification0.7

    \[\leadsto \left({\left(\sqrt[3]{a \cdot a + b \cdot b} \cdot \sqrt[3]{a \cdot a + b \cdot b}\right)}^{2} \cdot {\left(\sqrt[3]{a \cdot a + b \cdot b}\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]

Reproduce

herbie shell --seed 2020001 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (25)"
  :precision binary64
  (- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (+ 1 a)) (* (* b b) (- 1 (* 3 a)))))) 1))