Average Error: 37.3 → 0.6
Time: 1.0m
Precision: 64
\[\tan \left(x + \varepsilon\right) - \tan x\]
\[\mathsf{fma}\left(\frac{\frac{\sin \varepsilon}{\cos \varepsilon} \cdot \frac{\sin \varepsilon}{\cos \varepsilon}}{\cos x}, \frac{\sin x}{1 - \frac{\sin x \cdot \sin \varepsilon}{\cos x \cdot \cos \varepsilon} \cdot \frac{\sin x \cdot \sin \varepsilon}{\cos x \cdot \cos \varepsilon}}, \frac{\frac{\sin \varepsilon}{\cos \varepsilon} \cdot \mathsf{fma}\left(\frac{\sin x}{\cos x}, \frac{\sin x}{\cos x}, 1\right)}{1 - \frac{\sin x \cdot \sin \varepsilon}{\cos x \cdot \cos \varepsilon} \cdot \frac{\sin x \cdot \sin \varepsilon}{\cos x \cdot \cos \varepsilon}}\right) + \frac{\frac{\sin x}{1 - \frac{\sin x \cdot \sin \varepsilon}{\cos x \cdot \cos \varepsilon} \cdot \frac{\sin x \cdot \sin \varepsilon}{\cos x \cdot \cos \varepsilon}} - \sin x}{\cos x}\]
\tan \left(x + \varepsilon\right) - \tan x
\mathsf{fma}\left(\frac{\frac{\sin \varepsilon}{\cos \varepsilon} \cdot \frac{\sin \varepsilon}{\cos \varepsilon}}{\cos x}, \frac{\sin x}{1 - \frac{\sin x \cdot \sin \varepsilon}{\cos x \cdot \cos \varepsilon} \cdot \frac{\sin x \cdot \sin \varepsilon}{\cos x \cdot \cos \varepsilon}}, \frac{\frac{\sin \varepsilon}{\cos \varepsilon} \cdot \mathsf{fma}\left(\frac{\sin x}{\cos x}, \frac{\sin x}{\cos x}, 1\right)}{1 - \frac{\sin x \cdot \sin \varepsilon}{\cos x \cdot \cos \varepsilon} \cdot \frac{\sin x \cdot \sin \varepsilon}{\cos x \cdot \cos \varepsilon}}\right) + \frac{\frac{\sin x}{1 - \frac{\sin x \cdot \sin \varepsilon}{\cos x \cdot \cos \varepsilon} \cdot \frac{\sin x \cdot \sin \varepsilon}{\cos x \cdot \cos \varepsilon}} - \sin x}{\cos x}
double f(double x, double eps) {
        double r4118140 = x;
        double r4118141 = eps;
        double r4118142 = r4118140 + r4118141;
        double r4118143 = tan(r4118142);
        double r4118144 = tan(r4118140);
        double r4118145 = r4118143 - r4118144;
        return r4118145;
}

double f(double x, double eps) {
        double r4118146 = eps;
        double r4118147 = sin(r4118146);
        double r4118148 = cos(r4118146);
        double r4118149 = r4118147 / r4118148;
        double r4118150 = r4118149 * r4118149;
        double r4118151 = x;
        double r4118152 = cos(r4118151);
        double r4118153 = r4118150 / r4118152;
        double r4118154 = sin(r4118151);
        double r4118155 = 1.0;
        double r4118156 = r4118154 * r4118147;
        double r4118157 = r4118152 * r4118148;
        double r4118158 = r4118156 / r4118157;
        double r4118159 = r4118158 * r4118158;
        double r4118160 = r4118155 - r4118159;
        double r4118161 = r4118154 / r4118160;
        double r4118162 = r4118154 / r4118152;
        double r4118163 = fma(r4118162, r4118162, r4118155);
        double r4118164 = r4118149 * r4118163;
        double r4118165 = r4118164 / r4118160;
        double r4118166 = fma(r4118153, r4118161, r4118165);
        double r4118167 = r4118161 - r4118154;
        double r4118168 = r4118167 / r4118152;
        double r4118169 = r4118166 + r4118168;
        return r4118169;
}

Error

Bits error versus x

Bits error versus eps

Target

Original37.3
Target14.9
Herbie0.6
\[\frac{\sin \varepsilon}{\cos x \cdot \cos \left(x + \varepsilon\right)}\]

Derivation

  1. Initial program 37.3

    \[\tan \left(x + \varepsilon\right) - \tan x\]
  2. Using strategy rm
  3. Applied tan-sum22.4

    \[\leadsto \color{blue}{\frac{\tan x + \tan \varepsilon}{1 - \tan x \cdot \tan \varepsilon}} - \tan x\]
  4. Using strategy rm
  5. Applied flip--22.4

    \[\leadsto \frac{\tan x + \tan \varepsilon}{\color{blue}{\frac{1 \cdot 1 - \left(\tan x \cdot \tan \varepsilon\right) \cdot \left(\tan x \cdot \tan \varepsilon\right)}{1 + \tan x \cdot \tan \varepsilon}}} - \tan x\]
  6. Applied associate-/r/22.4

    \[\leadsto \color{blue}{\frac{\tan x + \tan \varepsilon}{1 \cdot 1 - \left(\tan x \cdot \tan \varepsilon\right) \cdot \left(\tan x \cdot \tan \varepsilon\right)} \cdot \left(1 + \tan x \cdot \tan \varepsilon\right)} - \tan x\]
  7. Applied fma-neg22.4

    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\tan x + \tan \varepsilon}{1 \cdot 1 - \left(\tan x \cdot \tan \varepsilon\right) \cdot \left(\tan x \cdot \tan \varepsilon\right)}, 1 + \tan x \cdot \tan \varepsilon, -\tan x\right)}\]
  8. Taylor expanded around -inf 22.6

    \[\leadsto \color{blue}{\left(\frac{\sin x}{\cos x \cdot \left(1 - \frac{{\left(\sin x\right)}^{2} \cdot {\left(\sin \varepsilon\right)}^{2}}{{\left(\cos x\right)}^{2} \cdot {\left(\cos \varepsilon\right)}^{2}}\right)} + \left(\frac{\sin x \cdot {\left(\sin \varepsilon\right)}^{2}}{\cos x \cdot \left({\left(\cos \varepsilon\right)}^{2} \cdot \left(1 - \frac{{\left(\sin x\right)}^{2} \cdot {\left(\sin \varepsilon\right)}^{2}}{{\left(\cos x\right)}^{2} \cdot {\left(\cos \varepsilon\right)}^{2}}\right)\right)} + \left(\frac{{\left(\sin x\right)}^{2} \cdot \sin \varepsilon}{{\left(\cos x\right)}^{2} \cdot \left(\cos \varepsilon \cdot \left(1 - \frac{{\left(\sin x\right)}^{2} \cdot {\left(\sin \varepsilon\right)}^{2}}{{\left(\cos x\right)}^{2} \cdot {\left(\cos \varepsilon\right)}^{2}}\right)\right)} + \frac{\sin \varepsilon}{\cos \varepsilon \cdot \left(1 - \frac{{\left(\sin x\right)}^{2} \cdot {\left(\sin \varepsilon\right)}^{2}}{{\left(\cos x\right)}^{2} \cdot {\left(\cos \varepsilon\right)}^{2}}\right)}\right)\right)\right) - \frac{\sin x}{\cos x}}\]
  9. Simplified0.6

    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\frac{\sin \varepsilon}{\cos \varepsilon} \cdot \frac{\sin \varepsilon}{\cos \varepsilon}}{\cos x}, \frac{\sin x}{1 - \frac{\sin \varepsilon \cdot \sin x}{\cos \varepsilon \cdot \cos x} \cdot \frac{\sin \varepsilon \cdot \sin x}{\cos \varepsilon \cdot \cos x}}, \frac{\mathsf{fma}\left(\frac{\sin x}{\cos x}, \frac{\sin x}{\cos x}, 1\right) \cdot \frac{\sin \varepsilon}{\cos \varepsilon}}{1 - \frac{\sin \varepsilon \cdot \sin x}{\cos \varepsilon \cdot \cos x} \cdot \frac{\sin \varepsilon \cdot \sin x}{\cos \varepsilon \cdot \cos x}}\right) + \left(\frac{\frac{\sin x}{1 - \frac{\sin \varepsilon \cdot \sin x}{\cos \varepsilon \cdot \cos x} \cdot \frac{\sin \varepsilon \cdot \sin x}{\cos \varepsilon \cdot \cos x}}}{\cos x} - \frac{\sin x}{\cos x}\right)}\]
  10. Using strategy rm
  11. Applied sub-div0.6

    \[\leadsto \mathsf{fma}\left(\frac{\frac{\sin \varepsilon}{\cos \varepsilon} \cdot \frac{\sin \varepsilon}{\cos \varepsilon}}{\cos x}, \frac{\sin x}{1 - \frac{\sin \varepsilon \cdot \sin x}{\cos \varepsilon \cdot \cos x} \cdot \frac{\sin \varepsilon \cdot \sin x}{\cos \varepsilon \cdot \cos x}}, \frac{\mathsf{fma}\left(\frac{\sin x}{\cos x}, \frac{\sin x}{\cos x}, 1\right) \cdot \frac{\sin \varepsilon}{\cos \varepsilon}}{1 - \frac{\sin \varepsilon \cdot \sin x}{\cos \varepsilon \cdot \cos x} \cdot \frac{\sin \varepsilon \cdot \sin x}{\cos \varepsilon \cdot \cos x}}\right) + \color{blue}{\frac{\frac{\sin x}{1 - \frac{\sin \varepsilon \cdot \sin x}{\cos \varepsilon \cdot \cos x} \cdot \frac{\sin \varepsilon \cdot \sin x}{\cos \varepsilon \cdot \cos x}} - \sin x}{\cos x}}\]
  12. Final simplification0.6

    \[\leadsto \mathsf{fma}\left(\frac{\frac{\sin \varepsilon}{\cos \varepsilon} \cdot \frac{\sin \varepsilon}{\cos \varepsilon}}{\cos x}, \frac{\sin x}{1 - \frac{\sin x \cdot \sin \varepsilon}{\cos x \cdot \cos \varepsilon} \cdot \frac{\sin x \cdot \sin \varepsilon}{\cos x \cdot \cos \varepsilon}}, \frac{\frac{\sin \varepsilon}{\cos \varepsilon} \cdot \mathsf{fma}\left(\frac{\sin x}{\cos x}, \frac{\sin x}{\cos x}, 1\right)}{1 - \frac{\sin x \cdot \sin \varepsilon}{\cos x \cdot \cos \varepsilon} \cdot \frac{\sin x \cdot \sin \varepsilon}{\cos x \cdot \cos \varepsilon}}\right) + \frac{\frac{\sin x}{1 - \frac{\sin x \cdot \sin \varepsilon}{\cos x \cdot \cos \varepsilon} \cdot \frac{\sin x \cdot \sin \varepsilon}{\cos x \cdot \cos \varepsilon}} - \sin x}{\cos x}\]

Reproduce

herbie shell --seed 2019142 +o rules:numerics
(FPCore (x eps)
  :name "2tan (problem 3.3.2)"

  :herbie-target
  (/ (sin eps) (* (cos x) (cos (+ x eps))))

  (- (tan (+ x eps)) (tan x)))