Average Error: 37.3 → 0.3
Time: 25.2s
Precision: binary64
Cost: 208712
\[\tan \left(x + \varepsilon\right) - \tan x \]
\[\begin{array}{l} t_0 := \frac{{\sin x}^{4}}{{\cos x}^{4}}\\ t_1 := \tan x + \tan \varepsilon\\ t_2 := \tan x \cdot \tan \varepsilon\\ t_3 := \frac{\sin x}{\cos x}\\ t_4 := {t_3}^{3}\\ t_5 := \frac{{\sin x}^{2}}{{\cos x}^{2}}\\ \mathbf{if}\;\varepsilon \leq -0.0008595370402296257:\\ \;\;\;\;\mathsf{fma}\left(\frac{t_1}{1 - {t_2}^{3}}, \mathsf{fma}\left(t_2, \mathsf{fma}\left(\tan x, \tan \varepsilon, 1\right), 1\right), -\tan x\right)\\ \mathbf{elif}\;\varepsilon \leq 0.00011345235841129759:\\ \;\;\;\;\mathsf{fma}\left({\varepsilon}^{4}, t_4 \cdot 1.6666666666666667 + t_3 \cdot \left(0.3333333333333333 + \left(0.3333333333333333 + t_0\right)\right), \mathsf{fma}\left(t_3 + t_4, \varepsilon \cdot \varepsilon, \mathsf{fma}\left(\varepsilon, 1 + t_5, \left(0.3333333333333333 + \mathsf{fma}\left(t_5, 1.3333333333333333, t_0\right)\right) \cdot {\varepsilon}^{3}\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;t_1 \cdot \frac{1}{1 - t_2} - \tan x\\ \end{array} \]
(FPCore (x eps) :precision binary64 (- (tan (+ x eps)) (tan x)))
(FPCore (x eps)
 :precision binary64
 (let* ((t_0 (/ (pow (sin x) 4.0) (pow (cos x) 4.0)))
        (t_1 (+ (tan x) (tan eps)))
        (t_2 (* (tan x) (tan eps)))
        (t_3 (/ (sin x) (cos x)))
        (t_4 (pow t_3 3.0))
        (t_5 (/ (pow (sin x) 2.0) (pow (cos x) 2.0))))
   (if (<= eps -0.0008595370402296257)
     (fma
      (/ t_1 (- 1.0 (pow t_2 3.0)))
      (fma t_2 (fma (tan x) (tan eps) 1.0) 1.0)
      (- (tan x)))
     (if (<= eps 0.00011345235841129759)
       (fma
        (pow eps 4.0)
        (+
         (* t_4 1.6666666666666667)
         (* t_3 (+ 0.3333333333333333 (+ 0.3333333333333333 t_0))))
        (fma
         (+ t_3 t_4)
         (* eps eps)
         (fma
          eps
          (+ 1.0 t_5)
          (*
           (+ 0.3333333333333333 (fma t_5 1.3333333333333333 t_0))
           (pow eps 3.0)))))
       (- (* t_1 (/ 1.0 (- 1.0 t_2))) (tan x))))))
double code(double x, double eps) {
	return tan((x + eps)) - tan(x);
}
double code(double x, double eps) {
	double t_0 = pow(sin(x), 4.0) / pow(cos(x), 4.0);
	double t_1 = tan(x) + tan(eps);
	double t_2 = tan(x) * tan(eps);
	double t_3 = sin(x) / cos(x);
	double t_4 = pow(t_3, 3.0);
	double t_5 = pow(sin(x), 2.0) / pow(cos(x), 2.0);
	double tmp;
	if (eps <= -0.0008595370402296257) {
		tmp = fma((t_1 / (1.0 - pow(t_2, 3.0))), fma(t_2, fma(tan(x), tan(eps), 1.0), 1.0), -tan(x));
	} else if (eps <= 0.00011345235841129759) {
		tmp = fma(pow(eps, 4.0), ((t_4 * 1.6666666666666667) + (t_3 * (0.3333333333333333 + (0.3333333333333333 + t_0)))), fma((t_3 + t_4), (eps * eps), fma(eps, (1.0 + t_5), ((0.3333333333333333 + fma(t_5, 1.3333333333333333, t_0)) * pow(eps, 3.0)))));
	} else {
		tmp = (t_1 * (1.0 / (1.0 - t_2))) - tan(x);
	}
	return tmp;
}
function code(x, eps)
	return Float64(tan(Float64(x + eps)) - tan(x))
end
function code(x, eps)
	t_0 = Float64((sin(x) ^ 4.0) / (cos(x) ^ 4.0))
	t_1 = Float64(tan(x) + tan(eps))
	t_2 = Float64(tan(x) * tan(eps))
	t_3 = Float64(sin(x) / cos(x))
	t_4 = t_3 ^ 3.0
	t_5 = Float64((sin(x) ^ 2.0) / (cos(x) ^ 2.0))
	tmp = 0.0
	if (eps <= -0.0008595370402296257)
		tmp = fma(Float64(t_1 / Float64(1.0 - (t_2 ^ 3.0))), fma(t_2, fma(tan(x), tan(eps), 1.0), 1.0), Float64(-tan(x)));
	elseif (eps <= 0.00011345235841129759)
		tmp = fma((eps ^ 4.0), Float64(Float64(t_4 * 1.6666666666666667) + Float64(t_3 * Float64(0.3333333333333333 + Float64(0.3333333333333333 + t_0)))), fma(Float64(t_3 + t_4), Float64(eps * eps), fma(eps, Float64(1.0 + t_5), Float64(Float64(0.3333333333333333 + fma(t_5, 1.3333333333333333, t_0)) * (eps ^ 3.0)))));
	else
		tmp = Float64(Float64(t_1 * Float64(1.0 / Float64(1.0 - t_2))) - tan(x));
	end
	return tmp
end
code[x_, eps_] := N[(N[Tan[N[(x + eps), $MachinePrecision]], $MachinePrecision] - N[Tan[x], $MachinePrecision]), $MachinePrecision]
code[x_, eps_] := Block[{t$95$0 = N[(N[Power[N[Sin[x], $MachinePrecision], 4.0], $MachinePrecision] / N[Power[N[Cos[x], $MachinePrecision], 4.0], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[Tan[x], $MachinePrecision] + N[Tan[eps], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[Tan[x], $MachinePrecision] * N[Tan[eps], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[Sin[x], $MachinePrecision] / N[Cos[x], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[Power[t$95$3, 3.0], $MachinePrecision]}, Block[{t$95$5 = N[(N[Power[N[Sin[x], $MachinePrecision], 2.0], $MachinePrecision] / N[Power[N[Cos[x], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[eps, -0.0008595370402296257], N[(N[(t$95$1 / N[(1.0 - N[Power[t$95$2, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(t$95$2 * N[(N[Tan[x], $MachinePrecision] * N[Tan[eps], $MachinePrecision] + 1.0), $MachinePrecision] + 1.0), $MachinePrecision] + (-N[Tan[x], $MachinePrecision])), $MachinePrecision], If[LessEqual[eps, 0.00011345235841129759], N[(N[Power[eps, 4.0], $MachinePrecision] * N[(N[(t$95$4 * 1.6666666666666667), $MachinePrecision] + N[(t$95$3 * N[(0.3333333333333333 + N[(0.3333333333333333 + t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(t$95$3 + t$95$4), $MachinePrecision] * N[(eps * eps), $MachinePrecision] + N[(eps * N[(1.0 + t$95$5), $MachinePrecision] + N[(N[(0.3333333333333333 + N[(t$95$5 * 1.3333333333333333 + t$95$0), $MachinePrecision]), $MachinePrecision] * N[Power[eps, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(t$95$1 * N[(1.0 / N[(1.0 - t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[Tan[x], $MachinePrecision]), $MachinePrecision]]]]]]]]]
\tan \left(x + \varepsilon\right) - \tan x
\begin{array}{l}
t_0 := \frac{{\sin x}^{4}}{{\cos x}^{4}}\\
t_1 := \tan x + \tan \varepsilon\\
t_2 := \tan x \cdot \tan \varepsilon\\
t_3 := \frac{\sin x}{\cos x}\\
t_4 := {t_3}^{3}\\
t_5 := \frac{{\sin x}^{2}}{{\cos x}^{2}}\\
\mathbf{if}\;\varepsilon \leq -0.0008595370402296257:\\
\;\;\;\;\mathsf{fma}\left(\frac{t_1}{1 - {t_2}^{3}}, \mathsf{fma}\left(t_2, \mathsf{fma}\left(\tan x, \tan \varepsilon, 1\right), 1\right), -\tan x\right)\\

\mathbf{elif}\;\varepsilon \leq 0.00011345235841129759:\\
\;\;\;\;\mathsf{fma}\left({\varepsilon}^{4}, t_4 \cdot 1.6666666666666667 + t_3 \cdot \left(0.3333333333333333 + \left(0.3333333333333333 + t_0\right)\right), \mathsf{fma}\left(t_3 + t_4, \varepsilon \cdot \varepsilon, \mathsf{fma}\left(\varepsilon, 1 + t_5, \left(0.3333333333333333 + \mathsf{fma}\left(t_5, 1.3333333333333333, t_0\right)\right) \cdot {\varepsilon}^{3}\right)\right)\right)\\

\mathbf{else}:\\
\;\;\;\;t_1 \cdot \frac{1}{1 - t_2} - \tan x\\


\end{array}

Error

Target

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

Derivation

  1. Split input into 3 regimes
  2. if eps < -8.595370402296257e-4

    1. Initial program 29.7

      \[\tan \left(x + \varepsilon\right) - \tan x \]
    2. Applied egg-rr0.3

      \[\leadsto \color{blue}{\left(\tan x + \tan \varepsilon\right) \cdot \frac{1}{1 - \tan x \cdot \tan \varepsilon}} - \tan x \]
    3. Applied egg-rr0.4

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\tan x + \tan \varepsilon}{1 - {\left(\tan x \cdot \tan \varepsilon\right)}^{3}}, \mathsf{fma}\left(\tan x \cdot \tan \varepsilon, \mathsf{fma}\left(\tan x, \tan \varepsilon, 1\right), 1\right), -\tan x\right)} \]

    if -8.595370402296257e-4 < eps < 1.13452358411297586e-4

    1. Initial program 44.8

      \[\tan \left(x + \varepsilon\right) - \tan x \]
    2. Applied egg-rr44.1

      \[\leadsto \color{blue}{\left(\tan x + \tan \varepsilon\right) \cdot \frac{1}{1 - \tan x \cdot \tan \varepsilon}} - \tan x \]
    3. Applied egg-rr44.1

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\tan x + \tan \varepsilon}{1 - {\left(\tan x \cdot \tan \varepsilon\right)}^{3}}, \mathsf{fma}\left(\tan x \cdot \tan \varepsilon, \mathsf{fma}\left(\tan x, \tan \varepsilon, 1\right), 1\right), -\tan x\right)} \]
    4. Taylor expanded in eps around 0 0.2

      \[\leadsto \color{blue}{{\varepsilon}^{4} \cdot \left(0.3333333333333333 \cdot \frac{\sin x}{\cos x} + \left(0.6666666666666666 \cdot \frac{{\sin x}^{3}}{{\cos x}^{3}} + \left(\frac{{\sin x}^{3}}{{\cos x}^{3}} + \frac{\sin x \cdot \left(0.3333333333333333 - -1 \cdot \frac{{\sin x}^{4}}{{\cos x}^{4}}\right)}{\cos x}\right)\right)\right) + \left(\left(\frac{\sin x}{\cos x} + \frac{{\sin x}^{3}}{{\cos x}^{3}}\right) \cdot {\varepsilon}^{2} + \left(\varepsilon \cdot \left(1 + \frac{{\sin x}^{2}}{{\cos x}^{2}}\right) + \left(\left(0.3333333333333333 + \left(\frac{{\sin x}^{2}}{{\cos x}^{2}} + 0.3333333333333333 \cdot \frac{{\sin x}^{2}}{{\cos x}^{2}}\right)\right) - -1 \cdot \frac{{\sin x}^{4}}{{\cos x}^{4}}\right) \cdot {\varepsilon}^{3}\right)\right)} \]
    5. Simplified0.2

      \[\leadsto \color{blue}{\mathsf{fma}\left({\varepsilon}^{4}, {\left(\frac{\sin x}{\cos x}\right)}^{3} \cdot 1.6666666666666667 + \frac{\sin x}{\cos x} \cdot \left(\left(0.3333333333333333 + \frac{{\sin x}^{4}}{{\cos x}^{4}}\right) + 0.3333333333333333\right), \mathsf{fma}\left(\frac{\sin x}{\cos x} + {\left(\frac{\sin x}{\cos x}\right)}^{3}, \varepsilon \cdot \varepsilon, \mathsf{fma}\left(\varepsilon, 1 + \frac{{\sin x}^{2}}{{\cos x}^{2}}, \left(0.3333333333333333 + \mathsf{fma}\left(\frac{{\sin x}^{2}}{{\cos x}^{2}}, 1.3333333333333333, \frac{{\sin x}^{4}}{{\cos x}^{4}}\right)\right) \cdot {\varepsilon}^{3}\right)\right)\right)} \]
      Proof
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3) 5/3) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (+.f64 (+.f64 1/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))) 1/3))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 (Rewrite<= cube-unmult_binary64 (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) (cos.f64 x))))) 5/3) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (+.f64 (+.f64 1/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))) 1/3))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (Rewrite<= times-frac_binary64 (/.f64 (*.f64 (sin.f64 x) (sin.f64 x)) (*.f64 (cos.f64 x) (cos.f64 x))))) 5/3) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (+.f64 (+.f64 1/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))) 1/3))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (Rewrite<= unpow2_binary64 (pow.f64 (sin.f64 x) 2)) (*.f64 (cos.f64 x) (cos.f64 x)))) 5/3) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (+.f64 (+.f64 1/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))) 1/3))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (pow.f64 (sin.f64 x) 2) (Rewrite<= unpow2_binary64 (pow.f64 (cos.f64 x) 2)))) 5/3) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (+.f64 (+.f64 1/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))) 1/3))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 (Rewrite<= times-frac_binary64 (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 x) 2)) (*.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2)))) 5/3) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (+.f64 (+.f64 1/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))) 1/3))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 1 points increase in error, 1 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 (/.f64 (*.f64 (sin.f64 x) (Rewrite=> unpow2_binary64 (*.f64 (sin.f64 x) (sin.f64 x)))) (*.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))) 5/3) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (+.f64 (+.f64 1/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))) 1/3))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 (/.f64 (Rewrite<= cube-mult_binary64 (pow.f64 (sin.f64 x) 3)) (*.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))) 5/3) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (+.f64 (+.f64 1/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))) 1/3))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 1 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (*.f64 (cos.f64 x) (Rewrite=> unpow2_binary64 (*.f64 (cos.f64 x) (cos.f64 x))))) 5/3) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (+.f64 (+.f64 1/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))) 1/3))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (Rewrite<= cube-mult_binary64 (pow.f64 (cos.f64 x) 3))) 5/3) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (+.f64 (+.f64 1/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))) 1/3))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (Rewrite<= metadata-eval (+.f64 2/3 1))) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (+.f64 (+.f64 1/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))) 1/3))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 3 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (Rewrite<= distribute-rgt-out_binary64 (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (*.f64 1 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))))) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (+.f64 (+.f64 1/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))) 1/3))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 3 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (Rewrite=> *-lft-identity_binary64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)))) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (+.f64 (+.f64 1/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))) 1/3))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (+.f64 (+.f64 1/3 (Rewrite<= *-lft-identity_binary64 (*.f64 1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) 1/3))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (+.f64 (+.f64 1/3 (*.f64 (Rewrite<= metadata-eval (neg.f64 -1)) (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) 1/3))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (+.f64 (Rewrite<= cancel-sign-sub-inv_binary64 (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) 1/3))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (Rewrite<= distribute-lft-out_binary64 (+.f64 (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 1/3)))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 1 points increase in error, 1 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (Rewrite=> associate-*l/_binary64 (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 1/3))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 1 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x)) (Rewrite<= *-commutative_binary64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x)))))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (Rewrite<= associate-+l+_binary64 (+.f64 (+.f64 (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))) (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 1 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (Rewrite<= associate-+r+_binary64 (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))))) (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x)))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 2 points decrease in error
      (fma.f64 (pow.f64 eps 4) (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))) (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x)))))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 (/.f64 (sin.f64 x) (cos.f64 x)) 3)) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))) (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (Rewrite<= cube-unmult_binary64 (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) (cos.f64 x)))))) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))) (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (Rewrite<= times-frac_binary64 (/.f64 (*.f64 (sin.f64 x) (sin.f64 x)) (*.f64 (cos.f64 x) (cos.f64 x)))))) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))) (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (Rewrite<= unpow2_binary64 (pow.f64 (sin.f64 x) 2)) (*.f64 (cos.f64 x) (cos.f64 x))))) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))) (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (pow.f64 (sin.f64 x) 2) (Rewrite<= unpow2_binary64 (pow.f64 (cos.f64 x) 2))))) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))) (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (Rewrite<= times-frac_binary64 (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 x) 2)) (*.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))))) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))) (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (Rewrite=> unpow2_binary64 (*.f64 (sin.f64 x) (sin.f64 x)))) (*.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2)))) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))) (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (Rewrite<= cube-mult_binary64 (pow.f64 (sin.f64 x) 3)) (*.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2)))) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))) (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (pow.f64 (sin.f64 x) 3) (*.f64 (cos.f64 x) (Rewrite=> unpow2_binary64 (*.f64 (cos.f64 x) (cos.f64 x)))))) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))) (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (pow.f64 (sin.f64 x) 3) (Rewrite<= cube-mult_binary64 (pow.f64 (cos.f64 x) 3)))) (*.f64 eps eps) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))) (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (Rewrite<= unpow2_binary64 (pow.f64 eps 2)) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) 4/3 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))) (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (pow.f64 eps 2) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) (Rewrite<= metadata-eval (+.f64 1/3 1)) (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))) (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (pow.f64 eps 2) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) (+.f64 1/3 1) (Rewrite<= remove-double-neg_binary64 (neg.f64 (neg.f64 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))) (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (pow.f64 eps 2) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) (+.f64 1/3 1) (neg.f64 (Rewrite<= mul-1-neg_binary64 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))) (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (pow.f64 eps 2) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) (+.f64 1/3 1)) (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))) (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (pow.f64 eps 2) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (-.f64 (Rewrite<= *-commutative_binary64 (*.f64 (+.f64 1/3 1) (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)))) (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))) (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (pow.f64 eps 2) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (+.f64 1/3 (-.f64 (Rewrite<= distribute-rgt1-in_binary64 (+.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) (*.f64 1/3 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))))) (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))) (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (pow.f64 eps 2) (fma.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (*.f64 (Rewrite<= associate--l+_binary64 (-.f64 (+.f64 1/3 (+.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) (*.f64 1/3 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))))) (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (pow.f64 eps 3))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))) (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))))) (fma.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (pow.f64 eps 2) (Rewrite<= fma-def_binary64 (+.f64 (*.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)))) (*.f64 (-.f64 (+.f64 1/3 (+.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) (*.f64 1/3 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))))) (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3)))))): 2 points increase in error, 0 points decrease in error
      (fma.f64 (pow.f64 eps 4) (+.f64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))) (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x))))) (Rewrite<= fma-def_binary64 (+.f64 (*.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (pow.f64 eps 2)) (+.f64 (*.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)))) (*.f64 (-.f64 (+.f64 1/3 (+.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) (*.f64 1/3 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))))) (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3)))))): 0 points increase in error, 0 points decrease in error
      (Rewrite<= fma-def_binary64 (+.f64 (*.f64 (pow.f64 eps 4) (+.f64 (*.f64 1/3 (/.f64 (sin.f64 x) (cos.f64 x))) (+.f64 (*.f64 2/3 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (+.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3)) (/.f64 (*.f64 (sin.f64 x) (-.f64 1/3 (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4))))) (cos.f64 x)))))) (+.f64 (*.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 3))) (pow.f64 eps 2)) (+.f64 (*.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)))) (*.f64 (-.f64 (+.f64 1/3 (+.f64 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) (*.f64 1/3 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))))) (*.f64 -1 (/.f64 (pow.f64 (sin.f64 x) 4) (pow.f64 (cos.f64 x) 4)))) (pow.f64 eps 3)))))): 0 points increase in error, 0 points decrease in error

    if 1.13452358411297586e-4 < eps

    1. Initial program 29.9

      \[\tan \left(x + \varepsilon\right) - \tan x \]
    2. Applied egg-rr0.4

      \[\leadsto \color{blue}{\left(\tan x + \tan \varepsilon\right) \cdot \frac{1}{1 - \tan x \cdot \tan \varepsilon}} - \tan x \]
  3. Recombined 3 regimes into one program.
  4. Final simplification0.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.0008595370402296257:\\ \;\;\;\;\mathsf{fma}\left(\frac{\tan x + \tan \varepsilon}{1 - {\left(\tan x \cdot \tan \varepsilon\right)}^{3}}, \mathsf{fma}\left(\tan x \cdot \tan \varepsilon, \mathsf{fma}\left(\tan x, \tan \varepsilon, 1\right), 1\right), -\tan x\right)\\ \mathbf{elif}\;\varepsilon \leq 0.00011345235841129759:\\ \;\;\;\;\mathsf{fma}\left({\varepsilon}^{4}, {\left(\frac{\sin x}{\cos x}\right)}^{3} \cdot 1.6666666666666667 + \frac{\sin x}{\cos x} \cdot \left(0.3333333333333333 + \left(0.3333333333333333 + \frac{{\sin x}^{4}}{{\cos x}^{4}}\right)\right), \mathsf{fma}\left(\frac{\sin x}{\cos x} + {\left(\frac{\sin x}{\cos x}\right)}^{3}, \varepsilon \cdot \varepsilon, \mathsf{fma}\left(\varepsilon, 1 + \frac{{\sin x}^{2}}{{\cos x}^{2}}, \left(0.3333333333333333 + \mathsf{fma}\left(\frac{{\sin x}^{2}}{{\cos x}^{2}}, 1.3333333333333333, \frac{{\sin x}^{4}}{{\cos x}^{4}}\right)\right) \cdot {\varepsilon}^{3}\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\tan x + \tan \varepsilon\right) \cdot \frac{1}{1 - \tan x \cdot \tan \varepsilon} - \tan x\\ \end{array} \]

Alternatives

Alternative 1
Error0.3
Cost117896
\[\begin{array}{l} t_0 := \frac{\sin x}{\cos x}\\ t_1 := \tan x + \tan \varepsilon\\ t_2 := \frac{{\sin x}^{2}}{{\cos x}^{2}}\\ t_3 := \tan x \cdot \tan \varepsilon\\ \mathbf{if}\;\varepsilon \leq -0.0008595370402296257:\\ \;\;\;\;\mathsf{fma}\left(\frac{t_1}{1 - {t_3}^{3}}, \mathsf{fma}\left(t_3, \mathsf{fma}\left(\tan x, \tan \varepsilon, 1\right), 1\right), -\tan x\right)\\ \mathbf{elif}\;\varepsilon \leq 2.9133159033410942 \cdot 10^{-5}:\\ \;\;\;\;\mathsf{fma}\left(\varepsilon, 1 + t_2, \left(\varepsilon \cdot \varepsilon\right) \cdot \left(\left(t_0 + {t_0}^{3}\right) + \varepsilon \cdot \left(\frac{{\sin x}^{4}}{{\cos x}^{4}} + \left(0.3333333333333333 + t_2 \cdot 1.3333333333333333\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{t_1 \cdot \cos x + \sin x \cdot \left(t_3 + -1\right)}{\cos x \cdot \left(1 - t_3\right)}\\ \end{array} \]
Alternative 2
Error0.4
Cost84548
\[\begin{array}{l} t_0 := \frac{\sin x}{\cos x}\\ t_1 := -\tan x\\ t_2 := \tan x + \tan \varepsilon\\ t_3 := \tan x \cdot \tan \varepsilon\\ \mathbf{if}\;\varepsilon \leq -0.0008595370402296257:\\ \;\;\;\;\mathsf{fma}\left(\frac{t_2}{1 - {t_3}^{3}}, \mathsf{fma}\left(t_3, \mathsf{fma}\left(\tan x, \tan \varepsilon, 1\right), 1\right), t_1\right)\\ \mathbf{elif}\;\varepsilon \leq 2.5786160997623584 \cdot 10^{-10}:\\ \;\;\;\;\varepsilon + \varepsilon \cdot \left(\frac{{\sin x}^{2}}{{\cos x}^{2}} + \varepsilon \cdot \left(t_0 + {t_0}^{3}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(t_2, \frac{1}{1 - t_3}, t_1\right)\\ \end{array} \]
Alternative 3
Error0.4
Cost59144
\[\begin{array}{l} t_0 := \mathsf{fma}\left(\tan x + \tan \varepsilon, \frac{1}{1 - \tan x \cdot \tan \varepsilon}, -\tan x\right)\\ t_1 := \frac{\sin x}{\cos x}\\ \mathbf{if}\;\varepsilon \leq -0.0008595370402296257:\\ \;\;\;\;t_0\\ \mathbf{elif}\;\varepsilon \leq 2.5786160997623584 \cdot 10^{-10}:\\ \;\;\;\;\varepsilon + \varepsilon \cdot \left(\frac{{\sin x}^{2}}{{\cos x}^{2}} + \varepsilon \cdot \left(t_1 + {t_1}^{3}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 4
Error0.4
Cost39432
\[\begin{array}{l} t_0 := \mathsf{fma}\left(\tan x + \tan \varepsilon, \frac{1}{1 - \tan x \cdot \tan \varepsilon}, -\tan x\right)\\ \mathbf{if}\;\varepsilon \leq -1.5649287902487612 \cdot 10^{-6}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;\varepsilon \leq 2.5786160997623584 \cdot 10^{-10}:\\ \;\;\;\;\varepsilon + \varepsilon \cdot \frac{{\sin x}^{2}}{{\cos x}^{2}}\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 5
Error0.4
Cost33096
\[\begin{array}{l} t_0 := \left(\tan x + \tan \varepsilon\right) \cdot \frac{1}{1 - \tan x \cdot \tan \varepsilon} - \tan x\\ \mathbf{if}\;\varepsilon \leq -1.5649287902487612 \cdot 10^{-6}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;\varepsilon \leq 2.5786160997623584 \cdot 10^{-10}:\\ \;\;\;\;\varepsilon + \varepsilon \cdot \frac{{\sin x}^{2}}{{\cos x}^{2}}\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 6
Error0.4
Cost32968
\[\begin{array}{l} t_0 := \frac{\tan x + \tan \varepsilon}{1 - \tan x \cdot \tan \varepsilon} - \tan x\\ \mathbf{if}\;\varepsilon \leq -1.5649287902487612 \cdot 10^{-6}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;\varepsilon \leq 2.5786160997623584 \cdot 10^{-10}:\\ \;\;\;\;\varepsilon + \varepsilon \cdot \frac{{\sin x}^{2}}{{\cos x}^{2}}\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 7
Error14.2
Cost26440
\[\begin{array}{l} t_0 := \left(\tan x + \tan \varepsilon\right) - \tan x\\ \mathbf{if}\;\varepsilon \leq -0.0008595370402296257:\\ \;\;\;\;t_0\\ \mathbf{elif}\;\varepsilon \leq 0.00011345235841129759:\\ \;\;\;\;\varepsilon + \varepsilon \cdot \frac{{\sin x}^{2}}{{\cos x}^{2}}\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 8
Error26.8
Cost13256
\[\begin{array}{l} t_0 := \tan \varepsilon - \tan x\\ \mathbf{if}\;\varepsilon \leq -0.0008595370402296257:\\ \;\;\;\;t_0\\ \mathbf{elif}\;\varepsilon \leq 0.0007329160925107157:\\ \;\;\;\;\varepsilon + 0.3333333333333333 \cdot {\varepsilon}^{3}\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 9
Error26.7
Cost12992
\[\frac{\sin \varepsilon}{\cos \varepsilon} \]
Alternative 10
Error43.5
Cost64
\[\varepsilon \]

Error

Reproduce

herbie shell --seed 2022311 
(FPCore (x eps)
  :name "2tan (problem 3.3.2)"
  :precision binary64

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

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