\tan \left(x + \varepsilon\right) - \tan x
\left(\left(\frac{\sin x}{\cos x} \cdot \frac{\sin x}{\cos x}\right) \cdot \frac{\frac{\sin \varepsilon}{\cos \varepsilon}}{1 - \left(\frac{\sin x}{\cos x} \cdot \frac{\sin \varepsilon}{\cos \varepsilon}\right) \cdot \left(\frac{\sin x}{\cos x} \cdot \frac{\sin \varepsilon}{\cos \varepsilon}\right)} + \left(\frac{\frac{\sin \varepsilon}{\cos \varepsilon}}{1 - \left(\frac{\sin x}{\cos x} \cdot \frac{\sin \varepsilon}{\cos \varepsilon}\right) \cdot \left(\frac{\sin x}{\cos x} \cdot \frac{\sin \varepsilon}{\cos \varepsilon}\right)} \cdot \frac{\sin \varepsilon}{\cos \varepsilon}\right) \cdot \frac{\sin x}{\cos x}\right) + \left(\left(\frac{\frac{\sin x}{\cos x}}{1 - \left(\frac{\sin x}{\cos x} \cdot \frac{\sin \varepsilon}{\cos \varepsilon}\right) \cdot \left(\frac{\sin x}{\cos x} \cdot \frac{\sin \varepsilon}{\cos \varepsilon}\right)} - \frac{\sin x}{\cos x}\right) + \frac{\frac{\sin \varepsilon}{\cos \varepsilon}}{1 - \left(\frac{\sin x}{\cos x} \cdot \frac{\sin \varepsilon}{\cos \varepsilon}\right) \cdot \left(\frac{\sin x}{\cos x} \cdot \frac{\sin \varepsilon}{\cos \varepsilon}\right)}\right)double f(double x, double eps) {
double r26764683 = x;
double r26764684 = eps;
double r26764685 = r26764683 + r26764684;
double r26764686 = tan(r26764685);
double r26764687 = tan(r26764683);
double r26764688 = r26764686 - r26764687;
return r26764688;
}
double f(double x, double eps) {
double r26764689 = x;
double r26764690 = sin(r26764689);
double r26764691 = cos(r26764689);
double r26764692 = r26764690 / r26764691;
double r26764693 = r26764692 * r26764692;
double r26764694 = eps;
double r26764695 = sin(r26764694);
double r26764696 = cos(r26764694);
double r26764697 = r26764695 / r26764696;
double r26764698 = 1.0;
double r26764699 = r26764692 * r26764697;
double r26764700 = r26764699 * r26764699;
double r26764701 = r26764698 - r26764700;
double r26764702 = r26764697 / r26764701;
double r26764703 = r26764693 * r26764702;
double r26764704 = r26764702 * r26764697;
double r26764705 = r26764704 * r26764692;
double r26764706 = r26764703 + r26764705;
double r26764707 = r26764692 / r26764701;
double r26764708 = r26764707 - r26764692;
double r26764709 = r26764708 + r26764702;
double r26764710 = r26764706 + r26764709;
return r26764710;
}




Bits error versus x




Bits error versus eps
Results
| Original | 37.0 |
|---|---|
| Target | 15.5 |
| Herbie | 0.6 |
Initial program 37.0
rmApplied tan-sum21.5
rmApplied flip--21.5
Applied associate-/r/21.5
Taylor expanded around -inf 21.7
Simplified0.6
Final simplification0.6
herbie shell --seed 2019124
(FPCore (x eps)
:name "2tan (problem 3.3.2)"
:herbie-target
(/ (sin eps) (* (cos x) (cos (+ x eps))))
(- (tan (+ x eps)) (tan x)))