Average Error: 0.2 → 0.2
Time: 25.7s
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 r184762 = a;
        double r184763 = r184762 * r184762;
        double r184764 = b;
        double r184765 = r184764 * r184764;
        double r184766 = r184763 + r184765;
        double r184767 = 2.0;
        double r184768 = pow(r184766, r184767);
        double r184769 = 4.0;
        double r184770 = 1.0;
        double r184771 = r184770 - r184762;
        double r184772 = r184763 * r184771;
        double r184773 = 3.0;
        double r184774 = r184773 + r184762;
        double r184775 = r184765 * r184774;
        double r184776 = r184772 + r184775;
        double r184777 = r184769 * r184776;
        double r184778 = r184768 + r184777;
        double r184779 = r184778 - r184770;
        return r184779;
}

double f(double a, double b) {
        double r184780 = a;
        double r184781 = r184780 * r184780;
        double r184782 = b;
        double r184783 = r184782 * r184782;
        double r184784 = r184781 + r184783;
        double r184785 = 2.0;
        double r184786 = pow(r184784, r184785);
        double r184787 = 4.0;
        double r184788 = 1.0;
        double r184789 = r184788 - r184780;
        double r184790 = r184781 * r184789;
        double r184791 = 3.0;
        double r184792 = r184791 + r184780;
        double r184793 = r184783 * r184792;
        double r184794 = r184790 + r184793;
        double r184795 = r184787 * r184794;
        double r184796 = r184786 + r184795;
        double r184797 = r184796 - r184788;
        return r184797;
}

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 2019306 
(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))