Singular value decomposition: Difference between revisions
Created Nim solution.
m (→{{header|Raku}}: superfluous) |
(Created Nim solution.) |
||
Line 301:
-0.707107 0.707107
</syntaxhighlight>
=={{header|Nim}}==
{{libheader|arraymancer}}
<syntaxhighlight lang="Nim">import arraymancer, arraymancer/linear_algebra
var m = [[3, 0], [4, 5]].toTensor().asType(float)
let (u, s, vt) = m.svd()
# With "$", floats are displayed with 6 digits.
# So we use "pretty" to display 8 digits.
echo "U:"
echo u.pretty(8), '\n'
echo "Σ:"
echo s.pretty(8), '\n'
echo "V:"
echo vt.transpose().pretty(8)
</syntaxhighlight>
{{out}}
<pre>U:
Tensor[system.float] of shape "[2, 2]" on backend "Cpu"
|-0.31622777 -0.94868330|
|-0.94868330 0.31622777|
Σ:
Tensor[system.float] of shape "[2]" on backend "Cpu"
6.7082039 2.2360680
V:
Tensor[system.float] of shape "[2, 2]" on backend "Cpu"
|-0.70710678 -0.70710678|
|-0.70710678 0.70710678|
</pre>
=={{header|Phix}}==
|