\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(\mathsf{fma}\left(b \cdot b, b \cdot b, \mathsf{fma}\left(2, \left(b \cdot b\right) \cdot \left(a \cdot a\right), {a}^{4}\right)\right) + 4 \cdot \left(\left(1 - a \cdot 3\right) \cdot \left(b \cdot b\right) + \left(1 + a\right) \cdot \left(a \cdot a\right)\right)\right) - 1double f(double a, double b) {
double r3532113 = a;
double r3532114 = r3532113 * r3532113;
double r3532115 = b;
double r3532116 = r3532115 * r3532115;
double r3532117 = r3532114 + r3532116;
double r3532118 = 2.0;
double r3532119 = pow(r3532117, r3532118);
double r3532120 = 4.0;
double r3532121 = 1.0;
double r3532122 = r3532121 + r3532113;
double r3532123 = r3532114 * r3532122;
double r3532124 = 3.0;
double r3532125 = r3532124 * r3532113;
double r3532126 = r3532121 - r3532125;
double r3532127 = r3532116 * r3532126;
double r3532128 = r3532123 + r3532127;
double r3532129 = r3532120 * r3532128;
double r3532130 = r3532119 + r3532129;
double r3532131 = r3532130 - r3532121;
return r3532131;
}
double f(double a, double b) {
double r3532132 = b;
double r3532133 = r3532132 * r3532132;
double r3532134 = 2.0;
double r3532135 = a;
double r3532136 = r3532135 * r3532135;
double r3532137 = r3532133 * r3532136;
double r3532138 = 4.0;
double r3532139 = pow(r3532135, r3532138);
double r3532140 = fma(r3532134, r3532137, r3532139);
double r3532141 = fma(r3532133, r3532133, r3532140);
double r3532142 = 1.0;
double r3532143 = 3.0;
double r3532144 = r3532135 * r3532143;
double r3532145 = r3532142 - r3532144;
double r3532146 = r3532145 * r3532133;
double r3532147 = r3532142 + r3532135;
double r3532148 = r3532147 * r3532136;
double r3532149 = r3532146 + r3532148;
double r3532150 = r3532138 * r3532149;
double r3532151 = r3532141 + r3532150;
double r3532152 = r3532151 - r3532142;
return r3532152;
}



Bits error versus a



Bits error versus b
Initial program 0.2
Taylor expanded around 0 0.0
Simplified0.2
rmApplied pow20.2
Applied pow20.2
Applied pow-prod-up0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019153 +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))