Average Error: 0.2 → 0.1
Time: 19.6s
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(\left(a \cdot \sqrt{\left(4 - 4 \cdot a\right) + \left(b \cdot b + a \cdot a\right)}\right) \cdot \sqrt{\left(4 - 4 \cdot a\right) + \left(b \cdot b + a \cdot a\right)}\right) \cdot a + -1\right) + b \cdot \left(\left(\left(12 + 4 \cdot a\right) + \left(b \cdot b + a \cdot a\right)\right) \cdot b\right)\]
\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(\left(a \cdot \sqrt{\left(4 - 4 \cdot a\right) + \left(b \cdot b + a \cdot a\right)}\right) \cdot \sqrt{\left(4 - 4 \cdot a\right) + \left(b \cdot b + a \cdot a\right)}\right) \cdot a + -1\right) + b \cdot \left(\left(\left(12 + 4 \cdot a\right) + \left(b \cdot b + a \cdot a\right)\right) \cdot b\right)
double f(double a, double b) {
        double r9847796 = a;
        double r9847797 = r9847796 * r9847796;
        double r9847798 = b;
        double r9847799 = r9847798 * r9847798;
        double r9847800 = r9847797 + r9847799;
        double r9847801 = 2.0;
        double r9847802 = pow(r9847800, r9847801);
        double r9847803 = 4.0;
        double r9847804 = 1.0;
        double r9847805 = r9847804 - r9847796;
        double r9847806 = r9847797 * r9847805;
        double r9847807 = 3.0;
        double r9847808 = r9847807 + r9847796;
        double r9847809 = r9847799 * r9847808;
        double r9847810 = r9847806 + r9847809;
        double r9847811 = r9847803 * r9847810;
        double r9847812 = r9847802 + r9847811;
        double r9847813 = r9847812 - r9847804;
        return r9847813;
}

double f(double a, double b) {
        double r9847814 = a;
        double r9847815 = 4.0;
        double r9847816 = r9847815 * r9847814;
        double r9847817 = r9847815 - r9847816;
        double r9847818 = b;
        double r9847819 = r9847818 * r9847818;
        double r9847820 = r9847814 * r9847814;
        double r9847821 = r9847819 + r9847820;
        double r9847822 = r9847817 + r9847821;
        double r9847823 = sqrt(r9847822);
        double r9847824 = r9847814 * r9847823;
        double r9847825 = r9847824 * r9847823;
        double r9847826 = r9847825 * r9847814;
        double r9847827 = -1.0;
        double r9847828 = r9847826 + r9847827;
        double r9847829 = 12.0;
        double r9847830 = r9847829 + r9847816;
        double r9847831 = r9847830 + r9847821;
        double r9847832 = r9847831 * r9847818;
        double r9847833 = r9847818 * r9847832;
        double r9847834 = r9847828 + r9847833;
        return r9847834;
}

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. Simplified0.2

    \[\leadsto \color{blue}{\left(b \cdot b\right) \cdot \left(\left(a \cdot a + b \cdot b\right) + \left(12 + 4 \cdot a\right)\right) + \left(\left(a \cdot a\right) \cdot \left(\left(a \cdot a + b \cdot b\right) + \left(4 - 4 \cdot a\right)\right) + -1\right)}\]
  3. Using strategy rm
  4. Applied associate-*l*0.2

    \[\leadsto \color{blue}{b \cdot \left(b \cdot \left(\left(a \cdot a + b \cdot b\right) + \left(12 + 4 \cdot a\right)\right)\right)} + \left(\left(a \cdot a\right) \cdot \left(\left(a \cdot a + b \cdot b\right) + \left(4 - 4 \cdot a\right)\right) + -1\right)\]
  5. Using strategy rm
  6. Applied associate-*l*0.1

    \[\leadsto b \cdot \left(b \cdot \left(\left(a \cdot a + b \cdot b\right) + \left(12 + 4 \cdot a\right)\right)\right) + \left(\color{blue}{a \cdot \left(a \cdot \left(\left(a \cdot a + b \cdot b\right) + \left(4 - 4 \cdot a\right)\right)\right)} + -1\right)\]
  7. Using strategy rm
  8. Applied add-sqr-sqrt0.1

    \[\leadsto b \cdot \left(b \cdot \left(\left(a \cdot a + b \cdot b\right) + \left(12 + 4 \cdot a\right)\right)\right) + \left(a \cdot \left(a \cdot \color{blue}{\left(\sqrt{\left(a \cdot a + b \cdot b\right) + \left(4 - 4 \cdot a\right)} \cdot \sqrt{\left(a \cdot a + b \cdot b\right) + \left(4 - 4 \cdot a\right)}\right)}\right) + -1\right)\]
  9. Applied associate-*r*0.1

    \[\leadsto b \cdot \left(b \cdot \left(\left(a \cdot a + b \cdot b\right) + \left(12 + 4 \cdot a\right)\right)\right) + \left(a \cdot \color{blue}{\left(\left(a \cdot \sqrt{\left(a \cdot a + b \cdot b\right) + \left(4 - 4 \cdot a\right)}\right) \cdot \sqrt{\left(a \cdot a + b \cdot b\right) + \left(4 - 4 \cdot a\right)}\right)} + -1\right)\]
  10. Final simplification0.1

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

Reproduce

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