Average Error: 0.2 → 0.2
Time: 17.6s
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 r201830 = a;
        double r201831 = r201830 * r201830;
        double r201832 = b;
        double r201833 = r201832 * r201832;
        double r201834 = r201831 + r201833;
        double r201835 = 2.0;
        double r201836 = pow(r201834, r201835);
        double r201837 = 4.0;
        double r201838 = r201837 * r201833;
        double r201839 = r201836 + r201838;
        double r201840 = 1.0;
        double r201841 = r201839 - r201840;
        return r201841;
}

double f(double a, double b) {
        double r201842 = a;
        double r201843 = r201842 * r201842;
        double r201844 = b;
        double r201845 = r201844 * r201844;
        double r201846 = r201843 + r201845;
        double r201847 = 2.0;
        double r201848 = pow(r201846, r201847);
        double r201849 = 4.0;
        double r201850 = r201849 * r201845;
        double r201851 = r201848 + r201850;
        double r201852 = 1.0;
        double r201853 = r201851 - r201852;
        return r201853;
}

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