Average Error: 0.2 → 0.2
Time: 13.3s
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(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(\sqrt[3]{\left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)} \cdot \sqrt[3]{\left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)}\right) \cdot \sqrt[3]{\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(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(\sqrt[3]{\left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)} \cdot \sqrt[3]{\left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)}\right) \cdot \sqrt[3]{\left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)}\right)\right) - 1
double f(double a, double b) {
        double r384227 = a;
        double r384228 = r384227 * r384227;
        double r384229 = b;
        double r384230 = r384229 * r384229;
        double r384231 = r384228 + r384230;
        double r384232 = 2.0;
        double r384233 = pow(r384231, r384232);
        double r384234 = 4.0;
        double r384235 = 1.0;
        double r384236 = r384235 + r384227;
        double r384237 = r384228 * r384236;
        double r384238 = 3.0;
        double r384239 = r384238 * r384227;
        double r384240 = r384235 - r384239;
        double r384241 = r384230 * r384240;
        double r384242 = r384237 + r384241;
        double r384243 = r384234 * r384242;
        double r384244 = r384233 + r384243;
        double r384245 = r384244 - r384235;
        return r384245;
}

double f(double a, double b) {
        double r384246 = a;
        double r384247 = r384246 * r384246;
        double r384248 = b;
        double r384249 = r384248 * r384248;
        double r384250 = r384247 + r384249;
        double r384251 = 2.0;
        double r384252 = pow(r384250, r384251);
        double r384253 = 4.0;
        double r384254 = 1.0;
        double r384255 = r384254 + r384246;
        double r384256 = r384247 * r384255;
        double r384257 = 3.0;
        double r384258 = r384257 * r384246;
        double r384259 = r384254 - r384258;
        double r384260 = r384249 * r384259;
        double r384261 = cbrt(r384260);
        double r384262 = r384261 * r384261;
        double r384263 = r384262 * r384261;
        double r384264 = r384256 + r384263;
        double r384265 = r384253 * r384264;
        double r384266 = r384252 + r384265;
        double r384267 = r384266 - r384254;
        return r384267;
}

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

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

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

Reproduce

herbie shell --seed 2020045 
(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))