\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)}\begin{array}{l}
\mathbf{if}\;F \le -3.9533540946199464 \cdot 10^{117}:\\
\;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \frac{1}{\mathsf{fma}\left(1, {\left(\frac{1}{{-1}^{1}}\right)}^{1} \cdot \frac{\sin B}{{F}^{2}}, {\left(\frac{1}{{-1}^{1}}\right)}^{1} \cdot \sin B\right)}\\
\mathbf{elif}\;F \le 1633306.38700473751:\\
\;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \frac{\frac{F}{\sin B}}{{\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\left(\frac{1}{2}\right)}}\\
\mathbf{else}:\\
\;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \frac{1}{\mathsf{fma}\left(1 \cdot \sin B, {\left(\frac{1}{{F}^{2}}\right)}^{1}, \sin B\right)}\\
\end{array}double f(double F, double B, double x) {
double r44933 = x;
double r44934 = 1.0;
double r44935 = B;
double r44936 = tan(r44935);
double r44937 = r44934 / r44936;
double r44938 = r44933 * r44937;
double r44939 = -r44938;
double r44940 = F;
double r44941 = sin(r44935);
double r44942 = r44940 / r44941;
double r44943 = r44940 * r44940;
double r44944 = 2.0;
double r44945 = r44943 + r44944;
double r44946 = r44944 * r44933;
double r44947 = r44945 + r44946;
double r44948 = r44934 / r44944;
double r44949 = -r44948;
double r44950 = pow(r44947, r44949);
double r44951 = r44942 * r44950;
double r44952 = r44939 + r44951;
return r44952;
}
double f(double F, double B, double x) {
double r44953 = F;
double r44954 = -3.9533540946199464e+117;
bool r44955 = r44953 <= r44954;
double r44956 = x;
double r44957 = 1.0;
double r44958 = r44956 * r44957;
double r44959 = B;
double r44960 = tan(r44959);
double r44961 = r44958 / r44960;
double r44962 = -r44961;
double r44963 = 1.0;
double r44964 = -1.0;
double r44965 = pow(r44964, r44957);
double r44966 = r44963 / r44965;
double r44967 = pow(r44966, r44957);
double r44968 = sin(r44959);
double r44969 = 2.0;
double r44970 = pow(r44953, r44969);
double r44971 = r44968 / r44970;
double r44972 = r44967 * r44971;
double r44973 = r44967 * r44968;
double r44974 = fma(r44957, r44972, r44973);
double r44975 = r44963 / r44974;
double r44976 = r44962 + r44975;
double r44977 = 1633306.3870047375;
bool r44978 = r44953 <= r44977;
double r44979 = r44953 / r44968;
double r44980 = r44953 * r44953;
double r44981 = 2.0;
double r44982 = r44980 + r44981;
double r44983 = r44981 * r44956;
double r44984 = r44982 + r44983;
double r44985 = r44957 / r44981;
double r44986 = pow(r44984, r44985);
double r44987 = r44979 / r44986;
double r44988 = r44962 + r44987;
double r44989 = r44957 * r44968;
double r44990 = pow(r44953, r44981);
double r44991 = r44963 / r44990;
double r44992 = pow(r44991, r44957);
double r44993 = fma(r44989, r44992, r44968);
double r44994 = r44963 / r44993;
double r44995 = r44962 + r44994;
double r44996 = r44978 ? r44988 : r44995;
double r44997 = r44955 ? r44976 : r44996;
return r44997;
}



Bits error versus F



Bits error versus B



Bits error versus x
if F < -3.9533540946199464e+117Initial program 36.4
rmApplied associate-*l/29.9
rmApplied associate-*r/29.9
rmApplied clear-num29.9
Taylor expanded around -inf 0.1
Simplified0.1
if -3.9533540946199464e+117 < F < 1633306.3870047375Initial program 1.2
rmApplied associate-*l/0.4
rmApplied associate-*r/0.3
rmApplied clear-num0.3
rmApplied pow-neg0.3
Applied un-div-inv0.3
Applied associate-/r/1.0
Applied associate-/r*1.1
Simplified1.1
if 1633306.3870047375 < F Initial program 25.4
rmApplied associate-*l/20.0
rmApplied associate-*r/19.9
rmApplied clear-num20.0
Taylor expanded around inf 0.2
Simplified0.2
Final simplification0.7
herbie shell --seed 2020036 +o rules:numerics
(FPCore (F B x)
:name "VandenBroeck and Keller, Equation (23)"
:precision binary64
(+ (- (* x (/ 1 (tan B)))) (* (/ F (sin B)) (pow (+ (+ (* F F) 2) (* 2 x)) (- (/ 1 2))))))