\[\left(x \cdot y + z \cdot t\right) + a \cdot b
\]
↓
\[\begin{array}{l}
\mathbf{if}\;a \cdot b \leq -1 \cdot 10^{+30}:\\
\;\;\;\;\mathsf{fma}\left(a, b, y \cdot x\right)\\
\mathbf{elif}\;a \cdot b \leq -2 \cdot 10^{-46}:\\
\;\;\;\;a \cdot b + t \cdot z\\
\mathbf{elif}\;a \cdot b \leq 2 \cdot 10^{-72}:\\
\;\;\;\;\mathsf{fma}\left(y, x, t \cdot z\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(y, x, a \cdot b\right)\\
\end{array}
\]
(FPCore (x y z t a b) :precision binary64 (+ (+ (* x y) (* z t)) (* a b)))
↓
(FPCore (x y z t a b)
:precision binary64
(if (<= (* a b) -1e+30)
(fma a b (* y x))
(if (<= (* a b) -2e-46)
(+ (* a b) (* t z))
(if (<= (* a b) 2e-72) (fma y x (* t z)) (fma y x (* a b))))))
double code(double x, double y, double z, double t, double a, double b) {
return ((x * y) + (z * t)) + (a * b);
}
↓
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((a * b) <= -1e+30) {
tmp = fma(a, b, (y * x));
} else if ((a * b) <= -2e-46) {
tmp = (a * b) + (t * z);
} else if ((a * b) <= 2e-72) {
tmp = fma(y, x, (t * z));
} else {
tmp = fma(y, x, (a * b));
}
return tmp;
}
function code(x, y, z, t, a, b)
return Float64(Float64(Float64(x * y) + Float64(z * t)) + Float64(a * b))
end
↓
function code(x, y, z, t, a, b)
tmp = 0.0
if (Float64(a * b) <= -1e+30)
tmp = fma(a, b, Float64(y * x));
elseif (Float64(a * b) <= -2e-46)
tmp = Float64(Float64(a * b) + Float64(t * z));
elseif (Float64(a * b) <= 2e-72)
tmp = fma(y, x, Float64(t * z));
else
tmp = fma(y, x, Float64(a * b));
end
return tmp
end
\[\begin{array}{l}
t_1 := a \cdot b + y \cdot x\\
\mathbf{if}\;a \cdot b \leq -1.1275804822513018 \cdot 10^{+30}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;a \cdot b \leq -2.1898384731153152 \cdot 10^{-46}:\\
\;\;\;\;a \cdot b + t \cdot z\\
\mathbf{elif}\;a \cdot b \leq 1.5924005794048365 \cdot 10^{-72}:\\
\;\;\;\;y \cdot x + t \cdot z\\
\mathbf{else}:\\
\;\;\;\;t_1\\
\end{array}
\]
Alternative 6
Error
15.0
Cost
976
\[\begin{array}{l}
t_1 := a \cdot b + y \cdot x\\
t_2 := a \cdot b + t \cdot z\\
\mathbf{if}\;z \leq -1.95 \cdot 10^{+92}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;z \leq -1.4 \cdot 10^{+64}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;z \leq -1.9064006968758767 \cdot 10^{-53}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;z \leq 9.914749661589495 \cdot 10^{-148}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;t_2\\
\end{array}
\]