Average Error: 0.2 → 0.2
Time: 13.5s
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 r149553 = a;
        double r149554 = r149553 * r149553;
        double r149555 = b;
        double r149556 = r149555 * r149555;
        double r149557 = r149554 + r149556;
        double r149558 = 2.0;
        double r149559 = pow(r149557, r149558);
        double r149560 = 4.0;
        double r149561 = 1.0;
        double r149562 = r149561 + r149553;
        double r149563 = r149554 * r149562;
        double r149564 = 3.0;
        double r149565 = r149564 * r149553;
        double r149566 = r149561 - r149565;
        double r149567 = r149556 * r149566;
        double r149568 = r149563 + r149567;
        double r149569 = r149560 * r149568;
        double r149570 = r149559 + r149569;
        double r149571 = r149570 - r149561;
        return r149571;
}

double f(double a, double b) {
        double r149572 = a;
        double r149573 = r149572 * r149572;
        double r149574 = b;
        double r149575 = r149574 * r149574;
        double r149576 = r149573 + r149575;
        double r149577 = 2.0;
        double r149578 = pow(r149576, r149577);
        double r149579 = 4.0;
        double r149580 = 1.0;
        double r149581 = r149580 + r149572;
        double r149582 = r149573 * r149581;
        double r149583 = 3.0;
        double r149584 = r149583 * r149572;
        double r149585 = r149580 - r149584;
        double r149586 = r149575 * r149585;
        double r149587 = cbrt(r149586);
        double r149588 = r149587 * r149587;
        double r149589 = r149588 * r149587;
        double r149590 = r149582 + r149589;
        double r149591 = r149579 * r149590;
        double r149592 = r149578 + r149591;
        double r149593 = r149592 - r149580;
        return r149593;
}

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))