Average Error: 0.2 → 0.7
Time: 6.0s
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(\sqrt[3]{a \cdot a + b \cdot b} \cdot \sqrt[3]{a \cdot a + b \cdot b}\right)}^{2} \cdot {\left(\sqrt[3]{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(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1
\left({\left(\sqrt[3]{a \cdot a + b \cdot b} \cdot \sqrt[3]{a \cdot a + b \cdot b}\right)}^{2} \cdot {\left(\sqrt[3]{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
double f(double a, double b) {
        double r373611 = a;
        double r373612 = r373611 * r373611;
        double r373613 = b;
        double r373614 = r373613 * r373613;
        double r373615 = r373612 + r373614;
        double r373616 = 2.0;
        double r373617 = pow(r373615, r373616);
        double r373618 = 4.0;
        double r373619 = 1.0;
        double r373620 = r373619 + r373611;
        double r373621 = r373612 * r373620;
        double r373622 = 3.0;
        double r373623 = r373622 * r373611;
        double r373624 = r373619 - r373623;
        double r373625 = r373614 * r373624;
        double r373626 = r373621 + r373625;
        double r373627 = r373618 * r373626;
        double r373628 = r373617 + r373627;
        double r373629 = r373628 - r373619;
        return r373629;
}

double f(double a, double b) {
        double r373630 = a;
        double r373631 = r373630 * r373630;
        double r373632 = b;
        double r373633 = r373632 * r373632;
        double r373634 = r373631 + r373633;
        double r373635 = cbrt(r373634);
        double r373636 = r373635 * r373635;
        double r373637 = 2.0;
        double r373638 = pow(r373636, r373637);
        double r373639 = pow(r373635, r373637);
        double r373640 = r373638 * r373639;
        double r373641 = 4.0;
        double r373642 = 1.0;
        double r373643 = r373642 + r373630;
        double r373644 = r373631 * r373643;
        double r373645 = 3.0;
        double r373646 = r373645 * r373630;
        double r373647 = r373642 - r373646;
        double r373648 = r373633 * r373647;
        double r373649 = r373644 + r373648;
        double r373650 = r373641 * r373649;
        double r373651 = r373640 + r373650;
        double r373652 = r373651 - r373642;
        return r373652;
}

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

    \[\leadsto \left({\color{blue}{\left(\left(\sqrt[3]{a \cdot a + b \cdot b} \cdot \sqrt[3]{a \cdot a + b \cdot b}\right) \cdot \sqrt[3]{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\]
  4. Applied unpow-prod-down0.7

    \[\leadsto \left(\color{blue}{{\left(\sqrt[3]{a \cdot a + b \cdot b} \cdot \sqrt[3]{a \cdot a + b \cdot b}\right)}^{2} \cdot {\left(\sqrt[3]{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\]
  5. Final simplification0.7

    \[\leadsto \left({\left(\sqrt[3]{a \cdot a + b \cdot b} \cdot \sqrt[3]{a \cdot a + b \cdot b}\right)}^{2} \cdot {\left(\sqrt[3]{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\]

Reproduce

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