public double SvdzTestBig(int size) { var mat1 = new MCJCMatrix(size, size); var random = new Random(); for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { mat1.setAt(i, j, random.NextDouble(), 0); } } var lib = new MLapackLib(); Console.WriteLine("multiplication started..."); var s = new MCJRMatrix(); var u = new MCJCMatrix(); var vt = new MCJCMatrix(); var time = DateTime.Now; lib.SVDDecomposition(mat1, s, u, vt); double ms = (DateTime.Now - time).TotalMilliseconds; Console.WriteLine("time = " + ms); return(ms); }
public void SvdDecompositionTest() { var matrix1 = new NRealMatrix(2, 2); matrix1[0, 0] = 1; matrix1[0, 1] = 2; matrix1[1, 0] = 3; matrix1[1, 1] = 4; var s = new NRealMatrix(); var u = new NRealMatrix(); var vt = new NRealMatrix(); var lib = new MLapackLib(); lib.SVDDecomposition(matrix1.ManagedMatrix, s.ManagedMatrix, u.ManagedMatrix, vt.ManagedMatrix); Console.WriteLine(matrix1); Console.WriteLine(s); Console.WriteLine(u); Console.WriteLine(vt); }
public double SvdzTestBig(int size) { var mat1 = new MCJCMatrix(size, size); var random = new Random(); for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { mat1.setAt(i, j, random.NextDouble(), 0); } } var lib = new MLapackLib(); Console.WriteLine("multiplication started..."); var s = new MCJRMatrix(); var u = new MCJCMatrix(); var vt = new MCJCMatrix(); var time = DateTime.Now; lib.SVDDecomposition(mat1, s, u, vt); double ms = (DateTime.Now - time).TotalMilliseconds; Console.WriteLine("time = " + ms); return ms; }
/// <summary> /// /// </summary> /// <param name="a"></param> /// <param name="s"></param> /// <param name="u"></param> /// <param name="vt"></param> public void SvdDecomposition(NRealMatrix a, NRealMatrix s, NRealMatrix u, NRealMatrix vt) { _lib.SVDDecomposition(a.ManagedMatrix, s.ManagedMatrix, u.ManagedMatrix, vt.ManagedMatrix); }