\[\left(\left(x \cdot y + z \cdot z\right) + z \cdot z\right) + z \cdot z
\]
↓
\[\mathsf{fma}\left(z, z + z, \mathsf{fma}\left(x, y, z \cdot z\right)\right)
\]
(FPCore (x y z)
:precision binary64
(+ (+ (+ (* x y) (* z z)) (* z z)) (* z z)))
↓
(FPCore (x y z) :precision binary64 (fma z (+ z z) (fma x y (* z z))))
double code(double x, double y, double z) {
return (((x * y) + (z * z)) + (z * z)) + (z * z);
}
↓
double code(double x, double y, double z) {
return fma(z, (z + z), fma(x, y, (z * z)));
}
function code(x, y, z)
return Float64(Float64(Float64(Float64(x * y) + Float64(z * z)) + Float64(z * z)) + Float64(z * z))
end
↓
function code(x, y, z)
return fma(z, Float64(z + z), fma(x, y, Float64(z * z)))
end
code[x_, y_, z_] := N[(N[(N[(N[(x * y), $MachinePrecision] + N[(z * z), $MachinePrecision]), $MachinePrecision] + N[(z * z), $MachinePrecision]), $MachinePrecision] + N[(z * z), $MachinePrecision]), $MachinePrecision]
↓
code[x_, y_, z_] := N[(z * N[(z + z), $MachinePrecision] + N[(x * y + N[(z * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\left(\left(x \cdot y + z \cdot z\right) + z \cdot z\right) + z \cdot z
↓
\mathsf{fma}\left(z, z + z, \mathsf{fma}\left(x, y, z \cdot z\right)\right)