Average Error: 0.2 → 0.0
Time: 1.3m
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 r13307597 = a;
        double r13307598 = r13307597 * r13307597;
        double r13307599 = b;
        double r13307600 = r13307599 * r13307599;
        double r13307601 = r13307598 + r13307600;
        double r13307602 = 2.0;
        double r13307603 = pow(r13307601, r13307602);
        double r13307604 = 4.0;
        double r13307605 = 1.0;
        double r13307606 = r13307605 + r13307597;
        double r13307607 = r13307598 * r13307606;
        double r13307608 = 3.0;
        double r13307609 = r13307608 * r13307597;
        double r13307610 = r13307605 - r13307609;
        double r13307611 = r13307600 * r13307610;
        double r13307612 = r13307607 + r13307611;
        double r13307613 = r13307604 * r13307612;
        double r13307614 = r13307603 + r13307613;
        double r13307615 = r13307614 - r13307605;
        return r13307615;
}

double f(double a, double b) {
        double r13307616 = a;
        double r13307617 = r13307616 * r13307616;
        double r13307618 = b;
        double r13307619 = r13307618 * r13307618;
        double r13307620 = r13307617 + r13307619;
        double r13307621 = sqrt(r13307620);
        double r13307622 = 4.0;
        double r13307623 = pow(r13307621, r13307622);
        double r13307624 = 1.0;
        double r13307625 = r13307616 + r13307624;
        double r13307626 = r13307617 * r13307625;
        double r13307627 = 3.0;
        double r13307628 = r13307627 * r13307616;
        double r13307629 = r13307624 - r13307628;
        double r13307630 = r13307619 * r13307629;
        double r13307631 = r13307626 + r13307630;
        double r13307632 = r13307631 * r13307622;
        double r13307633 = r13307623 + r13307632;
        double r13307634 = r13307633 - r13307624;
        return r13307634;
}

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-prod-up0.0

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