Average Error: 0.2 → 0.2
Time: 8.3s
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(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(\left(a \cdot a\right) \cdot \left(\sqrt[3]{1 + a} \cdot \sqrt[3]{1 + a}\right)\right) \cdot \sqrt[3]{1 + a} + \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(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(\left(a \cdot a\right) \cdot \left(\sqrt[3]{1 + a} \cdot \sqrt[3]{1 + a}\right)\right) \cdot \sqrt[3]{1 + a} + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1
double f(double a, double b) {
        double r465158 = a;
        double r465159 = r465158 * r465158;
        double r465160 = b;
        double r465161 = r465160 * r465160;
        double r465162 = r465159 + r465161;
        double r465163 = 2.0;
        double r465164 = pow(r465162, r465163);
        double r465165 = 4.0;
        double r465166 = 1.0;
        double r465167 = r465166 + r465158;
        double r465168 = r465159 * r465167;
        double r465169 = 3.0;
        double r465170 = r465169 * r465158;
        double r465171 = r465166 - r465170;
        double r465172 = r465161 * r465171;
        double r465173 = r465168 + r465172;
        double r465174 = r465165 * r465173;
        double r465175 = r465164 + r465174;
        double r465176 = r465175 - r465166;
        return r465176;
}

double f(double a, double b) {
        double r465177 = a;
        double r465178 = r465177 * r465177;
        double r465179 = b;
        double r465180 = r465179 * r465179;
        double r465181 = r465178 + r465180;
        double r465182 = 2.0;
        double r465183 = pow(r465181, r465182);
        double r465184 = 4.0;
        double r465185 = 1.0;
        double r465186 = r465185 + r465177;
        double r465187 = cbrt(r465186);
        double r465188 = r465187 * r465187;
        double r465189 = r465178 * r465188;
        double r465190 = r465189 * r465187;
        double r465191 = 3.0;
        double r465192 = r465191 * r465177;
        double r465193 = r465185 - r465192;
        double r465194 = r465180 * r465193;
        double r465195 = r465190 + r465194;
        double r465196 = r465184 * r465195;
        double r465197 = r465183 + r465196;
        double r465198 = r465197 - r465185;
        return r465198;
}

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.2

    \[\leadsto \left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \color{blue}{\left(\left(\sqrt[3]{1 + a} \cdot \sqrt[3]{1 + a}\right) \cdot \sqrt[3]{1 + a}\right)} + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]
  4. Applied associate-*r*0.2

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

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

Reproduce

herbie shell --seed 2020036 +o rules:numerics
(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))