\[\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\]
↓
\[\left(\log z - t\right) + \mathsf{fma}\left(a + -0.5, \log t, \log \left(x + y\right)\right)
\]
(FPCore (x y z t a)
:precision binary64
(+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))))
↓
(FPCore (x y z t a)
:precision binary64
(+ (- (log z) t) (fma (+ a -0.5) (log t) (log (+ x y)))))
double code(double x, double y, double z, double t, double a) {
return ((log((x + y)) + log(z)) - t) + ((a - 0.5) * log(t));
}
↓
double code(double x, double y, double z, double t, double a) {
return (log(z) - t) + fma((a + -0.5), log(t), log((x + y)));
}
function code(x, y, z, t, a)
return Float64(Float64(Float64(log(Float64(x + y)) + log(z)) - t) + Float64(Float64(a - 0.5) * log(t)))
end
↓
function code(x, y, z, t, a)
return Float64(Float64(log(z) - t) + fma(Float64(a + -0.5), log(t), log(Float64(x + y))))
end
code[x_, y_, z_, t_, a_] := N[(N[(N[(N[Log[N[(x + y), $MachinePrecision]], $MachinePrecision] + N[Log[z], $MachinePrecision]), $MachinePrecision] - t), $MachinePrecision] + N[(N[(a - 0.5), $MachinePrecision] * N[Log[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
↓
code[x_, y_, z_, t_, a_] := N[(N[(N[Log[z], $MachinePrecision] - t), $MachinePrecision] + N[(N[(a + -0.5), $MachinePrecision] * N[Log[t], $MachinePrecision] + N[Log[N[(x + y), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
↓
\left(\log z - t\right) + \mathsf{fma}\left(a + -0.5, \log t, \log \left(x + y\right)\right)
Alternatives
| Alternative 1 |
|---|
| Error | 1.4 |
|---|
| Cost | 20168 |
|---|
\[\begin{array}{l}
t_1 := \log z - t\\
\mathbf{if}\;a \leq -270000:\\
\;\;\;\;\mathsf{fma}\left(\log t, a, t_1\right)\\
\mathbf{elif}\;a \leq 2.05 \cdot 10^{-26}:\\
\;\;\;\;t_1 + \left(\log \left(x + y\right) + -0.5 \cdot \log t\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a + -0.5\right) \cdot \log t - t\\
\end{array}
\]
| Alternative 2 |
|---|
| Error | 1.0 |
|---|
| Cost | 20036 |
|---|
\[\begin{array}{l}
\mathbf{if}\;t \leq 112:\\
\;\;\;\;\log \left(x + y\right) + \left(\log z + \left(a + -0.5\right) \cdot \log t\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\log t, a, \log z - t\right)\\
\end{array}
\]
| Alternative 3 |
|---|
| Error | 0.3 |
|---|
| Cost | 20032 |
|---|
\[\left(\left(\log z - t\right) + \log \left(x + y\right)\right) + \left(a + -0.5\right) \cdot \log t
\]
| Alternative 4 |
|---|
| Error | 0.3 |
|---|
| Cost | 20032 |
|---|
\[\left(\left(\log z + \log \left(x + y\right)\right) - t\right) + \left(a + -0.5\right) \cdot \log t
\]
| Alternative 5 |
|---|
| Error | 12.6 |
|---|
| Cost | 19908 |
|---|
\[\begin{array}{l}
\mathbf{if}\;t \leq 112:\\
\;\;\;\;\log z + \left(\log y + \left(a + -0.5\right) \cdot \log t\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\log t, a, \log z - t\right)\\
\end{array}
\]
| Alternative 6 |
|---|
| Error | 8.8 |
|---|
| Cost | 19652 |
|---|
\[\begin{array}{l}
\mathbf{if}\;t \leq 7 \cdot 10^{-7}:\\
\;\;\;\;\log \left(z \cdot \left(x + y\right)\right) + \left(a + -0.5\right) \cdot \log t\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\log t, a, \log z - t\right)\\
\end{array}
\]
| Alternative 7 |
|---|
| Error | 17.2 |
|---|
| Cost | 13840 |
|---|
\[\begin{array}{l}
t_1 := \log z - t\\
\mathbf{if}\;a \leq -2.3 \cdot 10^{-126}:\\
\;\;\;\;t_1 + a \cdot \log t\\
\mathbf{elif}\;a \leq -3.2 \cdot 10^{-199}:\\
\;\;\;\;-0.5 \cdot \log t + \log \left(z \cdot y\right)\\
\mathbf{elif}\;a \leq 6.2 \cdot 10^{-174}:\\
\;\;\;\;t_1 + \log \left(x + y\right)\\
\mathbf{elif}\;a \leq 5.6 \cdot 10^{-102}:\\
\;\;\;\;\log \left(\frac{z \cdot y}{{t}^{\left(0.5 - a\right)}}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a + -0.5\right) \cdot \log t - t\\
\end{array}
\]
| Alternative 8 |
|---|
| Error | 17.0 |
|---|
| Cost | 13776 |
|---|
\[\begin{array}{l}
t_1 := -0.5 \cdot \log t + \log \left(z \cdot y\right)\\
t_2 := \log z - t\\
\mathbf{if}\;a \leq -2.5 \cdot 10^{-126}:\\
\;\;\;\;t_2 + a \cdot \log t\\
\mathbf{elif}\;a \leq -5 \cdot 10^{-198}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;a \leq 6.2 \cdot 10^{-174}:\\
\;\;\;\;t_2 + \log \left(x + y\right)\\
\mathbf{elif}\;a \leq 6 \cdot 10^{-102}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;\left(a + -0.5\right) \cdot \log t - t\\
\end{array}
\]
| Alternative 9 |
|---|
| Error | 8.8 |
|---|
| Cost | 13636 |
|---|
\[\begin{array}{l}
\mathbf{if}\;t \leq 8.5 \cdot 10^{-7}:\\
\;\;\;\;\log \left(z \cdot \left(x + y\right)\right) + \left(a + -0.5\right) \cdot \log t\\
\mathbf{else}:\\
\;\;\;\;\left(\log z - t\right) + a \cdot \log t\\
\end{array}
\]
| Alternative 10 |
|---|
| Error | 14.1 |
|---|
| Cost | 13513 |
|---|
\[\begin{array}{l}
\mathbf{if}\;a \leq -1.65 \cdot 10^{-8} \lor \neg \left(a \leq 8.2 \cdot 10^{-27}\right):\\
\;\;\;\;\left(a + -0.5\right) \cdot \log t - t\\
\mathbf{else}:\\
\;\;\;\;\left(\log z - t\right) + \log \left(x + y\right)\\
\end{array}
\]
| Alternative 11 |
|---|
| Error | 17.3 |
|---|
| Cost | 13508 |
|---|
\[\begin{array}{l}
\mathbf{if}\;t \leq 9.5 \cdot 10^{-7}:\\
\;\;\;\;\log \left(z \cdot y\right) + \left(a + -0.5\right) \cdot \log t\\
\mathbf{else}:\\
\;\;\;\;\left(\log z - t\right) + a \cdot \log t\\
\end{array}
\]
| Alternative 12 |
|---|
| Error | 15.0 |
|---|
| Cost | 13248 |
|---|
\[\left(\log z - t\right) + a \cdot \log t
\]
| Alternative 13 |
|---|
| Error | 23.0 |
|---|
| Cost | 6857 |
|---|
\[\begin{array}{l}
\mathbf{if}\;a \leq -7500000000 \lor \neg \left(a \leq 6.5 \cdot 10^{+80}\right):\\
\;\;\;\;a \cdot \log t\\
\mathbf{else}:\\
\;\;\;\;\log z - t\\
\end{array}
\]
| Alternative 14 |
|---|
| Error | 14.9 |
|---|
| Cost | 6848 |
|---|
\[\left(a + -0.5\right) \cdot \log t - t
\]
| Alternative 15 |
|---|
| Error | 37.5 |
|---|
| Cost | 6724 |
|---|
\[\begin{array}{l}
\mathbf{if}\;t \leq 105:\\
\;\;\;\;\log \left(x + y\right)\\
\mathbf{else}:\\
\;\;\;\;-t\\
\end{array}
\]
| Alternative 16 |
|---|
| Error | 24.6 |
|---|
| Cost | 6724 |
|---|
\[\begin{array}{l}
\mathbf{if}\;t \leq 4.6 \cdot 10^{+48}:\\
\;\;\;\;a \cdot \log t\\
\mathbf{else}:\\
\;\;\;\;-t\\
\end{array}
\]
| Alternative 17 |
|---|
| Error | 39.7 |
|---|
| Cost | 128 |
|---|
\[-t
\]