\frac{1 - \tan x \cdot \tan x}{1 + \tan x \cdot \tan x}\mathsf{expm1}\left(\log \left(e^{\mathsf{log1p}\left(\frac{\mathsf{fma}\left(-\tan x, \tan x, 1\right)}{\mathsf{fma}\left(\tan x, \tan x, 1\right)}\right)}\right)\right)double f(double x) {
double r23139 = 1.0;
double r23140 = x;
double r23141 = tan(r23140);
double r23142 = r23141 * r23141;
double r23143 = r23139 - r23142;
double r23144 = r23139 + r23142;
double r23145 = r23143 / r23144;
return r23145;
}
double f(double x) {
double r23146 = x;
double r23147 = tan(r23146);
double r23148 = -r23147;
double r23149 = 1.0;
double r23150 = fma(r23148, r23147, r23149);
double r23151 = fma(r23147, r23147, r23149);
double r23152 = r23150 / r23151;
double r23153 = log1p(r23152);
double r23154 = exp(r23153);
double r23155 = log(r23154);
double r23156 = expm1(r23155);
return r23156;
}



Bits error versus x
Initial program 0.3
Simplified0.3
rmApplied fma-udef0.3
rmApplied expm1-log1p-u0.3
Simplified0.3
rmApplied add-log-exp0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019194 +o rules:numerics
(FPCore (x)
:name "Trigonometry B"
(/ (- 1.0 (* (tan x) (tan x))) (+ 1.0 (* (tan x) (tan x)))))