Average Error: 0.2 → 0.2
Time: 6.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(\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 r241663 = a;
        double r241664 = r241663 * r241663;
        double r241665 = b;
        double r241666 = r241665 * r241665;
        double r241667 = r241664 + r241666;
        double r241668 = 2.0;
        double r241669 = pow(r241667, r241668);
        double r241670 = 4.0;
        double r241671 = 1.0;
        double r241672 = r241671 + r241663;
        double r241673 = r241664 * r241672;
        double r241674 = 3.0;
        double r241675 = r241674 * r241663;
        double r241676 = r241671 - r241675;
        double r241677 = r241666 * r241676;
        double r241678 = r241673 + r241677;
        double r241679 = r241670 * r241678;
        double r241680 = r241669 + r241679;
        double r241681 = r241680 - r241671;
        return r241681;
}

double f(double a, double b) {
        double r241682 = a;
        double r241683 = r241682 * r241682;
        double r241684 = b;
        double r241685 = r241684 * r241684;
        double r241686 = r241683 + r241685;
        double r241687 = 2.0;
        double r241688 = pow(r241686, r241687);
        double r241689 = 4.0;
        double r241690 = 1.0;
        double r241691 = r241690 + r241682;
        double r241692 = cbrt(r241691);
        double r241693 = r241692 * r241692;
        double r241694 = r241683 * r241693;
        double r241695 = r241694 * r241692;
        double r241696 = 3.0;
        double r241697 = r241696 * r241682;
        double r241698 = r241690 - r241697;
        double r241699 = r241685 * r241698;
        double r241700 = r241695 + r241699;
        double r241701 = r241689 * r241700;
        double r241702 = r241688 + r241701;
        double r241703 = r241702 - r241690;
        return r241703;
}

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