Average Error: 0.2 → 0.2
Time: 7.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 r160042 = a;
        double r160043 = r160042 * r160042;
        double r160044 = b;
        double r160045 = r160044 * r160044;
        double r160046 = r160043 + r160045;
        double r160047 = 2.0;
        double r160048 = pow(r160046, r160047);
        double r160049 = 4.0;
        double r160050 = 1.0;
        double r160051 = r160050 + r160042;
        double r160052 = r160043 * r160051;
        double r160053 = 3.0;
        double r160054 = r160053 * r160042;
        double r160055 = r160050 - r160054;
        double r160056 = r160045 * r160055;
        double r160057 = r160052 + r160056;
        double r160058 = r160049 * r160057;
        double r160059 = r160048 + r160058;
        double r160060 = r160059 - r160050;
        return r160060;
}

double f(double a, double b) {
        double r160061 = a;
        double r160062 = r160061 * r160061;
        double r160063 = b;
        double r160064 = r160063 * r160063;
        double r160065 = r160062 + r160064;
        double r160066 = 2.0;
        double r160067 = pow(r160065, r160066);
        double r160068 = 4.0;
        double r160069 = 1.0;
        double r160070 = r160069 + r160061;
        double r160071 = r160062 * r160070;
        double r160072 = 3.0;
        double r160073 = r160072 * r160061;
        double r160074 = r160069 - r160073;
        double r160075 = r160064 * r160074;
        double r160076 = r160071 + r160075;
        double r160077 = r160068 * r160076;
        double r160078 = r160067 + r160077;
        double r160079 = sqrt(r160078);
        double r160080 = r160079 * r160079;
        double r160081 = r160080 - r160069;
        return r160081;
}

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