\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 -6.304734718037909 \cdot 10^{+78}:\\
\;\;\;\;\mathsf{expm1}\left(\left(\left(\sqrt{\frac{1}{2}} - x \cdot \sqrt{\frac{1}{8}}\right) \cdot F - \left(F \cdot F\right) \cdot \frac{1}{4}\right)\right) \cdot \frac{1}{\sin B} - \frac{x}{\tan B}\\
\mathbf{else}:\\
\;\;\;\;\left(F \cdot {\left(\mathsf{fma}\left(2, x, \left(\mathsf{fma}\left(F, F, 2\right)\right)\right)\right)}^{\frac{-1}{2}}\right) \cdot \frac{1}{\sin B} - \frac{x}{\sin B} \cdot \cos B\\
\end{array}double f(double F, double B, double x) {
double r1418683 = x;
double r1418684 = 1.0;
double r1418685 = B;
double r1418686 = tan(r1418685);
double r1418687 = r1418684 / r1418686;
double r1418688 = r1418683 * r1418687;
double r1418689 = -r1418688;
double r1418690 = F;
double r1418691 = sin(r1418685);
double r1418692 = r1418690 / r1418691;
double r1418693 = r1418690 * r1418690;
double r1418694 = 2.0;
double r1418695 = r1418693 + r1418694;
double r1418696 = r1418694 * r1418683;
double r1418697 = r1418695 + r1418696;
double r1418698 = r1418684 / r1418694;
double r1418699 = -r1418698;
double r1418700 = pow(r1418697, r1418699);
double r1418701 = r1418692 * r1418700;
double r1418702 = r1418689 + r1418701;
return r1418702;
}
double f(double F, double B, double x) {
double r1418703 = F;
double r1418704 = -6.304734718037909e+78;
bool r1418705 = r1418703 <= r1418704;
double r1418706 = 0.5;
double r1418707 = sqrt(r1418706);
double r1418708 = x;
double r1418709 = 0.125;
double r1418710 = sqrt(r1418709);
double r1418711 = r1418708 * r1418710;
double r1418712 = r1418707 - r1418711;
double r1418713 = r1418712 * r1418703;
double r1418714 = r1418703 * r1418703;
double r1418715 = 0.25;
double r1418716 = r1418714 * r1418715;
double r1418717 = r1418713 - r1418716;
double r1418718 = expm1(r1418717);
double r1418719 = 1.0;
double r1418720 = B;
double r1418721 = sin(r1418720);
double r1418722 = r1418719 / r1418721;
double r1418723 = r1418718 * r1418722;
double r1418724 = tan(r1418720);
double r1418725 = r1418708 / r1418724;
double r1418726 = r1418723 - r1418725;
double r1418727 = 2.0;
double r1418728 = fma(r1418703, r1418703, r1418727);
double r1418729 = fma(r1418727, r1418708, r1418728);
double r1418730 = -0.5;
double r1418731 = pow(r1418729, r1418730);
double r1418732 = r1418703 * r1418731;
double r1418733 = r1418732 * r1418722;
double r1418734 = r1418708 / r1418721;
double r1418735 = cos(r1418720);
double r1418736 = r1418734 * r1418735;
double r1418737 = r1418733 - r1418736;
double r1418738 = r1418705 ? r1418726 : r1418737;
return r1418738;
}



Bits error versus F



Bits error versus B



Bits error versus x
if F < -6.304734718037909e+78Initial program 30.1
Simplified30.1
rmApplied div-inv30.1
Applied associate-*r*24.6
rmApplied expm1-log1p-u24.8
Taylor expanded around 0 9.6
Simplified9.6
if -6.304734718037909e+78 < F Initial program 9.2
Simplified9.1
rmApplied div-inv9.2
Applied associate-*r*7.1
rmApplied tan-quot7.2
Applied associate-/r/7.2
Final simplification7.7
herbie shell --seed 2019133 +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))))))