Average Error: 0.2 → 0.5
Time: 1.0m
Precision: 64
\[\left({\left(a \cdot a + b \cdot b\right)}^{2.0} + 4.0 \cdot \left(\left(a \cdot a\right) \cdot \left(1.0 + a\right) + \left(b \cdot b\right) \cdot \left(1.0 - 3.0 \cdot a\right)\right)\right) - 1.0\]
\[\left(\left(\left(b \cdot b\right) \cdot \left(1.0 - a \cdot 3.0\right) + \left(a \cdot a\right) \cdot \left(a + 1.0\right)\right) \cdot 4.0 + \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2.0}} \cdot \left(\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2.0}} \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2.0}}\right)\right) - 1.0\]
\left({\left(a \cdot a + b \cdot b\right)}^{2.0} + 4.0 \cdot \left(\left(a \cdot a\right) \cdot \left(1.0 + a\right) + \left(b \cdot b\right) \cdot \left(1.0 - 3.0 \cdot a\right)\right)\right) - 1.0
\left(\left(\left(b \cdot b\right) \cdot \left(1.0 - a \cdot 3.0\right) + \left(a \cdot a\right) \cdot \left(a + 1.0\right)\right) \cdot 4.0 + \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2.0}} \cdot \left(\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2.0}} \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2.0}}\right)\right) - 1.0
double f(double a, double b) {
        double r6563183 = a;
        double r6563184 = r6563183 * r6563183;
        double r6563185 = b;
        double r6563186 = r6563185 * r6563185;
        double r6563187 = r6563184 + r6563186;
        double r6563188 = 2.0;
        double r6563189 = pow(r6563187, r6563188);
        double r6563190 = 4.0;
        double r6563191 = 1.0;
        double r6563192 = r6563191 + r6563183;
        double r6563193 = r6563184 * r6563192;
        double r6563194 = 3.0;
        double r6563195 = r6563194 * r6563183;
        double r6563196 = r6563191 - r6563195;
        double r6563197 = r6563186 * r6563196;
        double r6563198 = r6563193 + r6563197;
        double r6563199 = r6563190 * r6563198;
        double r6563200 = r6563189 + r6563199;
        double r6563201 = r6563200 - r6563191;
        return r6563201;
}

double f(double a, double b) {
        double r6563202 = b;
        double r6563203 = r6563202 * r6563202;
        double r6563204 = 1.0;
        double r6563205 = a;
        double r6563206 = 3.0;
        double r6563207 = r6563205 * r6563206;
        double r6563208 = r6563204 - r6563207;
        double r6563209 = r6563203 * r6563208;
        double r6563210 = r6563205 * r6563205;
        double r6563211 = r6563205 + r6563204;
        double r6563212 = r6563210 * r6563211;
        double r6563213 = r6563209 + r6563212;
        double r6563214 = 4.0;
        double r6563215 = r6563213 * r6563214;
        double r6563216 = r6563210 + r6563203;
        double r6563217 = 2.0;
        double r6563218 = pow(r6563216, r6563217);
        double r6563219 = cbrt(r6563218);
        double r6563220 = r6563219 * r6563219;
        double r6563221 = r6563219 * r6563220;
        double r6563222 = r6563215 + r6563221;
        double r6563223 = r6563222 - r6563204;
        return r6563223;
}

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.0} + 4.0 \cdot \left(\left(a \cdot a\right) \cdot \left(1.0 + a\right) + \left(b \cdot b\right) \cdot \left(1.0 - 3.0 \cdot a\right)\right)\right) - 1.0\]
  2. Using strategy rm
  3. Applied add-cube-cbrt0.5

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

    \[\leadsto \left(\left(\left(b \cdot b\right) \cdot \left(1.0 - a \cdot 3.0\right) + \left(a \cdot a\right) \cdot \left(a + 1.0\right)\right) \cdot 4.0 + \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2.0}} \cdot \left(\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2.0}} \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2.0}}\right)\right) - 1.0\]

Reproduce

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