\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(3 + a\right)\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(3 + a\right)\right)\right) - 1double f(double a, double b) {
double r203127 = a;
double r203128 = r203127 * r203127;
double r203129 = b;
double r203130 = r203129 * r203129;
double r203131 = r203128 + r203130;
double r203132 = 2.0;
double r203133 = pow(r203131, r203132);
double r203134 = 4.0;
double r203135 = 1.0;
double r203136 = r203135 - r203127;
double r203137 = r203128 * r203136;
double r203138 = 3.0;
double r203139 = r203138 + r203127;
double r203140 = r203130 * r203139;
double r203141 = r203137 + r203140;
double r203142 = r203134 * r203141;
double r203143 = r203133 + r203142;
double r203144 = r203143 - r203135;
return r203144;
}
double f(double a, double b) {
double r203145 = a;
double r203146 = r203145 * r203145;
double r203147 = b;
double r203148 = r203147 * r203147;
double r203149 = r203146 + r203148;
double r203150 = 2.0;
double r203151 = pow(r203149, r203150);
double r203152 = 4.0;
double r203153 = 1.0;
double r203154 = r203153 - r203145;
double r203155 = r203146 * r203154;
double r203156 = 3.0;
double r203157 = r203156 + r203145;
double r203158 = r203148 * r203157;
double r203159 = r203155 + r203158;
double r203160 = r203152 * r203159;
double r203161 = r203151 + r203160;
double r203162 = r203161 - r203153;
return r203162;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2019209 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))