Average Error: 0.2 → 0.2
Time: 11.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(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(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(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1
double f(double a, double b) {
        double r294749 = a;
        double r294750 = r294749 * r294749;
        double r294751 = b;
        double r294752 = r294751 * r294751;
        double r294753 = r294750 + r294752;
        double r294754 = 2.0;
        double r294755 = pow(r294753, r294754);
        double r294756 = 4.0;
        double r294757 = 1.0;
        double r294758 = r294757 - r294749;
        double r294759 = r294750 * r294758;
        double r294760 = 3.0;
        double r294761 = r294760 + r294749;
        double r294762 = r294752 * r294761;
        double r294763 = r294759 + r294762;
        double r294764 = r294756 * r294763;
        double r294765 = r294755 + r294764;
        double r294766 = r294765 - r294757;
        return r294766;
}

double f(double a, double b) {
        double r294767 = a;
        double r294768 = r294767 * r294767;
        double r294769 = b;
        double r294770 = r294769 * r294769;
        double r294771 = r294768 + r294770;
        double r294772 = 2.0;
        double r294773 = pow(r294771, r294772);
        double r294774 = 4.0;
        double r294775 = 1.0;
        double r294776 = r294775 - r294767;
        double r294777 = r294768 * r294776;
        double r294778 = 3.0;
        double r294779 = r294778 + r294767;
        double r294780 = r294770 * r294779;
        double r294781 = r294777 + r294780;
        double r294782 = r294774 * r294781;
        double r294783 = r294773 + r294782;
        double r294784 = r294783 - r294775;
        return r294784;
}

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

Reproduce

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