Average Error: 0.2 → 0.2
Time: 21.2s
Precision: 64
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\]
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\]
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1
double f(double a, double b) {
        double r203998 = a;
        double r203999 = r203998 * r203998;
        double r204000 = b;
        double r204001 = r204000 * r204000;
        double r204002 = r203999 + r204001;
        double r204003 = 2.0;
        double r204004 = pow(r204002, r204003);
        double r204005 = 4.0;
        double r204006 = r204005 * r204001;
        double r204007 = r204004 + r204006;
        double r204008 = 1.0;
        double r204009 = r204007 - r204008;
        return r204009;
}

double f(double a, double b) {
        double r204010 = a;
        double r204011 = r204010 * r204010;
        double r204012 = b;
        double r204013 = r204012 * r204012;
        double r204014 = r204011 + r204013;
        double r204015 = 2.0;
        double r204016 = pow(r204014, r204015);
        double r204017 = 4.0;
        double r204018 = r204017 * r204013;
        double r204019 = r204016 + r204018;
        double r204020 = 1.0;
        double r204021 = r204019 - r204020;
        return r204021;
}

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(b \cdot b\right)\right) - 1\]
  2. Final simplification0.2

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

Reproduce

herbie shell --seed 2019198 +o rules:numerics
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (26)"
  (- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (* b b))) 1.0))