Average Error: 0.2 → 0.2
Time: 26.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} + \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} \cdot \sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \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} - 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} + \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} \cdot \sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \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} - 1
double f(double a, double b) {
        double r7980641 = a;
        double r7980642 = r7980641 * r7980641;
        double r7980643 = b;
        double r7980644 = r7980643 * r7980643;
        double r7980645 = r7980642 + r7980644;
        double r7980646 = 2.0;
        double r7980647 = pow(r7980645, r7980646);
        double r7980648 = 4.0;
        double r7980649 = 1.0;
        double r7980650 = r7980649 + r7980641;
        double r7980651 = r7980642 * r7980650;
        double r7980652 = 3.0;
        double r7980653 = r7980652 * r7980641;
        double r7980654 = r7980649 - r7980653;
        double r7980655 = r7980644 * r7980654;
        double r7980656 = r7980651 + r7980655;
        double r7980657 = r7980648 * r7980656;
        double r7980658 = r7980647 + r7980657;
        double r7980659 = r7980658 - r7980649;
        return r7980659;
}

double f(double a, double b) {
        double r7980660 = a;
        double r7980661 = r7980660 * r7980660;
        double r7980662 = b;
        double r7980663 = r7980662 * r7980662;
        double r7980664 = r7980661 + r7980663;
        double r7980665 = 2.0;
        double r7980666 = pow(r7980664, r7980665);
        double r7980667 = 1.0;
        double r7980668 = r7980660 + r7980667;
        double r7980669 = r7980661 * r7980668;
        double r7980670 = 3.0;
        double r7980671 = r7980670 * r7980660;
        double r7980672 = r7980667 - r7980671;
        double r7980673 = r7980663 * r7980672;
        double r7980674 = r7980669 + r7980673;
        double r7980675 = 4.0;
        double r7980676 = r7980674 * r7980675;
        double r7980677 = r7980666 + r7980676;
        double r7980678 = sqrt(r7980677);
        double r7980679 = r7980678 * r7980678;
        double r7980680 = r7980679 - r7980667;
        return r7980680;
}

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} + \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} \cdot \sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \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} - 1\]

Reproduce

herbie shell --seed 2019170 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (25)"
  (- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (+ 1.0 a)) (* (* b b) (- 1.0 (* 3.0 a)))))) 1.0))