Average Error: 0.2 → 0.2
Time: 27.1s
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(\sqrt[3]{\left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4} \cdot \sqrt[3]{\left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4}\right) \cdot \sqrt[3]{\left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4} + {\left(a \cdot a + b \cdot b\right)}^{2}\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(\sqrt[3]{\left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4} \cdot \sqrt[3]{\left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4}\right) \cdot \sqrt[3]{\left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4} + {\left(a \cdot a + b \cdot b\right)}^{2}\right) - 1
double f(double a, double b) {
        double r8571396 = a;
        double r8571397 = r8571396 * r8571396;
        double r8571398 = b;
        double r8571399 = r8571398 * r8571398;
        double r8571400 = r8571397 + r8571399;
        double r8571401 = 2.0;
        double r8571402 = pow(r8571400, r8571401);
        double r8571403 = 4.0;
        double r8571404 = 1.0;
        double r8571405 = r8571404 + r8571396;
        double r8571406 = r8571397 * r8571405;
        double r8571407 = 3.0;
        double r8571408 = r8571407 * r8571396;
        double r8571409 = r8571404 - r8571408;
        double r8571410 = r8571399 * r8571409;
        double r8571411 = r8571406 + r8571410;
        double r8571412 = r8571403 * r8571411;
        double r8571413 = r8571402 + r8571412;
        double r8571414 = r8571413 - r8571404;
        return r8571414;
}

double f(double a, double b) {
        double r8571415 = a;
        double r8571416 = r8571415 * r8571415;
        double r8571417 = 1.0;
        double r8571418 = r8571415 + r8571417;
        double r8571419 = r8571416 * r8571418;
        double r8571420 = b;
        double r8571421 = r8571420 * r8571420;
        double r8571422 = 3.0;
        double r8571423 = r8571422 * r8571415;
        double r8571424 = r8571417 - r8571423;
        double r8571425 = r8571421 * r8571424;
        double r8571426 = r8571419 + r8571425;
        double r8571427 = 4.0;
        double r8571428 = r8571426 * r8571427;
        double r8571429 = cbrt(r8571428);
        double r8571430 = r8571429 * r8571429;
        double r8571431 = r8571430 * r8571429;
        double r8571432 = r8571416 + r8571421;
        double r8571433 = 2.0;
        double r8571434 = pow(r8571432, r8571433);
        double r8571435 = r8571431 + r8571434;
        double r8571436 = r8571435 - r8571417;
        return r8571436;
}

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. Using strategy rm
  3. Applied add-cube-cbrt0.2

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

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

Reproduce

herbie shell --seed 2019172 +o rules:numerics
(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))