\[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}
\]
↓
\[\begin{array}{l}
t_0 := x \cdot \left(x + -1\right)\\
t_1 := \frac{1}{1 + x}\\
t_2 := \frac{1}{x + -1}\\
t_3 := \left(t_1 - \frac{2}{x}\right) + t_2\\
\mathbf{if}\;t_3 \leq -5 \cdot 10^{-23}:\\
\;\;\;\;\frac{\mathsf{fma}\left(-1, t_0, \mathsf{fma}\left(x, -1, -1\right) \cdot \mathsf{fma}\left(x + -1, -2, x\right)\right)}{t_0 \cdot \mathsf{fma}\left(x, -1, -1\right)}\\
\mathbf{elif}\;t_3 \leq 10^{-30}:\\
\;\;\;\;\frac{2}{{x}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{-2}{x} + \left(t_1 + t_2\right)\\
\end{array}
\]
(FPCore (x)
:precision binary64
(+ (- (/ 1.0 (+ x 1.0)) (/ 2.0 x)) (/ 1.0 (- x 1.0))))
↓
(FPCore (x)
:precision binary64
(let* ((t_0 (* x (+ x -1.0)))
(t_1 (/ 1.0 (+ 1.0 x)))
(t_2 (/ 1.0 (+ x -1.0)))
(t_3 (+ (- t_1 (/ 2.0 x)) t_2)))
(if (<= t_3 -5e-23)
(/
(fma -1.0 t_0 (* (fma x -1.0 -1.0) (fma (+ x -1.0) -2.0 x)))
(* t_0 (fma x -1.0 -1.0)))
(if (<= t_3 1e-30) (/ 2.0 (pow x 3.0)) (+ (/ -2.0 x) (+ t_1 t_2))))))double code(double x) {
return ((1.0 / (x + 1.0)) - (2.0 / x)) + (1.0 / (x - 1.0));
}
↓
double code(double x) {
double t_0 = x * (x + -1.0);
double t_1 = 1.0 / (1.0 + x);
double t_2 = 1.0 / (x + -1.0);
double t_3 = (t_1 - (2.0 / x)) + t_2;
double tmp;
if (t_3 <= -5e-23) {
tmp = fma(-1.0, t_0, (fma(x, -1.0, -1.0) * fma((x + -1.0), -2.0, x))) / (t_0 * fma(x, -1.0, -1.0));
} else if (t_3 <= 1e-30) {
tmp = 2.0 / pow(x, 3.0);
} else {
tmp = (-2.0 / x) + (t_1 + t_2);
}
return tmp;
}
function code(x)
return Float64(Float64(Float64(1.0 / Float64(x + 1.0)) - Float64(2.0 / x)) + Float64(1.0 / Float64(x - 1.0)))
end
↓
function code(x)
t_0 = Float64(x * Float64(x + -1.0))
t_1 = Float64(1.0 / Float64(1.0 + x))
t_2 = Float64(1.0 / Float64(x + -1.0))
t_3 = Float64(Float64(t_1 - Float64(2.0 / x)) + t_2)
tmp = 0.0
if (t_3 <= -5e-23)
tmp = Float64(fma(-1.0, t_0, Float64(fma(x, -1.0, -1.0) * fma(Float64(x + -1.0), -2.0, x))) / Float64(t_0 * fma(x, -1.0, -1.0)));
elseif (t_3 <= 1e-30)
tmp = Float64(2.0 / (x ^ 3.0));
else
tmp = Float64(Float64(-2.0 / x) + Float64(t_1 + t_2));
end
return tmp
end
code[x_] := N[(N[(N[(1.0 / N[(x + 1.0), $MachinePrecision]), $MachinePrecision] - N[(2.0 / x), $MachinePrecision]), $MachinePrecision] + N[(1.0 / N[(x - 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
↓
code[x_] := Block[{t$95$0 = N[(x * N[(x + -1.0), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(1.0 / N[(1.0 + x), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(1.0 / N[(x + -1.0), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(t$95$1 - N[(2.0 / x), $MachinePrecision]), $MachinePrecision] + t$95$2), $MachinePrecision]}, If[LessEqual[t$95$3, -5e-23], N[(N[(-1.0 * t$95$0 + N[(N[(x * -1.0 + -1.0), $MachinePrecision] * N[(N[(x + -1.0), $MachinePrecision] * -2.0 + x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(t$95$0 * N[(x * -1.0 + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$3, 1e-30], N[(2.0 / N[Power[x, 3.0], $MachinePrecision]), $MachinePrecision], N[(N[(-2.0 / x), $MachinePrecision] + N[(t$95$1 + t$95$2), $MachinePrecision]), $MachinePrecision]]]]]]]
\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}
↓
\begin{array}{l}
t_0 := x \cdot \left(x + -1\right)\\
t_1 := \frac{1}{1 + x}\\
t_2 := \frac{1}{x + -1}\\
t_3 := \left(t_1 - \frac{2}{x}\right) + t_2\\
\mathbf{if}\;t_3 \leq -5 \cdot 10^{-23}:\\
\;\;\;\;\frac{\mathsf{fma}\left(-1, t_0, \mathsf{fma}\left(x, -1, -1\right) \cdot \mathsf{fma}\left(x + -1, -2, x\right)\right)}{t_0 \cdot \mathsf{fma}\left(x, -1, -1\right)}\\
\mathbf{elif}\;t_3 \leq 10^{-30}:\\
\;\;\;\;\frac{2}{{x}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{-2}{x} + \left(t_1 + t_2\right)\\
\end{array}
Alternatives
| Alternative 1 |
|---|
| Error | 0.8 |
|---|
| Cost | 15432 |
|---|
\[\begin{array}{l}
t_0 := \frac{1}{1 + x}\\
t_1 := \frac{1}{x + -1}\\
t_2 := \left(t_0 - \frac{2}{x}\right) + t_1\\
\mathbf{if}\;t_2 \leq -50:\\
\;\;\;\;t_0 + \frac{\frac{2 - x}{x + -1}}{x}\\
\mathbf{elif}\;t_2 \leq 10^{-30}:\\
\;\;\;\;\frac{2}{{x}^{3}} + \frac{2}{{x}^{5}}\\
\mathbf{else}:\\
\;\;\;\;\frac{-2}{x} + \left(t_0 + t_1\right)\\
\end{array}
\]
| Alternative 2 |
|---|
| Error | 0.9 |
|---|
| Cost | 8712 |
|---|
\[\begin{array}{l}
t_0 := \frac{1}{1 + x}\\
t_1 := \frac{1}{x + -1}\\
t_2 := \left(t_0 - \frac{2}{x}\right) + t_1\\
\mathbf{if}\;t_2 \leq -50:\\
\;\;\;\;t_0 + \frac{\frac{2 - x}{x + -1}}{x}\\
\mathbf{elif}\;t_2 \leq 10^{-30}:\\
\;\;\;\;\frac{2}{{x}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{-2}{x} + \left(t_0 + t_1\right)\\
\end{array}
\]
| Alternative 3 |
|---|
| Error | 10.2 |
|---|
| Cost | 1088 |
|---|
\[\frac{1}{1 + x} + \frac{-1}{1 - x} \cdot \frac{2 - x}{x}
\]
| Alternative 4 |
|---|
| Error | 10.2 |
|---|
| Cost | 960 |
|---|
\[\frac{-2}{x} + \left(\frac{1}{1 + x} + \frac{1}{x + -1}\right)
\]
| Alternative 5 |
|---|
| Error | 15.6 |
|---|
| Cost | 584 |
|---|
\[\begin{array}{l}
t_0 := \frac{-1}{x \cdot x}\\
\mathbf{if}\;x \leq -3808397.5679019354:\\
\;\;\;\;t_0\\
\mathbf{elif}\;x \leq 0.027639669428479896:\\
\;\;\;\;\frac{-2}{x}\\
\mathbf{else}:\\
\;\;\;\;t_0\\
\end{array}
\]
| Alternative 6 |
|---|
| Error | 15.5 |
|---|
| Cost | 584 |
|---|
\[\begin{array}{l}
t_0 := \frac{-1}{x \cdot x}\\
\mathbf{if}\;x \leq -3808397.5679019354:\\
\;\;\;\;t_0\\
\mathbf{elif}\;x \leq 0.027639669428479896:\\
\;\;\;\;\frac{-2}{x} - x\\
\mathbf{else}:\\
\;\;\;\;t_0\\
\end{array}
\]
| Alternative 7 |
|---|
| Error | 11.2 |
|---|
| Cost | 448 |
|---|
\[1 + \left(-1 - \frac{2}{x}\right)
\]
| Alternative 8 |
|---|
| Error | 61.7 |
|---|
| Cost | 192 |
|---|
\[\frac{1}{x}
\]
| Alternative 9 |
|---|
| Error | 30.9 |
|---|
| Cost | 192 |
|---|
\[\frac{-2}{x}
\]
| Alternative 10 |
|---|
| Error | 61.9 |
|---|
| Cost | 64 |
|---|
\[-1
\]