\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)}\log_* (1 + \log_* (1 + (e^{(e^{{\left((x \cdot 2 + \left((F \cdot F + 2)_*\right))_*\right)}^{\frac{-1}{2}} \cdot F} - 1)^*} - 1)^*)) \cdot \frac{1}{\sin B} - \frac{x}{\tan B}double f(double F, double B, double x) {
double r7842818 = x;
double r7842819 = 1.0;
double r7842820 = B;
double r7842821 = tan(r7842820);
double r7842822 = r7842819 / r7842821;
double r7842823 = r7842818 * r7842822;
double r7842824 = -r7842823;
double r7842825 = F;
double r7842826 = sin(r7842820);
double r7842827 = r7842825 / r7842826;
double r7842828 = r7842825 * r7842825;
double r7842829 = 2.0;
double r7842830 = r7842828 + r7842829;
double r7842831 = r7842829 * r7842818;
double r7842832 = r7842830 + r7842831;
double r7842833 = r7842819 / r7842829;
double r7842834 = -r7842833;
double r7842835 = pow(r7842832, r7842834);
double r7842836 = r7842827 * r7842835;
double r7842837 = r7842824 + r7842836;
return r7842837;
}
double f(double F, double B, double x) {
double r7842838 = x;
double r7842839 = 2.0;
double r7842840 = F;
double r7842841 = fma(r7842840, r7842840, r7842839);
double r7842842 = fma(r7842838, r7842839, r7842841);
double r7842843 = -0.5;
double r7842844 = pow(r7842842, r7842843);
double r7842845 = r7842844 * r7842840;
double r7842846 = expm1(r7842845);
double r7842847 = expm1(r7842846);
double r7842848 = log1p(r7842847);
double r7842849 = log1p(r7842848);
double r7842850 = 1.0;
double r7842851 = B;
double r7842852 = sin(r7842851);
double r7842853 = r7842850 / r7842852;
double r7842854 = r7842849 * r7842853;
double r7842855 = tan(r7842851);
double r7842856 = r7842838 / r7842855;
double r7842857 = r7842854 - r7842856;
return r7842857;
}



Bits error versus F



Bits error versus B



Bits error versus x
Initial program 13.7
Simplified13.3
rmApplied div-inv13.3
Applied *-un-lft-identity13.3
Applied times-frac10.7
Simplified10.7
rmApplied log1p-expm1-u10.7
rmApplied log1p-expm1-u10.7
Final simplification10.7
herbie shell --seed 2019119 +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))))))