Average Error: 0.2 → 0.7
Time: 10.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(3 + a\right)\right)\right) - 1\]
\[\left(\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} + \left(\left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4\right) + 4 \cdot \left(\left(b \cdot b\right) \cdot \left(3 + 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(3 + a\right)\right)\right) - 1
\left(\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} + \left(\left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4\right) + 4 \cdot \left(\left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1
double f(double a, double b) {
        double r729 = a;
        double r730 = r729 * r729;
        double r731 = b;
        double r732 = r731 * r731;
        double r733 = r730 + r732;
        double r734 = 2.0;
        double r735 = pow(r733, r734);
        double r736 = 4.0;
        double r737 = 1.0;
        double r738 = r737 - r729;
        double r739 = r730 * r738;
        double r740 = 3.0;
        double r741 = r740 + r729;
        double r742 = r732 * r741;
        double r743 = r739 + r742;
        double r744 = r736 * r743;
        double r745 = r735 + r744;
        double r746 = r745 - r737;
        return r746;
}

double f(double a, double b) {
        double r747 = a;
        double r748 = r747 * r747;
        double r749 = b;
        double r750 = r749 * r749;
        double r751 = r748 + r750;
        double r752 = cbrt(r751);
        double r753 = r752 * r752;
        double r754 = 2.0;
        double r755 = pow(r753, r754);
        double r756 = pow(r752, r754);
        double r757 = r755 * r756;
        double r758 = 1.0;
        double r759 = r758 - r747;
        double r760 = r748 * r759;
        double r761 = 4.0;
        double r762 = r760 * r761;
        double r763 = r757 + r762;
        double r764 = 3.0;
        double r765 = r764 + r747;
        double r766 = r750 * r765;
        double r767 = r761 * r766;
        double r768 = r763 + r767;
        double r769 = r768 - r758;
        return r769;
}

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(3 + a\right)\right)\right) - 1\]
  2. Using strategy rm
  3. Applied distribute-lft-in0.2

    \[\leadsto \left({\left(a \cdot a + b \cdot b\right)}^{2} + \color{blue}{\left(4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right)\right) + 4 \cdot \left(\left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right)}\right) - 1\]
  4. Applied associate-+r+0.2

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

    \[\leadsto \left(\color{blue}{\left({\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4\right)} + 4 \cdot \left(\left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1\]
  6. Using strategy rm
  7. Applied add-cube-cbrt0.7

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

    \[\leadsto \left(\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}} + \left(\left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4\right) + 4 \cdot \left(\left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1\]
  9. Final simplification0.7

    \[\leadsto \left(\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} + \left(\left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4\right) + 4 \cdot \left(\left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1\]

Reproduce

herbie shell --seed 2020025 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (24)"
  :precision binary64
  (- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))