\left(-x \cdot \frac{1}{\tan B}\right) + \frac{1}{\sin B}\mathsf{fma}\left(-x, 1 \cdot \frac{\cos B}{\sin B}, \frac{1}{\sin B}\right)double f(double B, double x) {
double r64 = x;
double r65 = 1.0;
double r66 = B;
double r67 = tan(r66);
double r68 = r65 / r67;
double r69 = r64 * r68;
double r70 = -r69;
double r71 = sin(r66);
double r72 = r65 / r71;
double r73 = r70 + r72;
return r73;
}
double f(double B, double x) {
double r74 = x;
double r75 = -r74;
double r76 = 1.0;
double r77 = B;
double r78 = cos(r77);
double r79 = sin(r77);
double r80 = r78 / r79;
double r81 = r76 * r80;
double r82 = r76 / r79;
double r83 = fma(r75, r81, r82);
return r83;
}



Bits error versus B



Bits error versus x
Initial program 0.2
Simplified0.2
Taylor expanded around inf 0.2
Final simplification0.2
herbie shell --seed 2020025 +o rules:numerics
(FPCore (B x)
:name "VandenBroeck and Keller, Equation (24)"
:precision binary64
(+ (- (* x (/ 1 (tan B)))) (/ 1 (sin B))))