Average Error: 0.2 → 0.2
Time: 7.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(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(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 r292779 = a;
        double r292780 = r292779 * r292779;
        double r292781 = b;
        double r292782 = r292781 * r292781;
        double r292783 = r292780 + r292782;
        double r292784 = 2.0;
        double r292785 = pow(r292783, r292784);
        double r292786 = 4.0;
        double r292787 = 1.0;
        double r292788 = r292787 + r292779;
        double r292789 = r292780 * r292788;
        double r292790 = 3.0;
        double r292791 = r292790 * r292779;
        double r292792 = r292787 - r292791;
        double r292793 = r292782 * r292792;
        double r292794 = r292789 + r292793;
        double r292795 = r292786 * r292794;
        double r292796 = r292785 + r292795;
        double r292797 = r292796 - r292787;
        return r292797;
}

double f(double a, double b) {
        double r292798 = a;
        double r292799 = r292798 * r292798;
        double r292800 = b;
        double r292801 = r292800 * r292800;
        double r292802 = r292799 + r292801;
        double r292803 = 2.0;
        double r292804 = pow(r292802, r292803);
        double r292805 = 4.0;
        double r292806 = 1.0;
        double r292807 = r292806 + r292798;
        double r292808 = r292799 * r292807;
        double r292809 = 3.0;
        double r292810 = r292809 * r292798;
        double r292811 = r292806 - r292810;
        double r292812 = r292801 * r292811;
        double r292813 = r292808 + r292812;
        double r292814 = r292805 * r292813;
        double r292815 = r292804 + r292814;
        double r292816 = r292815 - r292806;
        return r292816;
}

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. 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(1 - 3 \cdot a\right)\right)\right) - 1\]

Reproduce

herbie shell --seed 2019353 +o rules:numerics
(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))