Average Error: 0.2 → 0.2
Time: 20.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 r153107 = a;
        double r153108 = r153107 * r153107;
        double r153109 = b;
        double r153110 = r153109 * r153109;
        double r153111 = r153108 + r153110;
        double r153112 = 2.0;
        double r153113 = pow(r153111, r153112);
        double r153114 = 4.0;
        double r153115 = 1.0;
        double r153116 = r153115 + r153107;
        double r153117 = r153108 * r153116;
        double r153118 = 3.0;
        double r153119 = r153118 * r153107;
        double r153120 = r153115 - r153119;
        double r153121 = r153110 * r153120;
        double r153122 = r153117 + r153121;
        double r153123 = r153114 * r153122;
        double r153124 = r153113 + r153123;
        double r153125 = r153124 - r153115;
        return r153125;
}

double f(double a, double b) {
        double r153126 = a;
        double r153127 = r153126 * r153126;
        double r153128 = b;
        double r153129 = r153128 * r153128;
        double r153130 = r153127 + r153129;
        double r153131 = 2.0;
        double r153132 = pow(r153130, r153131);
        double r153133 = 4.0;
        double r153134 = 1.0;
        double r153135 = r153134 + r153126;
        double r153136 = r153127 * r153135;
        double r153137 = 3.0;
        double r153138 = r153137 * r153126;
        double r153139 = r153134 - r153138;
        double r153140 = r153129 * r153139;
        double r153141 = r153136 + r153140;
        double r153142 = r153133 * r153141;
        double r153143 = r153132 + r153142;
        double r153144 = sqrt(r153143);
        double r153145 = r153144 * r153144;
        double r153146 = r153145 - r153134;
        return r153146;
}

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