\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)}\frac{{\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\frac{-1}{2}} \cdot F}{\sin B} - x \cdot \frac{1}{\tan B}double f(double F, double B, double x) {
double r2023138 = x;
double r2023139 = 1.0;
double r2023140 = B;
double r2023141 = tan(r2023140);
double r2023142 = r2023139 / r2023141;
double r2023143 = r2023138 * r2023142;
double r2023144 = -r2023143;
double r2023145 = F;
double r2023146 = sin(r2023140);
double r2023147 = r2023145 / r2023146;
double r2023148 = r2023145 * r2023145;
double r2023149 = 2.0;
double r2023150 = r2023148 + r2023149;
double r2023151 = r2023149 * r2023138;
double r2023152 = r2023150 + r2023151;
double r2023153 = r2023139 / r2023149;
double r2023154 = -r2023153;
double r2023155 = pow(r2023152, r2023154);
double r2023156 = r2023147 * r2023155;
double r2023157 = r2023144 + r2023156;
return r2023157;
}
double f(double F, double B, double x) {
double r2023158 = 2.0;
double r2023159 = x;
double r2023160 = F;
double r2023161 = fma(r2023160, r2023160, r2023158);
double r2023162 = fma(r2023158, r2023159, r2023161);
double r2023163 = -0.5;
double r2023164 = pow(r2023162, r2023163);
double r2023165 = r2023164 * r2023160;
double r2023166 = B;
double r2023167 = sin(r2023166);
double r2023168 = r2023165 / r2023167;
double r2023169 = 1.0;
double r2023170 = tan(r2023166);
double r2023171 = r2023169 / r2023170;
double r2023172 = r2023159 * r2023171;
double r2023173 = r2023168 - r2023172;
return r2023173;
}



Bits error versus F



Bits error versus B



Bits error versus x
Initial program 13.2
Simplified13.2
rmApplied associate-*r/10.4
rmApplied div-inv10.5
Final simplification10.5
herbie shell --seed 2019162 +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))))))