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(1 - 3 \cdot 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(1 - 3 \cdot 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(1 - 3 \cdot 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(1 - 3 \cdot a\right)\right)\right) - 1
double f(double a, double b) {
        double r397189 = a;
        double r397190 = r397189 * r397189;
        double r397191 = b;
        double r397192 = r397191 * r397191;
        double r397193 = r397190 + r397192;
        double r397194 = 2.0;
        double r397195 = pow(r397193, r397194);
        double r397196 = 4.0;
        double r397197 = 1.0;
        double r397198 = r397197 + r397189;
        double r397199 = r397190 * r397198;
        double r397200 = 3.0;
        double r397201 = r397200 * r397189;
        double r397202 = r397197 - r397201;
        double r397203 = r397192 * r397202;
        double r397204 = r397199 + r397203;
        double r397205 = r397196 * r397204;
        double r397206 = r397195 + r397205;
        double r397207 = r397206 - r397197;
        return r397207;
}

double f(double a, double b) {
        double r397208 = a;
        double r397209 = r397208 * r397208;
        double r397210 = b;
        double r397211 = r397210 * r397210;
        double r397212 = r397209 + r397211;
        double r397213 = cbrt(r397212);
        double r397214 = r397213 * r397213;
        double r397215 = 2.0;
        double r397216 = pow(r397214, r397215);
        double r397217 = pow(r397213, r397215);
        double r397218 = r397216 * r397217;
        double r397219 = 4.0;
        double r397220 = 1.0;
        double r397221 = r397220 + r397208;
        double r397222 = r397209 * r397221;
        double r397223 = 3.0;
        double r397224 = r397223 * r397208;
        double r397225 = r397220 - r397224;
        double r397226 = r397211 * r397225;
        double r397227 = r397222 + r397226;
        double r397228 = r397219 * r397227;
        double r397229 = r397218 + r397228;
        double r397230 = r397229 - r397220;
        return r397230;
}

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.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(1 - 3 \cdot 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(1 - 3 \cdot 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(1 - 3 \cdot a\right)\right)\right) - 1\]

Reproduce

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