Jump to content

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}}==
256

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.