Average Error: 0.2 → 0.5
Time: 12.1s
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 r205155 = a;
        double r205156 = r205155 * r205155;
        double r205157 = b;
        double r205158 = r205157 * r205157;
        double r205159 = r205156 + r205158;
        double r205160 = 2.0;
        double r205161 = pow(r205159, r205160);
        double r205162 = 4.0;
        double r205163 = r205162 * r205158;
        double r205164 = r205161 + r205163;
        double r205165 = 1.0;
        double r205166 = r205164 - r205165;
        return r205166;
}

double f(double a, double b) {
        double r205167 = a;
        double r205168 = r205167 * r205167;
        double r205169 = b;
        double r205170 = r205169 * r205169;
        double r205171 = r205168 + r205170;
        double r205172 = 2.0;
        double r205173 = pow(r205171, r205172);
        double r205174 = 4.0;
        double r205175 = r205174 * r205170;
        double r205176 = r205173 + r205175;
        double r205177 = cbrt(r205176);
        double r205178 = r205177 * r205177;
        double r205179 = r205178 * r205177;
        double r205180 = 1.0;
        double r205181 = r205179 - r205180;
        return r205181;
}

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 2020045 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (26)"
  :precision binary64
  (- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (* b b))) 1))