Average Error: 0.2 → 0.2
Time: 17.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(3 + a\right)\right)\right) - 1\]
\[\left(\left(b \cdot b\right) \cdot \left(3 + a\right) + a \cdot \left(\left(1 - a\right) \cdot a\right)\right) \cdot 4 - \left(1 - {\left(b \cdot b + a \cdot a\right)}^{2}\right)\]
\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(b \cdot b\right) \cdot \left(3 + a\right) + a \cdot \left(\left(1 - a\right) \cdot a\right)\right) \cdot 4 - \left(1 - {\left(b \cdot b + a \cdot a\right)}^{2}\right)
double f(double a, double b) {
        double r222080 = a;
        double r222081 = r222080 * r222080;
        double r222082 = b;
        double r222083 = r222082 * r222082;
        double r222084 = r222081 + r222083;
        double r222085 = 2.0;
        double r222086 = pow(r222084, r222085);
        double r222087 = 4.0;
        double r222088 = 1.0;
        double r222089 = r222088 - r222080;
        double r222090 = r222081 * r222089;
        double r222091 = 3.0;
        double r222092 = r222091 + r222080;
        double r222093 = r222083 * r222092;
        double r222094 = r222090 + r222093;
        double r222095 = r222087 * r222094;
        double r222096 = r222086 + r222095;
        double r222097 = r222096 - r222088;
        return r222097;
}

double f(double a, double b) {
        double r222098 = b;
        double r222099 = r222098 * r222098;
        double r222100 = 3.0;
        double r222101 = a;
        double r222102 = r222100 + r222101;
        double r222103 = r222099 * r222102;
        double r222104 = 1.0;
        double r222105 = r222104 - r222101;
        double r222106 = r222105 * r222101;
        double r222107 = r222101 * r222106;
        double r222108 = r222103 + r222107;
        double r222109 = 4.0;
        double r222110 = r222108 * r222109;
        double r222111 = r222101 * r222101;
        double r222112 = r222099 + r222111;
        double r222113 = 2.0;
        double r222114 = pow(r222112, r222113);
        double r222115 = r222104 - r222114;
        double r222116 = r222110 - r222115;
        return r222116;
}

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. Simplified0.2

    \[\leadsto \color{blue}{\left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(\left(1 - a\right) \cdot a\right) \cdot a\right) \cdot 4 - \left(1 - {\left(a \cdot a + b \cdot b\right)}^{2}\right)}\]
  3. Final simplification0.2

    \[\leadsto \left(\left(b \cdot b\right) \cdot \left(3 + a\right) + a \cdot \left(\left(1 - a\right) \cdot a\right)\right) \cdot 4 - \left(1 - {\left(b \cdot b + a \cdot a\right)}^{2}\right)\]

Reproduce

herbie shell --seed 2019194 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (24)"
  (- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (- 1.0 a)) (* (* b b) (+ 3.0 a))))) 1.0))