def Mat.svd_values
import bend-blas-lapack@0.0.0.1/mat.bend as Matimport Base
import bend-blas-lapack@0.0.0.1/lapack.bend as L
271# the singular values, largest first
272def Mat.svd_values(+m: Nat, +n: Nat, a: Mat<m, n>) -> IO(Result<&1, &1, U32 & String, Vec<Nat.min(m, n)>>):
273 MatA{x} = a
274 IO.bind(Result<&1, &1, U32 & String, Array<F32>>, Result<&1, &1, U32 & String, Vec<Nat.min(m, n)>>, L.Lapack.sgesvd_s(U32.from_nat(m), U32.from_nat(n), x), r => Vec.wrap(Nat.min(m, n), r))