Average Error: 0.2 → 0.5
Time: 5.5s
Precision: 64
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\]
\[\left(\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)} \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)}\right) \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)} - 1\]
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1
\left(\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)} \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)}\right) \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)} - 1
double f(double a, double b) {
        double r253456 = a;
        double r253457 = r253456 * r253456;
        double r253458 = b;
        double r253459 = r253458 * r253458;
        double r253460 = r253457 + r253459;
        double r253461 = 2.0;
        double r253462 = pow(r253460, r253461);
        double r253463 = 4.0;
        double r253464 = r253463 * r253459;
        double r253465 = r253462 + r253464;
        double r253466 = 1.0;
        double r253467 = r253465 - r253466;
        return r253467;
}

double f(double a, double b) {
        double r253468 = a;
        double r253469 = r253468 * r253468;
        double r253470 = b;
        double r253471 = r253470 * r253470;
        double r253472 = r253469 + r253471;
        double r253473 = 2.0;
        double r253474 = pow(r253472, r253473);
        double r253475 = 4.0;
        double r253476 = r253475 * r253471;
        double r253477 = r253474 + r253476;
        double r253478 = cbrt(r253477);
        double r253479 = r253478 * r253478;
        double r253480 = r253479 * r253478;
        double r253481 = 1.0;
        double r253482 = r253480 - r253481;
        return r253482;
}

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(b \cdot b\right)\right) - 1\]
  2. Using strategy rm
  3. Applied add-cube-cbrt0.5

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

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

Reproduce

herbie shell --seed 2020035 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (26)"
  :precision binary64
  (- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (* b b))) 1))