Average Error: 0.2 → 0.2
Time: 20.0s
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(3 + 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(3 + 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(3 + 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(3 + a\right)\right)\right) - 1
double f(double a, double b) {
        double r212807 = a;
        double r212808 = r212807 * r212807;
        double r212809 = b;
        double r212810 = r212809 * r212809;
        double r212811 = r212808 + r212810;
        double r212812 = 2.0;
        double r212813 = pow(r212811, r212812);
        double r212814 = 4.0;
        double r212815 = 1.0;
        double r212816 = r212815 - r212807;
        double r212817 = r212808 * r212816;
        double r212818 = 3.0;
        double r212819 = r212818 + r212807;
        double r212820 = r212810 * r212819;
        double r212821 = r212817 + r212820;
        double r212822 = r212814 * r212821;
        double r212823 = r212813 + r212822;
        double r212824 = r212823 - r212815;
        return r212824;
}

double f(double a, double b) {
        double r212825 = a;
        double r212826 = r212825 * r212825;
        double r212827 = b;
        double r212828 = r212827 * r212827;
        double r212829 = r212826 + r212828;
        double r212830 = 2.0;
        double r212831 = pow(r212829, r212830);
        double r212832 = 4.0;
        double r212833 = 1.0;
        double r212834 = r212833 - r212825;
        double r212835 = r212826 * r212834;
        double r212836 = 3.0;
        double r212837 = r212836 + r212825;
        double r212838 = r212828 * r212837;
        double r212839 = r212835 + r212838;
        double r212840 = r212832 * r212839;
        double r212841 = r212831 + r212840;
        double r212842 = r212841 - r212833;
        return r212842;
}

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(3 + a\right)\right)\right) - 1\]
  2. Final simplification0.2

    \[\leadsto \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(3 + a\right)\right)\right) - 1\]

Reproduce

herbie shell --seed 2019305 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (24)"
  :precision binary64
  (- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))