\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 -5.7648000314577582 \cdot 10^{21}:\\
\;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \left(\frac{\frac{1}{\sin B}}{{F}^{2}} - \frac{1}{\sin B}\right)\\
\mathbf{elif}\;F \le 21.3414842217350404:\\
\;\;\;\;\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) + \left(\frac{1}{\sin B} - \frac{\frac{1}{\sin B}}{{F}^{2}}\right)\\
\end{array}double f(double F, double B, double x) {
double r39156 = x;
double r39157 = 1.0;
double r39158 = B;
double r39159 = tan(r39158);
double r39160 = r39157 / r39159;
double r39161 = r39156 * r39160;
double r39162 = -r39161;
double r39163 = F;
double r39164 = sin(r39158);
double r39165 = r39163 / r39164;
double r39166 = r39163 * r39163;
double r39167 = 2.0;
double r39168 = r39166 + r39167;
double r39169 = r39167 * r39156;
double r39170 = r39168 + r39169;
double r39171 = r39157 / r39167;
double r39172 = -r39171;
double r39173 = pow(r39170, r39172);
double r39174 = r39165 * r39173;
double r39175 = r39162 + r39174;
return r39175;
}
double f(double F, double B, double x) {
double r39176 = F;
double r39177 = -5.764800031457758e+21;
bool r39178 = r39176 <= r39177;
double r39179 = x;
double r39180 = 1.0;
double r39181 = r39179 * r39180;
double r39182 = B;
double r39183 = tan(r39182);
double r39184 = r39181 / r39183;
double r39185 = -r39184;
double r39186 = sin(r39182);
double r39187 = r39180 / r39186;
double r39188 = 2.0;
double r39189 = pow(r39176, r39188);
double r39190 = r39187 / r39189;
double r39191 = 1.0;
double r39192 = r39191 / r39186;
double r39193 = r39190 - r39192;
double r39194 = r39185 + r39193;
double r39195 = 21.34148422173504;
bool r39196 = r39176 <= r39195;
double r39197 = cos(r39182);
double r39198 = r39179 * r39197;
double r39199 = r39198 / r39186;
double r39200 = r39180 * r39199;
double r39201 = -r39200;
double r39202 = r39176 / r39186;
double r39203 = r39176 * r39176;
double r39204 = 2.0;
double r39205 = r39203 + r39204;
double r39206 = r39204 * r39179;
double r39207 = r39205 + r39206;
double r39208 = r39180 / r39204;
double r39209 = -r39208;
double r39210 = pow(r39207, r39209);
double r39211 = r39202 * r39210;
double r39212 = r39201 + r39211;
double r39213 = r39192 - r39190;
double r39214 = r39185 + r39213;
double r39215 = r39196 ? r39212 : r39214;
double r39216 = r39178 ? r39194 : r39215;
return r39216;
}



Bits error versus F



Bits error versus B



Bits error versus x
Results
if F < -5.764800031457758e+21Initial program 26.4
rmApplied pow-neg26.4
Applied frac-times20.8
Simplified20.8
rmApplied associate-*r/20.7
rmApplied *-un-lft-identity20.7
Applied times-frac20.7
Taylor expanded around -inf 0.2
Simplified0.2
if -5.764800031457758e+21 < F < 21.34148422173504Initial program 0.4
Taylor expanded around inf 0.4
if 21.34148422173504 < F Initial program 24.6
rmApplied pow-neg24.6
Applied frac-times18.8
Simplified18.8
rmApplied associate-*r/18.8
rmApplied *-un-lft-identity18.8
Applied times-frac18.7
Taylor expanded around inf 0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2020062 +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))))))