\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 -99469.4573886484722606837749481201171875:\\
\;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \left(\frac{-1}{\sin B} + \frac{1}{\sin B \cdot {F}^{2}}\right)\\
\mathbf{elif}\;F \le 13711.08235068509384291246533393859863281:\\
\;\;\;\;\left(-\frac{x \cdot 1}{\sin B} \cdot \cos B\right) + \frac{F}{{\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\left(\frac{1}{2}\right)} \cdot \sin B}\\
\mathbf{else}:\\
\;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \left(\frac{1}{\sin B} - \frac{1}{\sin B \cdot {F}^{2}}\right)\\
\end{array}double f(double F, double B, double x) {
double r103523 = x;
double r103524 = 1.0;
double r103525 = B;
double r103526 = tan(r103525);
double r103527 = r103524 / r103526;
double r103528 = r103523 * r103527;
double r103529 = -r103528;
double r103530 = F;
double r103531 = sin(r103525);
double r103532 = r103530 / r103531;
double r103533 = r103530 * r103530;
double r103534 = 2.0;
double r103535 = r103533 + r103534;
double r103536 = r103534 * r103523;
double r103537 = r103535 + r103536;
double r103538 = r103524 / r103534;
double r103539 = -r103538;
double r103540 = pow(r103537, r103539);
double r103541 = r103532 * r103540;
double r103542 = r103529 + r103541;
return r103542;
}
double f(double F, double B, double x) {
double r103543 = F;
double r103544 = -99469.45738864847;
bool r103545 = r103543 <= r103544;
double r103546 = x;
double r103547 = 1.0;
double r103548 = r103546 * r103547;
double r103549 = B;
double r103550 = tan(r103549);
double r103551 = r103548 / r103550;
double r103552 = -r103551;
double r103553 = -1.0;
double r103554 = sin(r103549);
double r103555 = r103553 / r103554;
double r103556 = 2.0;
double r103557 = pow(r103543, r103556);
double r103558 = r103554 * r103557;
double r103559 = r103547 / r103558;
double r103560 = r103555 + r103559;
double r103561 = r103552 + r103560;
double r103562 = 13711.082350685094;
bool r103563 = r103543 <= r103562;
double r103564 = r103548 / r103554;
double r103565 = cos(r103549);
double r103566 = r103564 * r103565;
double r103567 = -r103566;
double r103568 = 2.0;
double r103569 = fma(r103543, r103543, r103568);
double r103570 = fma(r103568, r103546, r103569);
double r103571 = r103547 / r103568;
double r103572 = pow(r103570, r103571);
double r103573 = r103572 * r103554;
double r103574 = r103543 / r103573;
double r103575 = r103567 + r103574;
double r103576 = 1.0;
double r103577 = r103576 / r103554;
double r103578 = r103577 - r103559;
double r103579 = r103552 + r103578;
double r103580 = r103563 ? r103575 : r103579;
double r103581 = r103545 ? r103561 : r103580;
return r103581;
}



Bits error versus F



Bits error versus B



Bits error versus x
if F < -99469.45738864847Initial program 24.2
rmApplied pow-neg24.2
Applied frac-times18.5
Simplified18.5
Simplified18.5
rmApplied associate-*r/18.5
Taylor expanded around -inf 0.2
Simplified0.2
if -99469.45738864847 < F < 13711.082350685094Initial program 0.4
rmApplied pow-neg0.4
Applied frac-times0.4
Simplified0.4
Simplified0.4
rmApplied associate-*r/0.3
rmApplied tan-quot0.3
Applied associate-/r/0.3
if 13711.082350685094 < F Initial program 25.3
rmApplied pow-neg25.3
Applied frac-times19.8
Simplified19.8
Simplified19.8
rmApplied associate-*r/19.7
Taylor expanded around inf 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019326 +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))))))