File: svd.cpp

package info (click to toggle)
dmrgpp 6.06-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 113,900 kB
  • sloc: cpp: 80,986; perl: 14,772; ansic: 2,923; makefile: 83; sh: 17
file content (38 lines) | stat: -rw-r--r-- 625 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include "Svd.h"
#include "Matrix.h"
#include "Vector.h"

int main()
{
	typedef PsimagLite::Matrix<double> MatrixType;

	MatrixType a(4, 2);
	a(0, 0) = 2;
	a(0, 1) = 4;
	a(1, 0) = 1;
	a(1, 1) = 3;

	std::cout << "A\n";
	std::cout << a;

	MatrixType m(a);

	PsimagLite::Vector<double>::Type s;
	MatrixType vt;

	PsimagLite::Svd<double> svd;
	svd('A', a, s, vt);

	std::cout << "U\n";
	std::cout << a;
	std::cout << "S\n";
	std::cout << s;

	std::cout << "\n\nFallback\n";
	PsimagLite::Svd<double> svdFallback("gesvd");
	svdFallback('A', m, s, vt);
	std::cout << "U\n";
	std::cout << m;
	std::cout << "S\n";
	std::cout << s;
}