Average Error: 0.2 → 0.2
Time: 4.2s
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(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} + b \cdot \left(b \cdot \left(3 + a\right)\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(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} + b \cdot \left(b \cdot \left(3 + a\right)\right)\right)\right) - 1
double f(double a, double b) {
        double r265782 = a;
        double r265783 = r265782 * r265782;
        double r265784 = b;
        double r265785 = r265784 * r265784;
        double r265786 = r265783 + r265785;
        double r265787 = 2.0;
        double r265788 = pow(r265786, r265787);
        double r265789 = 4.0;
        double r265790 = 1.0;
        double r265791 = r265790 - r265782;
        double r265792 = r265783 * r265791;
        double r265793 = 3.0;
        double r265794 = r265793 + r265782;
        double r265795 = r265785 * r265794;
        double r265796 = r265792 + r265795;
        double r265797 = r265789 * r265796;
        double r265798 = r265788 + r265797;
        double r265799 = r265798 - r265790;
        return r265799;
}

double f(double a, double b) {
        double r265800 = a;
        double r265801 = r265800 * r265800;
        double r265802 = b;
        double r265803 = r265802 * r265802;
        double r265804 = r265801 + r265803;
        double r265805 = 2.0;
        double r265806 = pow(r265804, r265805);
        double r265807 = 4.0;
        double r265808 = 1.0;
        double r265809 = r265808 - r265800;
        double r265810 = cbrt(r265809);
        double r265811 = r265810 * r265810;
        double r265812 = r265801 * r265811;
        double r265813 = r265812 * r265810;
        double r265814 = 3.0;
        double r265815 = r265814 + r265800;
        double r265816 = r265802 * r265815;
        double r265817 = r265802 * r265816;
        double r265818 = r265813 + r265817;
        double r265819 = r265807 * r265818;
        double r265820 = r265806 + r265819;
        double r265821 = r265820 - r265808;
        return r265821;
}

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 associate-*l*0.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}{b \cdot \left(b \cdot \left(3 + a\right)\right)}\right)\right) - 1\]
  4. Using strategy rm
  5. 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)} + b \cdot \left(b \cdot \left(3 + a\right)\right)\right)\right) - 1\]
  6. 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}} + b \cdot \left(b \cdot \left(3 + a\right)\right)\right)\right) - 1\]
  7. 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} + b \cdot \left(b \cdot \left(3 + a\right)\right)\right)\right) - 1\]

Reproduce

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