Average Error: 0.2 → 0.2
Time: 41.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(\sqrt{\left(12 + 4 \cdot a\right) + \left(b \cdot b + a \cdot a\right)} \cdot \left(b \cdot b\right)\right) \cdot \sqrt{\sqrt{\left(12 + 4 \cdot a\right) + \left(b \cdot b + a \cdot a\right)}}\right) \cdot \sqrt{\sqrt{\left(12 + 4 \cdot a\right) + \left(b \cdot b + a \cdot a\right)}} + \left(\left(a \cdot a\right) \cdot \left(\left(b \cdot b + a \cdot a\right) + \left(4 - 4 \cdot a\right)\right) + -1\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(\sqrt{\left(12 + 4 \cdot a\right) + \left(b \cdot b + a \cdot a\right)} \cdot \left(b \cdot b\right)\right) \cdot \sqrt{\sqrt{\left(12 + 4 \cdot a\right) + \left(b \cdot b + a \cdot a\right)}}\right) \cdot \sqrt{\sqrt{\left(12 + 4 \cdot a\right) + \left(b \cdot b + a \cdot a\right)}} + \left(\left(a \cdot a\right) \cdot \left(\left(b \cdot b + a \cdot a\right) + \left(4 - 4 \cdot a\right)\right) + -1\right)
double f(double a, double b) {
        double r12281224 = a;
        double r12281225 = r12281224 * r12281224;
        double r12281226 = b;
        double r12281227 = r12281226 * r12281226;
        double r12281228 = r12281225 + r12281227;
        double r12281229 = 2.0;
        double r12281230 = pow(r12281228, r12281229);
        double r12281231 = 4.0;
        double r12281232 = 1.0;
        double r12281233 = r12281232 - r12281224;
        double r12281234 = r12281225 * r12281233;
        double r12281235 = 3.0;
        double r12281236 = r12281235 + r12281224;
        double r12281237 = r12281227 * r12281236;
        double r12281238 = r12281234 + r12281237;
        double r12281239 = r12281231 * r12281238;
        double r12281240 = r12281230 + r12281239;
        double r12281241 = r12281240 - r12281232;
        return r12281241;
}

double f(double a, double b) {
        double r12281242 = 12.0;
        double r12281243 = 4.0;
        double r12281244 = a;
        double r12281245 = r12281243 * r12281244;
        double r12281246 = r12281242 + r12281245;
        double r12281247 = b;
        double r12281248 = r12281247 * r12281247;
        double r12281249 = r12281244 * r12281244;
        double r12281250 = r12281248 + r12281249;
        double r12281251 = r12281246 + r12281250;
        double r12281252 = sqrt(r12281251);
        double r12281253 = r12281252 * r12281248;
        double r12281254 = sqrt(r12281252);
        double r12281255 = r12281253 * r12281254;
        double r12281256 = r12281255 * r12281254;
        double r12281257 = r12281243 - r12281245;
        double r12281258 = r12281250 + r12281257;
        double r12281259 = r12281249 * r12281258;
        double r12281260 = -1.0;
        double r12281261 = r12281259 + r12281260;
        double r12281262 = r12281256 + r12281261;
        return r12281262;
}

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 add-sqr-sqrt0.2

    \[\leadsto \left(b \cdot b\right) \cdot \color{blue}{\left(\sqrt{\left(a \cdot a + b \cdot b\right) + \left(12 + 4 \cdot a\right)} \cdot \sqrt{\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)\]
  5. Applied associate-*r*0.2

    \[\leadsto \color{blue}{\left(\left(b \cdot b\right) \cdot \sqrt{\left(a \cdot a + b \cdot b\right) + \left(12 + 4 \cdot a\right)}\right) \cdot \sqrt{\left(a \cdot a + b \cdot b\right) + \left(12 + 4 \cdot a\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)\]
  6. Using strategy rm
  7. Applied add-sqr-sqrt0.2

    \[\leadsto \left(\left(b \cdot b\right) \cdot \sqrt{\left(a \cdot a + b \cdot b\right) + \left(12 + 4 \cdot a\right)}\right) \cdot \color{blue}{\left(\sqrt{\sqrt{\left(a \cdot a + b \cdot b\right) + \left(12 + 4 \cdot a\right)}} \cdot \sqrt{\sqrt{\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)\]
  8. Applied associate-*r*0.2

    \[\leadsto \color{blue}{\left(\left(\left(b \cdot b\right) \cdot \sqrt{\left(a \cdot a + b \cdot b\right) + \left(12 + 4 \cdot a\right)}\right) \cdot \sqrt{\sqrt{\left(a \cdot a + b \cdot b\right) + \left(12 + 4 \cdot a\right)}}\right) \cdot \sqrt{\sqrt{\left(a \cdot a + b \cdot b\right) + \left(12 + 4 \cdot a\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)\]
  9. Final simplification0.2

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

Reproduce

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