Average Error: 0.2 → 0.2
Time: 27.9s
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(3 + a\right)\right)\right) - 1\]
\[\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4} \cdot \sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - 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(3 + a\right)\right)\right) - 1
\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4} \cdot \sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4} - 1
double f(double a, double b) {
        double r8883709 = a;
        double r8883710 = r8883709 * r8883709;
        double r8883711 = b;
        double r8883712 = r8883711 * r8883711;
        double r8883713 = r8883710 + r8883712;
        double r8883714 = 2.0;
        double r8883715 = pow(r8883713, r8883714);
        double r8883716 = 4.0;
        double r8883717 = 1.0;
        double r8883718 = r8883717 - r8883709;
        double r8883719 = r8883710 * r8883718;
        double r8883720 = 3.0;
        double r8883721 = r8883720 + r8883709;
        double r8883722 = r8883712 * r8883721;
        double r8883723 = r8883719 + r8883722;
        double r8883724 = r8883716 * r8883723;
        double r8883725 = r8883715 + r8883724;
        double r8883726 = r8883725 - r8883717;
        return r8883726;
}

double f(double a, double b) {
        double r8883727 = a;
        double r8883728 = r8883727 * r8883727;
        double r8883729 = b;
        double r8883730 = r8883729 * r8883729;
        double r8883731 = r8883728 + r8883730;
        double r8883732 = 2.0;
        double r8883733 = pow(r8883731, r8883732);
        double r8883734 = 3.0;
        double r8883735 = r8883727 + r8883734;
        double r8883736 = r8883735 * r8883730;
        double r8883737 = 1.0;
        double r8883738 = r8883737 - r8883727;
        double r8883739 = r8883728 * r8883738;
        double r8883740 = r8883736 + r8883739;
        double r8883741 = 4.0;
        double r8883742 = r8883740 * r8883741;
        double r8883743 = r8883733 + r8883742;
        double r8883744 = sqrt(r8883743);
        double r8883745 = r8883744 * r8883744;
        double r8883746 = r8883745 - r8883737;
        return r8883746;
}

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(3 + 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(3 + 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(3 + a\right)\right)}} - 1\]
  4. Final simplification0.2

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

Reproduce

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