Average Error: 0.2 → 0.2
Time: 16.4s
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(\left(a \cdot a\right) \cdot 1 + {a}^{3}\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(\left(a \cdot a\right) \cdot 1 + {a}^{3}\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1
double f(double a, double b) {
        double r152944 = a;
        double r152945 = r152944 * r152944;
        double r152946 = b;
        double r152947 = r152946 * r152946;
        double r152948 = r152945 + r152947;
        double r152949 = 2.0;
        double r152950 = pow(r152948, r152949);
        double r152951 = 4.0;
        double r152952 = 1.0;
        double r152953 = r152952 + r152944;
        double r152954 = r152945 * r152953;
        double r152955 = 3.0;
        double r152956 = r152955 * r152944;
        double r152957 = r152952 - r152956;
        double r152958 = r152947 * r152957;
        double r152959 = r152954 + r152958;
        double r152960 = r152951 * r152959;
        double r152961 = r152950 + r152960;
        double r152962 = r152961 - r152952;
        return r152962;
}

double f(double a, double b) {
        double r152963 = a;
        double r152964 = r152963 * r152963;
        double r152965 = b;
        double r152966 = r152965 * r152965;
        double r152967 = r152964 + r152966;
        double r152968 = 2.0;
        double r152969 = pow(r152967, r152968);
        double r152970 = 4.0;
        double r152971 = 1.0;
        double r152972 = r152964 * r152971;
        double r152973 = 3.0;
        double r152974 = pow(r152963, r152973);
        double r152975 = r152972 + r152974;
        double r152976 = 3.0;
        double r152977 = r152976 * r152963;
        double r152978 = r152971 - r152977;
        double r152979 = r152966 * r152978;
        double r152980 = r152975 + r152979;
        double r152981 = r152970 * r152980;
        double r152982 = r152969 + r152981;
        double r152983 = r152982 - r152971;
        return r152983;
}

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. Using strategy rm
  3. Applied distribute-lft-in0.2

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

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

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

Reproduce

herbie shell --seed 2019195 
(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))