Average Error: 0.2 → 0.2
Time: 4.1s
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 r243855 = a;
        double r243856 = r243855 * r243855;
        double r243857 = b;
        double r243858 = r243857 * r243857;
        double r243859 = r243856 + r243858;
        double r243860 = 2.0;
        double r243861 = pow(r243859, r243860);
        double r243862 = 4.0;
        double r243863 = r243862 * r243858;
        double r243864 = r243861 + r243863;
        double r243865 = 1.0;
        double r243866 = r243864 - r243865;
        return r243866;
}

double f(double a, double b) {
        double r243867 = a;
        double r243868 = r243867 * r243867;
        double r243869 = b;
        double r243870 = r243869 * r243869;
        double r243871 = r243868 + r243870;
        double r243872 = 2.0;
        double r243873 = pow(r243871, r243872);
        double r243874 = 4.0;
        double r243875 = r243874 * r243870;
        double r243876 = r243873 + r243875;
        double r243877 = 1.0;
        double r243878 = r243876 - r243877;
        return r243878;
}

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 2020056 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (26)"
  :precision binary64
  (- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (* b b))) 1))