\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.391185637000769857389211381756035009184 \cdot 10^{143}:\\
\;\;\;\;\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 46343.85507146434974856674671173095703125:\\
\;\;\;\;\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) + \left(\frac{1}{\sin B} - 1 \cdot \frac{1}{\sin B \cdot {F}^{2}}\right)\\
\end{array}double f(double F, double B, double x) {
double r37992 = x;
double r37993 = 1.0;
double r37994 = B;
double r37995 = tan(r37994);
double r37996 = r37993 / r37995;
double r37997 = r37992 * r37996;
double r37998 = -r37997;
double r37999 = F;
double r38000 = sin(r37994);
double r38001 = r37999 / r38000;
double r38002 = r37999 * r37999;
double r38003 = 2.0;
double r38004 = r38002 + r38003;
double r38005 = r38003 * r37992;
double r38006 = r38004 + r38005;
double r38007 = r37993 / r38003;
double r38008 = -r38007;
double r38009 = pow(r38006, r38008);
double r38010 = r38001 * r38009;
double r38011 = r37998 + r38010;
return r38011;
}
double f(double F, double B, double x) {
double r38012 = F;
double r38013 = -3.39118563700077e+143;
bool r38014 = r38012 <= r38013;
double r38015 = x;
double r38016 = 1.0;
double r38017 = r38015 * r38016;
double r38018 = B;
double r38019 = tan(r38018);
double r38020 = r38017 / r38019;
double r38021 = -r38020;
double r38022 = 1.0;
double r38023 = sin(r38018);
double r38024 = 2.0;
double r38025 = pow(r38012, r38024);
double r38026 = r38023 * r38025;
double r38027 = r38022 / r38026;
double r38028 = r38016 * r38027;
double r38029 = r38022 / r38023;
double r38030 = r38028 - r38029;
double r38031 = r38021 + r38030;
double r38032 = 46343.85507146435;
bool r38033 = r38012 <= r38032;
double r38034 = r38012 / r38023;
double r38035 = r38012 * r38012;
double r38036 = 2.0;
double r38037 = r38035 + r38036;
double r38038 = r38036 * r38015;
double r38039 = r38037 + r38038;
double r38040 = r38016 / r38036;
double r38041 = pow(r38039, r38040);
double r38042 = r38034 / r38041;
double r38043 = r38021 + r38042;
double r38044 = r38029 - r38028;
double r38045 = r38021 + r38044;
double r38046 = r38033 ? r38043 : r38045;
double r38047 = r38014 ? r38031 : r38046;
return r38047;
}



Bits error versus F



Bits error versus B



Bits error versus x
Results
if F < -3.39118563700077e+143Initial program 39.6
rmApplied associate-*r/39.5
Taylor expanded around -inf 0.1
if -3.39118563700077e+143 < F < 46343.85507146435Initial program 1.6
rmApplied associate-*r/1.5
rmApplied pow-neg1.6
Applied un-div-inv1.5
if 46343.85507146435 < F Initial program 23.9
rmApplied associate-*r/23.9
Taylor expanded around inf 0.2
Final simplification1.0
herbie shell --seed 2019352
(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))))))