Average Error: 0.2 → 0.1
Time: 16.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(12 \cdot \left(b \cdot b\right) + 4 \cdot \left(\left(\left(1 - a\right) \cdot a + b \cdot b\right) \cdot a\right)\right) - \left(1 - \sqrt{a \cdot a + b \cdot b} \cdot {\left(\sqrt{a \cdot a + b \cdot b}\right)}^{3}\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(12 \cdot \left(b \cdot b\right) + 4 \cdot \left(\left(\left(1 - a\right) \cdot a + b \cdot b\right) \cdot a\right)\right) - \left(1 - \sqrt{a \cdot a + b \cdot b} \cdot {\left(\sqrt{a \cdot a + b \cdot b}\right)}^{3}\right)
double f(double a, double b) {
        double r3820005 = a;
        double r3820006 = r3820005 * r3820005;
        double r3820007 = b;
        double r3820008 = r3820007 * r3820007;
        double r3820009 = r3820006 + r3820008;
        double r3820010 = 2.0;
        double r3820011 = pow(r3820009, r3820010);
        double r3820012 = 4.0;
        double r3820013 = 1.0;
        double r3820014 = r3820013 - r3820005;
        double r3820015 = r3820006 * r3820014;
        double r3820016 = 3.0;
        double r3820017 = r3820016 + r3820005;
        double r3820018 = r3820008 * r3820017;
        double r3820019 = r3820015 + r3820018;
        double r3820020 = r3820012 * r3820019;
        double r3820021 = r3820011 + r3820020;
        double r3820022 = r3820021 - r3820013;
        return r3820022;
}

double f(double a, double b) {
        double r3820023 = 12.0;
        double r3820024 = b;
        double r3820025 = r3820024 * r3820024;
        double r3820026 = r3820023 * r3820025;
        double r3820027 = 4.0;
        double r3820028 = 1.0;
        double r3820029 = a;
        double r3820030 = r3820028 - r3820029;
        double r3820031 = r3820030 * r3820029;
        double r3820032 = r3820031 + r3820025;
        double r3820033 = r3820032 * r3820029;
        double r3820034 = r3820027 * r3820033;
        double r3820035 = r3820026 + r3820034;
        double r3820036 = r3820029 * r3820029;
        double r3820037 = r3820036 + r3820025;
        double r3820038 = sqrt(r3820037);
        double r3820039 = 3.0;
        double r3820040 = pow(r3820038, r3820039);
        double r3820041 = r3820038 * r3820040;
        double r3820042 = r3820028 - r3820041;
        double r3820043 = r3820035 - r3820042;
        return r3820043;
}

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(12 \cdot \left(b \cdot b\right) + 4 \cdot \left(a \cdot \left(b \cdot b + a \cdot \left(1 - a\right)\right)\right)\right) - \left(1 - \left(a \cdot a + b \cdot b\right) \cdot \left(a \cdot a + b \cdot b\right)\right)}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt0.2

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

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

    \[\leadsto \left(12 \cdot \left(b \cdot b\right) + 4 \cdot \left(a \cdot \left(b \cdot b + a \cdot \left(1 - a\right)\right)\right)\right) - \left(1 - \left(\color{blue}{\left(\sqrt{a \cdot a + b \cdot b} \cdot \sqrt{a \cdot a + b \cdot b}\right)} \cdot \sqrt{a \cdot a + b \cdot b}\right) \cdot \sqrt{a \cdot a + b \cdot b}\right)\]
  8. Applied pow30.1

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

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

Reproduce

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