\frac{1 - \tan x \cdot \tan x}{1 + \tan x \cdot \tan x}\frac{\frac{1 - \left(\tan x \cdot \tan x\right) \cdot \left(\left(\tan x \cdot \tan x\right) \cdot \left(\tan x \cdot \tan x\right)\right)}{1 + \mathsf{fma}\left(\tan x \cdot \tan x, \tan x \cdot \tan x, \tan x \cdot \tan x\right)}}{\tan x \cdot \tan x + 1}double f(double x) {
double r643406 = 1.0;
double r643407 = x;
double r643408 = tan(r643407);
double r643409 = r643408 * r643408;
double r643410 = r643406 - r643409;
double r643411 = r643406 + r643409;
double r643412 = r643410 / r643411;
return r643412;
}
double f(double x) {
double r643413 = 1.0;
double r643414 = x;
double r643415 = tan(r643414);
double r643416 = r643415 * r643415;
double r643417 = r643416 * r643416;
double r643418 = r643416 * r643417;
double r643419 = r643413 - r643418;
double r643420 = fma(r643416, r643416, r643416);
double r643421 = r643413 + r643420;
double r643422 = r643419 / r643421;
double r643423 = r643416 + r643413;
double r643424 = r643422 / r643423;
return r643424;
}



Bits error versus x
Initial program 0.3
rmApplied flip3--0.4
Simplified0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019164 +o rules:numerics
(FPCore (x)
:name "Trigonometry B"
(/ (- 1 (* (tan x) (tan x))) (+ 1 (* (tan x) (tan x)))))