\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 -932124839359996544:\\
\;\;\;\;\left(-1 + \frac{1}{F \cdot F}\right) \cdot \frac{1}{\sin B} - \frac{1 \cdot x}{\sin B} \cdot \cos B\\
\mathbf{elif}\;F \le 60622479.674600124359130859375:\\
\;\;\;\;{\left(F \cdot F + \left(2 \cdot x + 2\right)\right)}^{\left(-\frac{1}{2}\right)} \cdot \frac{F}{\sin B} - \frac{1 \cdot x}{\tan B}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{1}{\sin B} - \frac{\frac{1}{F \cdot F}}{\sin B}\right) - \frac{1 \cdot x}{\tan B}\\
\end{array}double f(double F, double B, double x) {
double r61739 = x;
double r61740 = 1.0;
double r61741 = B;
double r61742 = tan(r61741);
double r61743 = r61740 / r61742;
double r61744 = r61739 * r61743;
double r61745 = -r61744;
double r61746 = F;
double r61747 = sin(r61741);
double r61748 = r61746 / r61747;
double r61749 = r61746 * r61746;
double r61750 = 2.0;
double r61751 = r61749 + r61750;
double r61752 = r61750 * r61739;
double r61753 = r61751 + r61752;
double r61754 = r61740 / r61750;
double r61755 = -r61754;
double r61756 = pow(r61753, r61755);
double r61757 = r61748 * r61756;
double r61758 = r61745 + r61757;
return r61758;
}
double f(double F, double B, double x) {
double r61759 = F;
double r61760 = -9.321248393599965e+17;
bool r61761 = r61759 <= r61760;
double r61762 = -1.0;
double r61763 = 1.0;
double r61764 = r61759 * r61759;
double r61765 = r61763 / r61764;
double r61766 = r61762 + r61765;
double r61767 = 1.0;
double r61768 = B;
double r61769 = sin(r61768);
double r61770 = r61767 / r61769;
double r61771 = r61766 * r61770;
double r61772 = x;
double r61773 = r61763 * r61772;
double r61774 = r61773 / r61769;
double r61775 = cos(r61768);
double r61776 = r61774 * r61775;
double r61777 = r61771 - r61776;
double r61778 = 60622479.674600124;
bool r61779 = r61759 <= r61778;
double r61780 = 2.0;
double r61781 = r61780 * r61772;
double r61782 = r61781 + r61780;
double r61783 = r61764 + r61782;
double r61784 = r61763 / r61780;
double r61785 = -r61784;
double r61786 = pow(r61783, r61785);
double r61787 = r61759 / r61769;
double r61788 = r61786 * r61787;
double r61789 = tan(r61768);
double r61790 = r61773 / r61789;
double r61791 = r61788 - r61790;
double r61792 = r61765 / r61769;
double r61793 = r61770 - r61792;
double r61794 = r61793 - r61790;
double r61795 = r61779 ? r61791 : r61794;
double r61796 = r61761 ? r61777 : r61795;
return r61796;
}



Bits error versus F



Bits error versus B



Bits error versus x
Results
if F < -9.321248393599965e+17Initial program 25.8
Simplified20.3
rmApplied pow-neg20.2
Applied associate-/r/20.2
Applied *-un-lft-identity20.2
Applied times-frac20.2
Simplified20.2
Simplified20.2
rmApplied tan-quot20.2
Applied associate-/r/20.2
Simplified20.2
Taylor expanded around -inf 0.2
Simplified0.2
if -9.321248393599965e+17 < F < 60622479.674600124Initial program 0.4
Simplified0.3
rmApplied div-inv0.3
Applied *-un-lft-identity0.3
Applied times-frac0.3
Simplified0.3
rmApplied associate-*r*0.3
Simplified0.3
if 60622479.674600124 < F Initial program 24.5
Simplified18.4
rmApplied pow-neg18.4
Applied associate-/r/18.4
Applied *-un-lft-identity18.4
Applied times-frac18.4
Simplified18.4
Simplified18.4
Taylor expanded around inf 0.1
Simplified0.1
Final simplification0.2
herbie shell --seed 2019174
(FPCore (F B x)
:name "VandenBroeck and Keller, Equation (23)"
(+ (- (* x (/ 1.0 (tan B)))) (* (/ F (sin B)) (pow (+ (+ (* F F) 2.0) (* 2.0 x)) (- (/ 1.0 2.0))))))