Average Error: 0.2 → 0.7
Time: 6.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[3]{a \cdot a + b \cdot b} \cdot \sqrt[3]{a \cdot a + b \cdot b}\right)}^{2} \cdot {\left(\sqrt[3]{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(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[3]{a \cdot a + b \cdot b} \cdot \sqrt[3]{a \cdot a + b \cdot b}\right)}^{2} \cdot {\left(\sqrt[3]{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
double f(double a, double b) {
        double r357229 = a;
        double r357230 = r357229 * r357229;
        double r357231 = b;
        double r357232 = r357231 * r357231;
        double r357233 = r357230 + r357232;
        double r357234 = 2.0;
        double r357235 = pow(r357233, r357234);
        double r357236 = 4.0;
        double r357237 = 1.0;
        double r357238 = r357237 - r357229;
        double r357239 = r357230 * r357238;
        double r357240 = 3.0;
        double r357241 = r357240 + r357229;
        double r357242 = r357232 * r357241;
        double r357243 = r357239 + r357242;
        double r357244 = r357236 * r357243;
        double r357245 = r357235 + r357244;
        double r357246 = r357245 - r357237;
        return r357246;
}

double f(double a, double b) {
        double r357247 = a;
        double r357248 = r357247 * r357247;
        double r357249 = b;
        double r357250 = r357249 * r357249;
        double r357251 = r357248 + r357250;
        double r357252 = cbrt(r357251);
        double r357253 = r357252 * r357252;
        double r357254 = 2.0;
        double r357255 = pow(r357253, r357254);
        double r357256 = pow(r357252, r357254);
        double r357257 = r357255 * r357256;
        double r357258 = 4.0;
        double r357259 = 1.0;
        double r357260 = r357259 - r357247;
        double r357261 = r357248 * r357260;
        double r357262 = 3.0;
        double r357263 = r357262 + r357247;
        double r357264 = r357250 * r357263;
        double r357265 = r357261 + r357264;
        double r357266 = r357258 * r357265;
        double r357267 = r357257 + r357266;
        double r357268 = r357267 - r357259;
        return r357268;
}

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

    \[\leadsto \left({\color{blue}{\left(\left(\sqrt[3]{a \cdot a + b \cdot b} \cdot \sqrt[3]{a \cdot a + b \cdot b}\right) \cdot \sqrt[3]{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\]
  4. Applied unpow-prod-down0.7

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

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

Reproduce

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