def Mat.svd

bend-blas-lapack@0.0.0.1 · mat.bend:293

import bend-blas-lapack@0.0.0.1/mat.bend as Mat
import Base
import bend-blas-lapack@0.0.0.1/lapack.bend as L

293# the thin SVD: (s, (u, vt)) with A = u diag(s) vt
294def Mat.svd(+m: Nat, +n: Nat, a: Mat<m, n>) -> IO(Result<&1, &1, U32 & String, Vec<Nat.min(m, n)> & (Mat<m, Nat.min(m, n)> & Mat<Nat.min(m, n), n>)>):
295  MatA{x} = a
296  IO.bind(Result<&1, &1, U32 & String, Array<F32> & (Array<F32> & Array<F32>)>, Result<&1, &1, U32 & String, Vec<Nat.min(m, n)> & (Mat<m, Nat.min(m, n)> & Mat<Nat.min(m, n), n>)>, L.Lapack.sgesvd(U32.from_nat(m), U32.from_nat(n), x), r => Mat.svd.wrap(m, n, r))

Uses (15)

Used by (1)