\left(-x \cdot \frac{1}{\tan B}\right) + \frac{F}{\sin B} \cdot {\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\left(-\frac{1}{2}\right)}\left(\frac{1}{{\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\left(\frac{1}{2}\right)}} \cdot F\right) \cdot \frac{1}{\sin B} - \cos B \cdot \frac{x}{\sin B}double f(double F, double B, double x) {
double r1456159 = x;
double r1456160 = 1.0;
double r1456161 = B;
double r1456162 = tan(r1456161);
double r1456163 = r1456160 / r1456162;
double r1456164 = r1456159 * r1456163;
double r1456165 = -r1456164;
double r1456166 = F;
double r1456167 = sin(r1456161);
double r1456168 = r1456166 / r1456167;
double r1456169 = r1456166 * r1456166;
double r1456170 = 2.0;
double r1456171 = r1456169 + r1456170;
double r1456172 = r1456170 * r1456159;
double r1456173 = r1456171 + r1456172;
double r1456174 = r1456160 / r1456170;
double r1456175 = -r1456174;
double r1456176 = pow(r1456173, r1456175);
double r1456177 = r1456168 * r1456176;
double r1456178 = r1456165 + r1456177;
return r1456178;
}
double f(double F, double B, double x) {
double r1456179 = 1.0;
double r1456180 = 2.0;
double r1456181 = x;
double r1456182 = F;
double r1456183 = fma(r1456182, r1456182, r1456180);
double r1456184 = fma(r1456180, r1456181, r1456183);
double r1456185 = r1456179 / r1456180;
double r1456186 = pow(r1456184, r1456185);
double r1456187 = r1456179 / r1456186;
double r1456188 = r1456187 * r1456182;
double r1456189 = B;
double r1456190 = sin(r1456189);
double r1456191 = r1456179 / r1456190;
double r1456192 = r1456188 * r1456191;
double r1456193 = cos(r1456189);
double r1456194 = r1456181 / r1456190;
double r1456195 = r1456193 * r1456194;
double r1456196 = r1456192 - r1456195;
return r1456196;
}



Bits error versus F



Bits error versus B



Bits error versus x
Initial program 13.2
Simplified12.8
rmApplied div-inv12.8
Applied *-un-lft-identity12.8
Applied unpow-prod-down12.8
Applied times-frac10.3
Simplified10.3
Simplified10.3
rmApplied pow-neg10.3
rmApplied tan-quot10.4
Applied associate-/r/10.4
Final simplification10.4
herbie shell --seed 2019134 +o rules:numerics
(FPCore (F B x)
:name "VandenBroeck and Keller, Equation (23)"
(+ (- (* x (/ 1 (tan B)))) (* (/ F (sin B)) (pow (+ (+ (* F F) 2) (* 2 x)) (- (/ 1 2))))))