\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 -8.2357196407830214 \cdot 10^{30}:\\
\;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \left(1 \cdot \frac{1}{\sin B \cdot {F}^{2}} - \frac{1}{\sin B}\right)\\
\mathbf{elif}\;F \le 519496060.91579181:\\
\;\;\;\;\left(-1 \cdot \frac{x \cdot \cos B}{\sin B}\right) + \frac{F}{\sin B} \cdot {\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{F \cdot \left(\frac{1}{F} - 1 \cdot \frac{1}{{F}^{3}}\right)}{\sin B}\\
\end{array}double f(double F, double B, double x) {
double r43950 = x;
double r43951 = 1.0;
double r43952 = B;
double r43953 = tan(r43952);
double r43954 = r43951 / r43953;
double r43955 = r43950 * r43954;
double r43956 = -r43955;
double r43957 = F;
double r43958 = sin(r43952);
double r43959 = r43957 / r43958;
double r43960 = r43957 * r43957;
double r43961 = 2.0;
double r43962 = r43960 + r43961;
double r43963 = r43961 * r43950;
double r43964 = r43962 + r43963;
double r43965 = r43951 / r43961;
double r43966 = -r43965;
double r43967 = pow(r43964, r43966);
double r43968 = r43959 * r43967;
double r43969 = r43956 + r43968;
return r43969;
}
double f(double F, double B, double x) {
double r43970 = F;
double r43971 = -8.235719640783021e+30;
bool r43972 = r43970 <= r43971;
double r43973 = x;
double r43974 = 1.0;
double r43975 = r43973 * r43974;
double r43976 = B;
double r43977 = tan(r43976);
double r43978 = r43975 / r43977;
double r43979 = -r43978;
double r43980 = 1.0;
double r43981 = sin(r43976);
double r43982 = 2.0;
double r43983 = pow(r43970, r43982);
double r43984 = r43981 * r43983;
double r43985 = r43980 / r43984;
double r43986 = r43974 * r43985;
double r43987 = r43980 / r43981;
double r43988 = r43986 - r43987;
double r43989 = r43979 + r43988;
double r43990 = 519496060.9157918;
bool r43991 = r43970 <= r43990;
double r43992 = cos(r43976);
double r43993 = r43973 * r43992;
double r43994 = r43993 / r43981;
double r43995 = r43974 * r43994;
double r43996 = -r43995;
double r43997 = r43970 / r43981;
double r43998 = r43970 * r43970;
double r43999 = 2.0;
double r44000 = r43998 + r43999;
double r44001 = r43999 * r43973;
double r44002 = r44000 + r44001;
double r44003 = r43974 / r43999;
double r44004 = -r44003;
double r44005 = pow(r44002, r44004);
double r44006 = r43997 * r44005;
double r44007 = r43996 + r44006;
double r44008 = r43980 / r43970;
double r44009 = 3.0;
double r44010 = pow(r43970, r44009);
double r44011 = r43980 / r44010;
double r44012 = r43974 * r44011;
double r44013 = r44008 - r44012;
double r44014 = r43970 * r44013;
double r44015 = r44014 / r43981;
double r44016 = r43979 + r44015;
double r44017 = r43991 ? r44007 : r44016;
double r44018 = r43972 ? r43989 : r44017;
return r44018;
}



Bits error versus F



Bits error versus B



Bits error versus x
Results
if F < -8.235719640783021e+30Initial program 26.7
rmApplied associate-*l/20.3
rmApplied associate-*r/20.2
Taylor expanded around -inf 0.1
if -8.235719640783021e+30 < F < 519496060.9157918Initial program 0.4
Taylor expanded around inf 0.3
if 519496060.9157918 < F Initial program 26.0
rmApplied associate-*l/19.9
rmApplied associate-*r/19.9
Taylor expanded around inf 0.2
Final simplification0.3
herbie shell --seed 2020035 +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))))))