\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\left({\left(b \cdot b + a \cdot a\right)}^{2} + \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 4\right) - 1double f(double a, double b) {
double r11048076 = a;
double r11048077 = r11048076 * r11048076;
double r11048078 = b;
double r11048079 = r11048078 * r11048078;
double r11048080 = r11048077 + r11048079;
double r11048081 = 2.0;
double r11048082 = pow(r11048080, r11048081);
double r11048083 = 4.0;
double r11048084 = 1.0;
double r11048085 = r11048084 + r11048076;
double r11048086 = r11048077 * r11048085;
double r11048087 = 3.0;
double r11048088 = r11048087 * r11048076;
double r11048089 = r11048084 - r11048088;
double r11048090 = r11048079 * r11048089;
double r11048091 = r11048086 + r11048090;
double r11048092 = r11048083 * r11048091;
double r11048093 = r11048082 + r11048092;
double r11048094 = r11048093 - r11048084;
return r11048094;
}
double f(double a, double b) {
double r11048095 = b;
double r11048096 = r11048095 * r11048095;
double r11048097 = a;
double r11048098 = r11048097 * r11048097;
double r11048099 = r11048096 + r11048098;
double r11048100 = 2.0;
double r11048101 = pow(r11048099, r11048100);
double r11048102 = 1.0;
double r11048103 = r11048102 + r11048097;
double r11048104 = r11048098 * r11048103;
double r11048105 = 3.0;
double r11048106 = r11048105 * r11048097;
double r11048107 = r11048102 - r11048106;
double r11048108 = r11048096 * r11048107;
double r11048109 = r11048104 + r11048108;
double r11048110 = 4.0;
double r11048111 = r11048109 * r11048110;
double r11048112 = r11048101 + r11048111;
double r11048113 = r11048112 - r11048102;
return r11048113;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied +-commutative0.2
Final simplification0.2
herbie shell --seed 2019171 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
(- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (+ 1.0 a)) (* (* b b) (- 1.0 (* 3.0 a)))))) 1.0))