Average Error: 0.2 → 0.2
Time: 6.7s
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(\left(a \cdot a\right) \cdot \left(\sqrt[3]{1 + a} \cdot \sqrt[3]{1 + a}\right)\right) \cdot \sqrt[3]{1 + a} + \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(\left(a \cdot a\right) \cdot \left(\sqrt[3]{1 + a} \cdot \sqrt[3]{1 + a}\right)\right) \cdot \sqrt[3]{1 + a} + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1
double f(double a, double b) {
        double r285388 = a;
        double r285389 = r285388 * r285388;
        double r285390 = b;
        double r285391 = r285390 * r285390;
        double r285392 = r285389 + r285391;
        double r285393 = 2.0;
        double r285394 = pow(r285392, r285393);
        double r285395 = 4.0;
        double r285396 = 1.0;
        double r285397 = r285396 + r285388;
        double r285398 = r285389 * r285397;
        double r285399 = 3.0;
        double r285400 = r285399 * r285388;
        double r285401 = r285396 - r285400;
        double r285402 = r285391 * r285401;
        double r285403 = r285398 + r285402;
        double r285404 = r285395 * r285403;
        double r285405 = r285394 + r285404;
        double r285406 = r285405 - r285396;
        return r285406;
}

double f(double a, double b) {
        double r285407 = a;
        double r285408 = r285407 * r285407;
        double r285409 = b;
        double r285410 = r285409 * r285409;
        double r285411 = r285408 + r285410;
        double r285412 = 2.0;
        double r285413 = pow(r285411, r285412);
        double r285414 = 4.0;
        double r285415 = 1.0;
        double r285416 = r285415 + r285407;
        double r285417 = cbrt(r285416);
        double r285418 = r285417 * r285417;
        double r285419 = r285408 * r285418;
        double r285420 = r285419 * r285417;
        double r285421 = 3.0;
        double r285422 = r285421 * r285407;
        double r285423 = r285415 - r285422;
        double r285424 = r285410 * r285423;
        double r285425 = r285420 + r285424;
        double r285426 = r285414 * r285425;
        double r285427 = r285413 + r285426;
        double r285428 = r285427 - r285415;
        return r285428;
}

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 \color{blue}{\left(\left(\sqrt[3]{1 + a} \cdot \sqrt[3]{1 + a}\right) \cdot \sqrt[3]{1 + a}\right)} + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]
  4. Applied associate-*r*0.2

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

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

Reproduce

herbie shell --seed 2019356 +o rules:numerics
(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))