Average Error: 0.2 → 0.2
Time: 14.2s
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 r133017 = a;
        double r133018 = r133017 * r133017;
        double r133019 = b;
        double r133020 = r133019 * r133019;
        double r133021 = r133018 + r133020;
        double r133022 = 2.0;
        double r133023 = pow(r133021, r133022);
        double r133024 = 4.0;
        double r133025 = 1.0;
        double r133026 = r133025 + r133017;
        double r133027 = r133018 * r133026;
        double r133028 = 3.0;
        double r133029 = r133028 * r133017;
        double r133030 = r133025 - r133029;
        double r133031 = r133020 * r133030;
        double r133032 = r133027 + r133031;
        double r133033 = r133024 * r133032;
        double r133034 = r133023 + r133033;
        double r133035 = r133034 - r133025;
        return r133035;
}

double f(double a, double b) {
        double r133036 = a;
        double r133037 = r133036 * r133036;
        double r133038 = b;
        double r133039 = r133038 * r133038;
        double r133040 = r133037 + r133039;
        double r133041 = 2.0;
        double r133042 = pow(r133040, r133041);
        double r133043 = 4.0;
        double r133044 = 1.0;
        double r133045 = r133044 + r133036;
        double r133046 = r133037 * r133045;
        double r133047 = 3.0;
        double r133048 = r133047 * r133036;
        double r133049 = r133044 - r133048;
        double r133050 = r133039 * r133049;
        double r133051 = r133046 + r133050;
        double r133052 = r133043 * r133051;
        double r133053 = r133042 + r133052;
        double r133054 = sqrt(r133053);
        double r133055 = r133054 * r133054;
        double r133056 = r133055 - r133044;
        return r133056;
}

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