\tan \left(x + \varepsilon\right) - \tan x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -9.72020893704794 \cdot 10^{-87}:\\
\;\;\;\;\left(\left(\frac{\sin \varepsilon \cdot \sin \varepsilon}{\left(1 - \frac{\left(\sin x \cdot \left(\sin x \cdot \sin x\right)\right) \cdot \left(\sin \varepsilon \cdot \left(\sin \varepsilon \cdot \sin \varepsilon\right)\right)}{\left(\left(\cos x \cdot \cos x\right) \cdot \cos x\right) \cdot \left(\cos \varepsilon \cdot \left(\cos \varepsilon \cdot \cos \varepsilon\right)\right)}\right) \cdot \left(\cos \varepsilon \cdot \cos \varepsilon\right)} \cdot \frac{\sin x \cdot \left(\sin x \cdot \sin x\right)}{\left(\cos x \cdot \cos x\right) \cdot \cos x} + \left(\left(\frac{\frac{\sin x}{\cos x}}{1 - \frac{\left(\sin x \cdot \left(\sin x \cdot \sin x\right)\right) \cdot \left(\sin \varepsilon \cdot \left(\sin \varepsilon \cdot \sin \varepsilon\right)\right)}{\left(\left(\cos x \cdot \cos x\right) \cdot \cos x\right) \cdot \left(\cos \varepsilon \cdot \left(\cos \varepsilon \cdot \cos \varepsilon\right)\right)}} + \left(\frac{\sin x \cdot \sin x}{\frac{\left(\cos x \cdot \cos x\right) \cdot \left(\left(\cos \varepsilon \cdot \left(\cos \varepsilon \cdot \cos \varepsilon\right)\right) \cdot \left(1 - \frac{\left(\sin x \cdot \left(\sin x \cdot \sin x\right)\right) \cdot \left(\sin \varepsilon \cdot \left(\sin \varepsilon \cdot \sin \varepsilon\right)\right)}{\left(\left(\cos x \cdot \cos x\right) \cdot \cos x\right) \cdot \left(\cos \varepsilon \cdot \left(\cos \varepsilon \cdot \cos \varepsilon\right)\right)}\right)\right)}{\sin \varepsilon \cdot \left(\sin \varepsilon \cdot \sin \varepsilon\right)}} + \frac{\sin \varepsilon}{\cos \varepsilon \cdot \left(1 - \frac{\left(\sin x \cdot \left(\sin x \cdot \sin x\right)\right) \cdot \left(\sin \varepsilon \cdot \left(\sin \varepsilon \cdot \sin \varepsilon\right)\right)}{\left(\left(\cos x \cdot \cos x\right) \cdot \cos x\right) \cdot \left(\cos \varepsilon \cdot \left(\cos \varepsilon \cdot \cos \varepsilon\right)\right)}\right)}\right)\right) + \frac{\sin x \cdot \left(\sin \varepsilon \cdot \sin \varepsilon\right)}{\left(1 - \frac{\left(\sin x \cdot \left(\sin x \cdot \sin x\right)\right) \cdot \left(\sin \varepsilon \cdot \left(\sin \varepsilon \cdot \sin \varepsilon\right)\right)}{\left(\left(\cos x \cdot \cos x\right) \cdot \cos x\right) \cdot \left(\cos \varepsilon \cdot \left(\cos \varepsilon \cdot \cos \varepsilon\right)\right)}\right) \cdot \left(\left(\cos \varepsilon \cdot \cos \varepsilon\right) \cdot \cos x\right)}\right)\right) - \frac{\sin x}{\cos x}\right) + \frac{\frac{\sin \varepsilon \cdot \left(\sin x \cdot \sin x\right)}{\cos x \cdot \cos x}}{\cos \varepsilon \cdot \left(1 - \frac{\left(\sin x \cdot \left(\sin x \cdot \sin x\right)\right) \cdot \left(\sin \varepsilon \cdot \left(\sin \varepsilon \cdot \sin \varepsilon\right)\right)}{\left(\left(\cos x \cdot \cos x\right) \cdot \cos x\right) \cdot \left(\cos \varepsilon \cdot \left(\cos \varepsilon \cdot \cos \varepsilon\right)\right)}\right)}\\
\mathbf{elif}\;\varepsilon \le 5.774589762410481 \cdot 10^{-177}:\\
\;\;\;\;\varepsilon + \left(\left(\varepsilon + x\right) \cdot \varepsilon\right) \cdot x\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\frac{\sin \varepsilon \cdot \sin \varepsilon}{\left(1 - \frac{\left(\sin x \cdot \left(\sin x \cdot \sin x\right)\right) \cdot \left(\sin \varepsilon \cdot \left(\sin \varepsilon \cdot \sin \varepsilon\right)\right)}{\left(\left(\cos x \cdot \cos x\right) \cdot \cos x\right) \cdot \left(\cos \varepsilon \cdot \left(\cos \varepsilon \cdot \cos \varepsilon\right)\right)}\right) \cdot \left(\cos \varepsilon \cdot \cos \varepsilon\right)} \cdot \frac{\sin x \cdot \left(\sin x \cdot \sin x\right)}{\left(\cos x \cdot \cos x\right) \cdot \cos x} + \left(\left(\frac{\frac{\sin x}{\cos x}}{1 - \frac{\left(\sin x \cdot \left(\sin x \cdot \sin x\right)\right) \cdot \left(\sin \varepsilon \cdot \left(\sin \varepsilon \cdot \sin \varepsilon\right)\right)}{\left(\left(\cos x \cdot \cos x\right) \cdot \cos x\right) \cdot \left(\cos \varepsilon \cdot \left(\cos \varepsilon \cdot \cos \varepsilon\right)\right)}} + \left(\frac{\sin x \cdot \sin x}{\frac{\left(\cos x \cdot \cos x\right) \cdot \left(\left(\cos \varepsilon \cdot \left(\cos \varepsilon \cdot \cos \varepsilon\right)\right) \cdot \left(1 - \frac{\left(\sin x \cdot \left(\sin x \cdot \sin x\right)\right) \cdot \left(\sin \varepsilon \cdot \left(\sin \varepsilon \cdot \sin \varepsilon\right)\right)}{\left(\left(\cos x \cdot \cos x\right) \cdot \cos x\right) \cdot \left(\cos \varepsilon \cdot \left(\cos \varepsilon \cdot \cos \varepsilon\right)\right)}\right)\right)}{\sin \varepsilon \cdot \left(\sin \varepsilon \cdot \sin \varepsilon\right)}} + \frac{\sin \varepsilon}{\cos \varepsilon \cdot \left(1 - \frac{\left(\sin x \cdot \left(\sin x \cdot \sin x\right)\right) \cdot \left(\sin \varepsilon \cdot \left(\sin \varepsilon \cdot \sin \varepsilon\right)\right)}{\left(\left(\cos x \cdot \cos x\right) \cdot \cos x\right) \cdot \left(\cos \varepsilon \cdot \left(\cos \varepsilon \cdot \cos \varepsilon\right)\right)}\right)}\right)\right) + \frac{\sin x \cdot \left(\sin \varepsilon \cdot \sin \varepsilon\right)}{\left(1 - \frac{\left(\sin x \cdot \left(\sin x \cdot \sin x\right)\right) \cdot \left(\sin \varepsilon \cdot \left(\sin \varepsilon \cdot \sin \varepsilon\right)\right)}{\left(\left(\cos x \cdot \cos x\right) \cdot \cos x\right) \cdot \left(\cos \varepsilon \cdot \left(\cos \varepsilon \cdot \cos \varepsilon\right)\right)}\right) \cdot \left(\left(\cos \varepsilon \cdot \cos \varepsilon\right) \cdot \cos x\right)}\right)\right) - \frac{\sin x}{\cos x}\right) + \frac{\frac{\sin \varepsilon \cdot \left(\sin x \cdot \sin x\right)}{\cos x \cdot \cos x}}{\cos \varepsilon \cdot \left(1 - \frac{\left(\sin x \cdot \left(\sin x \cdot \sin x\right)\right) \cdot \left(\sin \varepsilon \cdot \left(\sin \varepsilon \cdot \sin \varepsilon\right)\right)}{\left(\left(\cos x \cdot \cos x\right) \cdot \cos x\right) \cdot \left(\cos \varepsilon \cdot \left(\cos \varepsilon \cdot \cos \varepsilon\right)\right)}\right)}\\
\end{array}double f(double x, double eps) {
double r6384886 = x;
double r6384887 = eps;
double r6384888 = r6384886 + r6384887;
double r6384889 = tan(r6384888);
double r6384890 = tan(r6384886);
double r6384891 = r6384889 - r6384890;
return r6384891;
}
double f(double x, double eps) {
double r6384892 = eps;
double r6384893 = -9.72020893704794e-87;
bool r6384894 = r6384892 <= r6384893;
double r6384895 = sin(r6384892);
double r6384896 = r6384895 * r6384895;
double r6384897 = 1.0;
double r6384898 = x;
double r6384899 = sin(r6384898);
double r6384900 = r6384899 * r6384899;
double r6384901 = r6384899 * r6384900;
double r6384902 = r6384895 * r6384896;
double r6384903 = r6384901 * r6384902;
double r6384904 = cos(r6384898);
double r6384905 = r6384904 * r6384904;
double r6384906 = r6384905 * r6384904;
double r6384907 = cos(r6384892);
double r6384908 = r6384907 * r6384907;
double r6384909 = r6384907 * r6384908;
double r6384910 = r6384906 * r6384909;
double r6384911 = r6384903 / r6384910;
double r6384912 = r6384897 - r6384911;
double r6384913 = r6384912 * r6384908;
double r6384914 = r6384896 / r6384913;
double r6384915 = r6384901 / r6384906;
double r6384916 = r6384914 * r6384915;
double r6384917 = r6384899 / r6384904;
double r6384918 = r6384917 / r6384912;
double r6384919 = r6384909 * r6384912;
double r6384920 = r6384905 * r6384919;
double r6384921 = r6384920 / r6384902;
double r6384922 = r6384900 / r6384921;
double r6384923 = r6384907 * r6384912;
double r6384924 = r6384895 / r6384923;
double r6384925 = r6384922 + r6384924;
double r6384926 = r6384918 + r6384925;
double r6384927 = r6384899 * r6384896;
double r6384928 = r6384908 * r6384904;
double r6384929 = r6384912 * r6384928;
double r6384930 = r6384927 / r6384929;
double r6384931 = r6384926 + r6384930;
double r6384932 = r6384916 + r6384931;
double r6384933 = r6384932 - r6384917;
double r6384934 = r6384895 * r6384900;
double r6384935 = r6384934 / r6384905;
double r6384936 = r6384935 / r6384923;
double r6384937 = r6384933 + r6384936;
double r6384938 = 5.774589762410481e-177;
bool r6384939 = r6384892 <= r6384938;
double r6384940 = r6384892 + r6384898;
double r6384941 = r6384940 * r6384892;
double r6384942 = r6384941 * r6384898;
double r6384943 = r6384892 + r6384942;
double r6384944 = r6384939 ? r6384943 : r6384937;
double r6384945 = r6384894 ? r6384937 : r6384944;
return r6384945;
}




Bits error versus x




Bits error versus eps
Results
| Original | 36.4 |
|---|---|
| Target | 14.8 |
| Herbie | 15.5 |
if eps < -9.72020893704794e-87 or 5.774589762410481e-177 < eps Initial program 31.1
rmApplied tan-sum10.2
rmApplied flip3--10.2
Applied associate-/r/10.2
Simplified10.2
rmApplied add-cbrt-cube10.3
Taylor expanded around -inf 10.4
Simplified9.1
if -9.72020893704794e-87 < eps < 5.774589762410481e-177Initial program 49.7
Taylor expanded around 0 31.4
Simplified31.3
Final simplification15.5
herbie shell --seed 2019149
(FPCore (x eps)
:name "2tan (problem 3.3.2)"
:herbie-target
(/ (sin eps) (* (cos x) (cos (+ x eps))))
(- (tan (+ x eps)) (tan x)))