\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\mathsf{fma}\left(\mathsf{fma}\left(b \cdot b, 1 - 3 \cdot a, \mathsf{fma}\left(a \cdot a, a, a \cdot a\right)\right), 4, \mathsf{fma}\left(\left(a \cdot b\right) \cdot \left(a \cdot b\right), 2, {b}^{4} + {a}^{4}\right) - 1\right)double f(double a, double b) {
double r4264027 = a;
double r4264028 = r4264027 * r4264027;
double r4264029 = b;
double r4264030 = r4264029 * r4264029;
double r4264031 = r4264028 + r4264030;
double r4264032 = 2.0;
double r4264033 = pow(r4264031, r4264032);
double r4264034 = 4.0;
double r4264035 = 1.0;
double r4264036 = r4264035 + r4264027;
double r4264037 = r4264028 * r4264036;
double r4264038 = 3.0;
double r4264039 = r4264038 * r4264027;
double r4264040 = r4264035 - r4264039;
double r4264041 = r4264030 * r4264040;
double r4264042 = r4264037 + r4264041;
double r4264043 = r4264034 * r4264042;
double r4264044 = r4264033 + r4264043;
double r4264045 = r4264044 - r4264035;
return r4264045;
}
double f(double a, double b) {
double r4264046 = b;
double r4264047 = r4264046 * r4264046;
double r4264048 = 1.0;
double r4264049 = 3.0;
double r4264050 = a;
double r4264051 = r4264049 * r4264050;
double r4264052 = r4264048 - r4264051;
double r4264053 = r4264050 * r4264050;
double r4264054 = fma(r4264053, r4264050, r4264053);
double r4264055 = fma(r4264047, r4264052, r4264054);
double r4264056 = 4.0;
double r4264057 = r4264050 * r4264046;
double r4264058 = r4264057 * r4264057;
double r4264059 = 2.0;
double r4264060 = pow(r4264046, r4264056);
double r4264061 = pow(r4264050, r4264056);
double r4264062 = r4264060 + r4264061;
double r4264063 = fma(r4264058, r4264059, r4264062);
double r4264064 = r4264063 - r4264048;
double r4264065 = fma(r4264055, r4264056, r4264064);
return r4264065;
}



Bits error versus a



Bits error versus b
Initial program 0.2
Simplified0.2
Taylor expanded around -inf 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019134 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (+ 1 a)) (* (* b b) (- 1 (* 3 a)))))) 1))