\[wj - \frac{wj \cdot e^{wj} - x}{e^{wj} + wj \cdot e^{wj}}
\]
↓
\[\begin{array}{l}
t_0 := \frac{x}{e^{wj} \cdot \left(wj + 1\right)}\\
t_1 := wj \cdot e^{wj}\\
t_2 := \frac{wj}{\mathsf{fma}\left(wj, wj, -1\right)}\\
\mathbf{if}\;wj + \frac{x - t_1}{e^{wj} + t_1} \leq 2 \cdot 10^{-10}:\\
\;\;\;\;\mathsf{fma}\left(wj, wj, \left({wj}^{4} - {wj}^{3}\right) - {wj}^{5}\right) + t_0\\
\mathbf{else}:\\
\;\;\;\;t_0 + \left(\mathsf{fma}\left(wj, 1, t_2 \cdot \left(1 - wj\right)\right) + \mathsf{fma}\left(1 - wj, t_2, \left(wj + -1\right) \cdot t_2\right)\right)\\
\end{array}
\]
(FPCore (wj x)
:precision binary64
(- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))))
↓
(FPCore (wj x)
:precision binary64
(let* ((t_0 (/ x (* (exp wj) (+ wj 1.0))))
(t_1 (* wj (exp wj)))
(t_2 (/ wj (fma wj wj -1.0))))
(if (<= (+ wj (/ (- x t_1) (+ (exp wj) t_1))) 2e-10)
(+ (fma wj wj (- (- (pow wj 4.0) (pow wj 3.0)) (pow wj 5.0))) t_0)
(+
t_0
(+
(fma wj 1.0 (* t_2 (- 1.0 wj)))
(fma (- 1.0 wj) t_2 (* (+ wj -1.0) t_2)))))))double code(double wj, double x) {
return wj - (((wj * exp(wj)) - x) / (exp(wj) + (wj * exp(wj))));
}
↓
double code(double wj, double x) {
double t_0 = x / (exp(wj) * (wj + 1.0));
double t_1 = wj * exp(wj);
double t_2 = wj / fma(wj, wj, -1.0);
double tmp;
if ((wj + ((x - t_1) / (exp(wj) + t_1))) <= 2e-10) {
tmp = fma(wj, wj, ((pow(wj, 4.0) - pow(wj, 3.0)) - pow(wj, 5.0))) + t_0;
} else {
tmp = t_0 + (fma(wj, 1.0, (t_2 * (1.0 - wj))) + fma((1.0 - wj), t_2, ((wj + -1.0) * t_2)));
}
return tmp;
}
function code(wj, x)
return Float64(wj - Float64(Float64(Float64(wj * exp(wj)) - x) / Float64(exp(wj) + Float64(wj * exp(wj)))))
end
↓
function code(wj, x)
t_0 = Float64(x / Float64(exp(wj) * Float64(wj + 1.0)))
t_1 = Float64(wj * exp(wj))
t_2 = Float64(wj / fma(wj, wj, -1.0))
tmp = 0.0
if (Float64(wj + Float64(Float64(x - t_1) / Float64(exp(wj) + t_1))) <= 2e-10)
tmp = Float64(fma(wj, wj, Float64(Float64((wj ^ 4.0) - (wj ^ 3.0)) - (wj ^ 5.0))) + t_0);
else
tmp = Float64(t_0 + Float64(fma(wj, 1.0, Float64(t_2 * Float64(1.0 - wj))) + fma(Float64(1.0 - wj), t_2, Float64(Float64(wj + -1.0) * t_2))));
end
return tmp
end
code[wj_, x_] := N[(wj - N[(N[(N[(wj * N[Exp[wj], $MachinePrecision]), $MachinePrecision] - x), $MachinePrecision] / N[(N[Exp[wj], $MachinePrecision] + N[(wj * N[Exp[wj], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
↓
code[wj_, x_] := Block[{t$95$0 = N[(x / N[(N[Exp[wj], $MachinePrecision] * N[(wj + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(wj * N[Exp[wj], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(wj / N[(wj * wj + -1.0), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(wj + N[(N[(x - t$95$1), $MachinePrecision] / N[(N[Exp[wj], $MachinePrecision] + t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2e-10], N[(N[(wj * wj + N[(N[(N[Power[wj, 4.0], $MachinePrecision] - N[Power[wj, 3.0], $MachinePrecision]), $MachinePrecision] - N[Power[wj, 5.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + t$95$0), $MachinePrecision], N[(t$95$0 + N[(N[(wj * 1.0 + N[(t$95$2 * N[(1.0 - wj), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(1.0 - wj), $MachinePrecision] * t$95$2 + N[(N[(wj + -1.0), $MachinePrecision] * t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
wj - \frac{wj \cdot e^{wj} - x}{e^{wj} + wj \cdot e^{wj}}
↓
\begin{array}{l}
t_0 := \frac{x}{e^{wj} \cdot \left(wj + 1\right)}\\
t_1 := wj \cdot e^{wj}\\
t_2 := \frac{wj}{\mathsf{fma}\left(wj, wj, -1\right)}\\
\mathbf{if}\;wj + \frac{x - t_1}{e^{wj} + t_1} \leq 2 \cdot 10^{-10}:\\
\;\;\;\;\mathsf{fma}\left(wj, wj, \left({wj}^{4} - {wj}^{3}\right) - {wj}^{5}\right) + t_0\\
\mathbf{else}:\\
\;\;\;\;t_0 + \left(\mathsf{fma}\left(wj, 1, t_2 \cdot \left(1 - wj\right)\right) + \mathsf{fma}\left(1 - wj, t_2, \left(wj + -1\right) \cdot t_2\right)\right)\\
\end{array}
Alternatives
| Alternative 1 |
|---|
| Error | 0.2 |
|---|
| Cost | 53252 |
|---|
\[\begin{array}{l}
t_0 := wj \cdot e^{wj}\\
\mathbf{if}\;wj + \frac{x - t_0}{e^{wj} + t_0} \leq 2 \cdot 10^{-10}:\\
\;\;\;\;\mathsf{fma}\left(wj, wj, \left({wj}^{4} - {wj}^{3}\right) - {wj}^{5}\right) + \frac{x}{e^{wj} \cdot \left(wj + 1\right)}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(wj - \frac{x}{e^{wj}}, \frac{-1}{wj + 1}, wj\right)\\
\end{array}
\]
| Alternative 2 |
|---|
| Error | 0.7 |
|---|
| Cost | 46468 |
|---|
\[\begin{array}{l}
t_0 := wj \cdot e^{wj}\\
\mathbf{if}\;wj + \frac{x - t_0}{e^{wj} + t_0} \leq 2 \cdot 10^{-10}:\\
\;\;\;\;x + \mathsf{fma}\left(wj, wj, \left({wj}^{4} - {wj}^{3}\right) - {wj}^{5}\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(wj - \frac{x}{e^{wj}}, \frac{-1}{wj + 1}, wj\right)\\
\end{array}
\]
| Alternative 3 |
|---|
| Error | 0.7 |
|---|
| Cost | 39876 |
|---|
\[\begin{array}{l}
t_0 := wj \cdot e^{wj}\\
\mathbf{if}\;wj + \frac{x - t_0}{e^{wj} + t_0} \leq 2 \cdot 10^{-10}:\\
\;\;\;\;x + \mathsf{fma}\left(wj, wj, {wj}^{4} - {wj}^{3}\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(wj - \frac{x}{e^{wj}}, \frac{-1}{wj + 1}, wj\right)\\
\end{array}
\]
| Alternative 4 |
|---|
| Error | 1.1 |
|---|
| Cost | 13508 |
|---|
\[\begin{array}{l}
\mathbf{if}\;wj \leq 1.38 \cdot 10^{-5}:\\
\;\;\;\;\left(wj \cdot wj - \left(\left(wj \cdot x\right) \cdot 2 - x\right)\right) - {wj}^{3}\\
\mathbf{else}:\\
\;\;\;\;wj \cdot \left(1 - e^{wj - \left(wj + \mathsf{log1p}\left(wj\right)\right)}\right)\\
\end{array}
\]
| Alternative 5 |
|---|
| Error | 1.1 |
|---|
| Cost | 7428 |
|---|
\[\begin{array}{l}
\mathbf{if}\;wj \leq 1.38 \cdot 10^{-5}:\\
\;\;\;\;\left(wj \cdot wj - \left(\left(wj \cdot x\right) \cdot 2 - x\right)\right) - {wj}^{3}\\
\mathbf{else}:\\
\;\;\;\;wj - \frac{wj}{wj + 1}\\
\end{array}
\]
| Alternative 6 |
|---|
| Error | 1.0 |
|---|
| Cost | 7236 |
|---|
\[\begin{array}{l}
\mathbf{if}\;wj \leq 1.38 \cdot 10^{-5}:\\
\;\;\;\;\frac{x}{e^{wj} \cdot \left(wj + 1\right)} + wj \cdot wj\\
\mathbf{else}:\\
\;\;\;\;wj - \frac{wj}{wj + 1}\\
\end{array}
\]
| Alternative 7 |
|---|
| Error | 1.7 |
|---|
| Cost | 580 |
|---|
\[\begin{array}{l}
\mathbf{if}\;wj \leq 1.08 \cdot 10^{-5}:\\
\;\;\;\;x + wj \cdot wj\\
\mathbf{else}:\\
\;\;\;\;wj - \frac{wj}{wj + 1}\\
\end{array}
\]
| Alternative 8 |
|---|
| Error | 2.4 |
|---|
| Cost | 320 |
|---|
\[x + wj \cdot wj
\]
| Alternative 9 |
|---|
| Error | 61.2 |
|---|
| Cost | 64 |
|---|
\[wj
\]
| Alternative 10 |
|---|
| Error | 9.3 |
|---|
| Cost | 64 |
|---|
\[x
\]