Average Error: 0.2 → 0.2
Time: 19.3s
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 r155098 = a;
        double r155099 = r155098 * r155098;
        double r155100 = b;
        double r155101 = r155100 * r155100;
        double r155102 = r155099 + r155101;
        double r155103 = 2.0;
        double r155104 = pow(r155102, r155103);
        double r155105 = 4.0;
        double r155106 = 1.0;
        double r155107 = r155106 + r155098;
        double r155108 = r155099 * r155107;
        double r155109 = 3.0;
        double r155110 = r155109 * r155098;
        double r155111 = r155106 - r155110;
        double r155112 = r155101 * r155111;
        double r155113 = r155108 + r155112;
        double r155114 = r155105 * r155113;
        double r155115 = r155104 + r155114;
        double r155116 = r155115 - r155106;
        return r155116;
}

double f(double a, double b) {
        double r155117 = a;
        double r155118 = r155117 * r155117;
        double r155119 = b;
        double r155120 = r155119 * r155119;
        double r155121 = r155118 + r155120;
        double r155122 = 2.0;
        double r155123 = pow(r155121, r155122);
        double r155124 = 4.0;
        double r155125 = 1.0;
        double r155126 = r155125 + r155117;
        double r155127 = r155118 * r155126;
        double r155128 = 3.0;
        double r155129 = r155128 * r155117;
        double r155130 = r155125 - r155129;
        double r155131 = r155120 * r155130;
        double r155132 = r155127 + r155131;
        double r155133 = r155124 * r155132;
        double r155134 = r155123 + r155133;
        double r155135 = sqrt(r155134);
        double r155136 = r155135 * r155135;
        double r155137 = r155136 - r155125;
        return r155137;
}

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 2019235 
(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))