Average Error: 0.2 → 0.0
Time: 1.0m
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{a \cdot a + b \cdot b}\right)}^{4} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4\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{a \cdot a + b \cdot b}\right)}^{4} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4\right) - 1
double f(double a, double b) {
        double r52092164 = a;
        double r52092165 = r52092164 * r52092164;
        double r52092166 = b;
        double r52092167 = r52092166 * r52092166;
        double r52092168 = r52092165 + r52092167;
        double r52092169 = 2.0;
        double r52092170 = pow(r52092168, r52092169);
        double r52092171 = 4.0;
        double r52092172 = 1.0;
        double r52092173 = r52092172 + r52092164;
        double r52092174 = r52092165 * r52092173;
        double r52092175 = 3.0;
        double r52092176 = r52092175 * r52092164;
        double r52092177 = r52092172 - r52092176;
        double r52092178 = r52092167 * r52092177;
        double r52092179 = r52092174 + r52092178;
        double r52092180 = r52092171 * r52092179;
        double r52092181 = r52092170 + r52092180;
        double r52092182 = r52092181 - r52092172;
        return r52092182;
}

double f(double a, double b) {
        double r52092183 = a;
        double r52092184 = r52092183 * r52092183;
        double r52092185 = b;
        double r52092186 = r52092185 * r52092185;
        double r52092187 = r52092184 + r52092186;
        double r52092188 = sqrt(r52092187);
        double r52092189 = 4.0;
        double r52092190 = pow(r52092188, r52092189);
        double r52092191 = 1.0;
        double r52092192 = r52092183 + r52092191;
        double r52092193 = r52092184 * r52092192;
        double r52092194 = 3.0;
        double r52092195 = r52092194 * r52092183;
        double r52092196 = r52092191 - r52092195;
        double r52092197 = r52092186 * r52092196;
        double r52092198 = r52092193 + r52092197;
        double r52092199 = r52092198 * r52092189;
        double r52092200 = r52092190 + r52092199;
        double r52092201 = r52092200 - r52092191;
        return r52092201;
}

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

    \[\leadsto \left({\color{blue}{\left(\sqrt{a \cdot a + b \cdot b} \cdot \sqrt{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.2

    \[\leadsto \left(\color{blue}{{\left(\sqrt{a \cdot a + b \cdot b}\right)}^{2} \cdot {\left(\sqrt{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. Using strategy rm
  6. Applied pow-sqr0.0

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

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

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

Reproduce

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