Average Error: 0.2 → 0.2
Time: 25.3s
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 r287057 = a;
        double r287058 = r287057 * r287057;
        double r287059 = b;
        double r287060 = r287059 * r287059;
        double r287061 = r287058 + r287060;
        double r287062 = 2.0;
        double r287063 = pow(r287061, r287062);
        double r287064 = 4.0;
        double r287065 = 1.0;
        double r287066 = r287065 + r287057;
        double r287067 = r287058 * r287066;
        double r287068 = 3.0;
        double r287069 = r287068 * r287057;
        double r287070 = r287065 - r287069;
        double r287071 = r287060 * r287070;
        double r287072 = r287067 + r287071;
        double r287073 = r287064 * r287072;
        double r287074 = r287063 + r287073;
        double r287075 = r287074 - r287065;
        return r287075;
}

double f(double a, double b) {
        double r287076 = a;
        double r287077 = r287076 * r287076;
        double r287078 = b;
        double r287079 = r287078 * r287078;
        double r287080 = r287077 + r287079;
        double r287081 = 2.0;
        double r287082 = pow(r287080, r287081);
        double r287083 = 4.0;
        double r287084 = 1.0;
        double r287085 = r287084 + r287076;
        double r287086 = r287077 * r287085;
        double r287087 = 3.0;
        double r287088 = r287087 * r287076;
        double r287089 = r287084 - r287088;
        double r287090 = r287079 * r287089;
        double r287091 = r287086 + r287090;
        double r287092 = r287083 * r287091;
        double r287093 = r287082 + r287092;
        double r287094 = r287093 - r287084;
        return r287094;
}

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