\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\mathsf{fma}\left(\mathsf{fma}\left(a \cdot a, 1 - a, \left(b \cdot b\right) \cdot \left(3 + a\right)\right), 4, {\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{2}\right) - 1double f(double a, double b) {
double r206147 = a;
double r206148 = r206147 * r206147;
double r206149 = b;
double r206150 = r206149 * r206149;
double r206151 = r206148 + r206150;
double r206152 = 2.0;
double r206153 = pow(r206151, r206152);
double r206154 = 4.0;
double r206155 = 1.0;
double r206156 = r206155 - r206147;
double r206157 = r206148 * r206156;
double r206158 = 3.0;
double r206159 = r206158 + r206147;
double r206160 = r206150 * r206159;
double r206161 = r206157 + r206160;
double r206162 = r206154 * r206161;
double r206163 = r206153 + r206162;
double r206164 = r206163 - r206155;
return r206164;
}
double f(double a, double b) {
double r206165 = a;
double r206166 = r206165 * r206165;
double r206167 = 1.0;
double r206168 = r206167 - r206165;
double r206169 = b;
double r206170 = r206169 * r206169;
double r206171 = 3.0;
double r206172 = r206171 + r206165;
double r206173 = r206170 * r206172;
double r206174 = fma(r206166, r206168, r206173);
double r206175 = 4.0;
double r206176 = fma(r206165, r206165, r206170);
double r206177 = 2.0;
double r206178 = pow(r206176, r206177);
double r206179 = fma(r206174, r206175, r206178);
double r206180 = r206179 - r206167;
return r206180;
}



Bits error versus a



Bits error versus b
Initial program 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019323 +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))