\[\tan \left(x + \varepsilon\right) - \tan x
\]
↓
\[\begin{array}{l}
t_0 := \frac{{\sin x}^{2}}{{\cos x}^{2}}\\
t_1 := 1 - \tan x \cdot \tan \varepsilon\\
t_2 := \tan x + \tan \varepsilon\\
t_3 := 1 + t_0\\
\mathbf{if}\;\varepsilon \leq -1.45 \cdot 10^{-7}:\\
\;\;\;\;\frac{t_2}{t_1} - \tan x\\
\mathbf{elif}\;\varepsilon \leq 1.85 \cdot 10^{-7}:\\
\;\;\;\;\mathsf{log1p}\left(\mathsf{fma}\left(\varepsilon \cdot \varepsilon, \mathsf{fma}\left(0.5, {t_3}^{2}, t_3 \cdot \frac{\sin x}{\cos x}\right), \varepsilon + \varepsilon \cdot t_0\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t_2 \cdot \frac{1}{t_1} - \tan x\\
\end{array}
\]
double code(double x, double eps) {
return tan((x + eps)) - tan(x);
}
↓
double code(double x, double eps) {
double t_0 = pow(sin(x), 2.0) / pow(cos(x), 2.0);
double t_1 = 1.0 - (tan(x) * tan(eps));
double t_2 = tan(x) + tan(eps);
double t_3 = 1.0 + t_0;
double tmp;
if (eps <= -1.45e-7) {
tmp = (t_2 / t_1) - tan(x);
} else if (eps <= 1.85e-7) {
tmp = log1p(fma((eps * eps), fma(0.5, pow(t_3, 2.0), (t_3 * (sin(x) / cos(x)))), (eps + (eps * t_0))));
} else {
tmp = (t_2 * (1.0 / t_1)) - 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) ^ 2.0) / (cos(x) ^ 2.0))
t_1 = Float64(1.0 - Float64(tan(x) * tan(eps)))
t_2 = Float64(tan(x) + tan(eps))
t_3 = Float64(1.0 + t_0)
tmp = 0.0
if (eps <= -1.45e-7)
tmp = Float64(Float64(t_2 / t_1) - tan(x));
elseif (eps <= 1.85e-7)
tmp = log1p(fma(Float64(eps * eps), fma(0.5, (t_3 ^ 2.0), Float64(t_3 * Float64(sin(x) / cos(x)))), Float64(eps + Float64(eps * t_0))));
else
tmp = Float64(Float64(t_2 * Float64(1.0 / t_1)) - 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], 2.0], $MachinePrecision] / N[Power[N[Cos[x], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(1.0 - N[(N[Tan[x], $MachinePrecision] * N[Tan[eps], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[Tan[x], $MachinePrecision] + N[Tan[eps], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(1.0 + t$95$0), $MachinePrecision]}, If[LessEqual[eps, -1.45e-7], N[(N[(t$95$2 / t$95$1), $MachinePrecision] - N[Tan[x], $MachinePrecision]), $MachinePrecision], If[LessEqual[eps, 1.85e-7], N[Log[1 + N[(N[(eps * eps), $MachinePrecision] * N[(0.5 * N[Power[t$95$3, 2.0], $MachinePrecision] + N[(t$95$3 * N[(N[Sin[x], $MachinePrecision] / N[Cos[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(eps + N[(eps * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[(N[(t$95$2 * N[(1.0 / t$95$1), $MachinePrecision]), $MachinePrecision] - N[Tan[x], $MachinePrecision]), $MachinePrecision]]]]]]]
\tan \left(x + \varepsilon\right) - \tan x
↓
\begin{array}{l}
t_0 := \frac{{\sin x}^{2}}{{\cos x}^{2}}\\
t_1 := 1 - \tan x \cdot \tan \varepsilon\\
t_2 := \tan x + \tan \varepsilon\\
t_3 := 1 + t_0\\
\mathbf{if}\;\varepsilon \leq -1.45 \cdot 10^{-7}:\\
\;\;\;\;\frac{t_2}{t_1} - \tan x\\
\mathbf{elif}\;\varepsilon \leq 1.85 \cdot 10^{-7}:\\
\;\;\;\;\mathsf{log1p}\left(\mathsf{fma}\left(\varepsilon \cdot \varepsilon, \mathsf{fma}\left(0.5, {t_3}^{2}, t_3 \cdot \frac{\sin x}{\cos x}\right), \varepsilon + \varepsilon \cdot t_0\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t_2 \cdot \frac{1}{t_1} - \tan x\\
\end{array}