Average Error: 0.2 → 0.2
Time: 29.1s
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} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4\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} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4\right) - 1
double f(double a, double b) {
        double r5973168 = a;
        double r5973169 = r5973168 * r5973168;
        double r5973170 = b;
        double r5973171 = r5973170 * r5973170;
        double r5973172 = r5973169 + r5973171;
        double r5973173 = 2.0;
        double r5973174 = pow(r5973172, r5973173);
        double r5973175 = 4.0;
        double r5973176 = 1.0;
        double r5973177 = r5973176 + r5973168;
        double r5973178 = r5973169 * r5973177;
        double r5973179 = 3.0;
        double r5973180 = r5973179 * r5973168;
        double r5973181 = r5973176 - r5973180;
        double r5973182 = r5973171 * r5973181;
        double r5973183 = r5973178 + r5973182;
        double r5973184 = r5973175 * r5973183;
        double r5973185 = r5973174 + r5973184;
        double r5973186 = r5973185 - r5973176;
        return r5973186;
}

double f(double a, double b) {
        double r5973187 = a;
        double r5973188 = r5973187 * r5973187;
        double r5973189 = b;
        double r5973190 = r5973189 * r5973189;
        double r5973191 = r5973188 + r5973190;
        double r5973192 = 2.0;
        double r5973193 = pow(r5973191, r5973192);
        double r5973194 = 1.0;
        double r5973195 = r5973187 + r5973194;
        double r5973196 = r5973188 * r5973195;
        double r5973197 = 3.0;
        double r5973198 = r5973197 * r5973187;
        double r5973199 = r5973194 - r5973198;
        double r5973200 = r5973190 * r5973199;
        double r5973201 = r5973196 + r5973200;
        double r5973202 = 4.0;
        double r5973203 = r5973201 * r5973202;
        double r5973204 = r5973193 + r5973203;
        double r5973205 = r5973204 - r5973194;
        return r5973205;
}

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

Reproduce

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