Average Error: 0.2 → 0.2
Time: 14.4s
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\]
\[\sqrt{{\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)} \cdot \sqrt{{\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)} - 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
\sqrt{{\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)} \cdot \sqrt{{\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)} - 1
double f(double a, double b) {
        double r193423 = a;
        double r193424 = r193423 * r193423;
        double r193425 = b;
        double r193426 = r193425 * r193425;
        double r193427 = r193424 + r193426;
        double r193428 = 2.0;
        double r193429 = pow(r193427, r193428);
        double r193430 = 4.0;
        double r193431 = 1.0;
        double r193432 = r193431 + r193423;
        double r193433 = r193424 * r193432;
        double r193434 = 3.0;
        double r193435 = r193434 * r193423;
        double r193436 = r193431 - r193435;
        double r193437 = r193426 * r193436;
        double r193438 = r193433 + r193437;
        double r193439 = r193430 * r193438;
        double r193440 = r193429 + r193439;
        double r193441 = r193440 - r193431;
        return r193441;
}

double f(double a, double b) {
        double r193442 = a;
        double r193443 = r193442 * r193442;
        double r193444 = b;
        double r193445 = r193444 * r193444;
        double r193446 = r193443 + r193445;
        double r193447 = 2.0;
        double r193448 = pow(r193446, r193447);
        double r193449 = 4.0;
        double r193450 = 1.0;
        double r193451 = r193450 + r193442;
        double r193452 = r193443 * r193451;
        double r193453 = 3.0;
        double r193454 = r193453 * r193442;
        double r193455 = r193450 - r193454;
        double r193456 = r193445 * r193455;
        double r193457 = r193452 + r193456;
        double r193458 = r193449 * r193457;
        double r193459 = r193448 + r193458;
        double r193460 = sqrt(r193459);
        double r193461 = r193460 * r193460;
        double r193462 = r193461 - r193450;
        return r193462;
}

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 \color{blue}{\sqrt{{\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)} \cdot \sqrt{{\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)}} - 1\]
  4. Final simplification0.2

    \[\leadsto \sqrt{{\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)} \cdot \sqrt{{\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)} - 1\]

Reproduce

herbie shell --seed 2020043 
(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))