Average Error: 0.2 → 0.5
Time: 58.2s
Precision: 64
\[\left({\left(a \cdot a + b \cdot b\right)}^{2.0} + 4.0 \cdot \left(\left(a \cdot a\right) \cdot \left(1.0 + a\right) + \left(b \cdot b\right) \cdot \left(1.0 - 3.0 \cdot a\right)\right)\right) - 1.0\]
\[\left(\left(\left(b \cdot b\right) \cdot \left(1.0 - a \cdot 3.0\right) + \left(a \cdot a\right) \cdot \left(a + 1.0\right)\right) \cdot 4.0 + \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2.0}} \cdot \left(\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2.0}} \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2.0}}\right)\right) - 1.0\]
\left({\left(a \cdot a + b \cdot b\right)}^{2.0} + 4.0 \cdot \left(\left(a \cdot a\right) \cdot \left(1.0 + a\right) + \left(b \cdot b\right) \cdot \left(1.0 - 3.0 \cdot a\right)\right)\right) - 1.0
\left(\left(\left(b \cdot b\right) \cdot \left(1.0 - a \cdot 3.0\right) + \left(a \cdot a\right) \cdot \left(a + 1.0\right)\right) \cdot 4.0 + \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2.0}} \cdot \left(\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2.0}} \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2.0}}\right)\right) - 1.0
double f(double a, double b) {
        double r11413580 = a;
        double r11413581 = r11413580 * r11413580;
        double r11413582 = b;
        double r11413583 = r11413582 * r11413582;
        double r11413584 = r11413581 + r11413583;
        double r11413585 = 2.0;
        double r11413586 = pow(r11413584, r11413585);
        double r11413587 = 4.0;
        double r11413588 = 1.0;
        double r11413589 = r11413588 + r11413580;
        double r11413590 = r11413581 * r11413589;
        double r11413591 = 3.0;
        double r11413592 = r11413591 * r11413580;
        double r11413593 = r11413588 - r11413592;
        double r11413594 = r11413583 * r11413593;
        double r11413595 = r11413590 + r11413594;
        double r11413596 = r11413587 * r11413595;
        double r11413597 = r11413586 + r11413596;
        double r11413598 = r11413597 - r11413588;
        return r11413598;
}

double f(double a, double b) {
        double r11413599 = b;
        double r11413600 = r11413599 * r11413599;
        double r11413601 = 1.0;
        double r11413602 = a;
        double r11413603 = 3.0;
        double r11413604 = r11413602 * r11413603;
        double r11413605 = r11413601 - r11413604;
        double r11413606 = r11413600 * r11413605;
        double r11413607 = r11413602 * r11413602;
        double r11413608 = r11413602 + r11413601;
        double r11413609 = r11413607 * r11413608;
        double r11413610 = r11413606 + r11413609;
        double r11413611 = 4.0;
        double r11413612 = r11413610 * r11413611;
        double r11413613 = r11413607 + r11413600;
        double r11413614 = 2.0;
        double r11413615 = pow(r11413613, r11413614);
        double r11413616 = cbrt(r11413615);
        double r11413617 = r11413616 * r11413616;
        double r11413618 = r11413616 * r11413617;
        double r11413619 = r11413612 + r11413618;
        double r11413620 = r11413619 - r11413601;
        return r11413620;
}

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.0} + 4.0 \cdot \left(\left(a \cdot a\right) \cdot \left(1.0 + a\right) + \left(b \cdot b\right) \cdot \left(1.0 - 3.0 \cdot a\right)\right)\right) - 1.0\]
  2. Using strategy rm
  3. Applied add-cube-cbrt0.5

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

    \[\leadsto \left(\left(\left(b \cdot b\right) \cdot \left(1.0 - a \cdot 3.0\right) + \left(a \cdot a\right) \cdot \left(a + 1.0\right)\right) \cdot 4.0 + \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2.0}} \cdot \left(\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2.0}} \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2.0}}\right)\right) - 1.0\]

Reproduce

herbie shell --seed 2019165 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (25)"
  (- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (+ 1.0 a)) (* (* b b) (- 1.0 (* 3.0 a)))))) 1.0))