Average Error: 0.2 → 0.2
Time: 18.3s
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} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(1 - 3 \cdot a\right) \cdot {b}^{2}\right) \cdot 4\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} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(1 - 3 \cdot a\right) \cdot {b}^{2}\right) \cdot 4\right) - 1
double f(double a, double b) {
        double r264684 = a;
        double r264685 = r264684 * r264684;
        double r264686 = b;
        double r264687 = r264686 * r264686;
        double r264688 = r264685 + r264687;
        double r264689 = 2.0;
        double r264690 = pow(r264688, r264689);
        double r264691 = 4.0;
        double r264692 = 1.0;
        double r264693 = r264692 + r264684;
        double r264694 = r264685 * r264693;
        double r264695 = 3.0;
        double r264696 = r264695 * r264684;
        double r264697 = r264692 - r264696;
        double r264698 = r264687 * r264697;
        double r264699 = r264694 + r264698;
        double r264700 = r264691 * r264699;
        double r264701 = r264690 + r264700;
        double r264702 = r264701 - r264692;
        return r264702;
}

double f(double a, double b) {
        double r264703 = a;
        double r264704 = r264703 * r264703;
        double r264705 = b;
        double r264706 = r264705 * r264705;
        double r264707 = r264704 + r264706;
        double r264708 = 2.0;
        double r264709 = pow(r264707, r264708);
        double r264710 = 1.0;
        double r264711 = r264703 + r264710;
        double r264712 = r264704 * r264711;
        double r264713 = 3.0;
        double r264714 = r264713 * r264703;
        double r264715 = r264710 - r264714;
        double r264716 = 2.0;
        double r264717 = pow(r264705, r264716);
        double r264718 = r264715 * r264717;
        double r264719 = r264712 + r264718;
        double r264720 = 4.0;
        double r264721 = r264719 * r264720;
        double r264722 = r264709 + r264721;
        double r264723 = r264722 - r264710;
        return r264723;
}

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. Taylor expanded around 0 0.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) + \color{blue}{\left(1 \cdot {b}^{2} - 3 \cdot \left(a \cdot {b}^{2}\right)\right)}\right)\right) - 1\]
  3. Simplified0.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) + \color{blue}{\left(1 - 3 \cdot a\right) \cdot {b}^{2}}\right)\right) - 1\]
  4. Final simplification0.2

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

Reproduce

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