StatMech
Loading...
Searching...
No Matches
EigenExpValues_test.cu File Reference

Classes

class  MagmaController
 

Functions

int main (int argc, char **argv)
 

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)
27 {
28 if(argc != 2) {
29 std::cerr << "Usage: 0.(This) 1.(dim)\n"
30 << " argc=" << argc << std::endl;
31 std::exit(EXIT_FAILURE);
32 }
33 int const dim = std::atoi(argv[1]);
35
36 std::mt19937 mt;
37 std::normal_distribution<double> Gaussian;
39 auto randomComplex = [&]() { return Complex_t<double>(Gaussian(mt), Gaussian(mt)); };
40
41 Eigen::MatrixX<Scalar> hMat1 = Eigen::MatrixX<Scalar>::NullaryExpr(dim, dim, randomComplex);
42 hMat1 = (hMat1 + hMat1.adjoint().eval()) / 2.0;
43 Eigen::MatrixX<Scalar> hMat2 = Eigen::MatrixX<Scalar>::NullaryExpr(dim, dim, randomComplex);
44 hMat2 = (hMat2 + hMat2.adjoint().eval()) / 2.0;
45 ObjectOnGPU< decltype(hMat1) > dMat1(hMat1);
46 ObjectOnGPU< decltype(hMat2) > dMat2(hMat2);
47 // std::cout << "hMat1:\n" << hMat1 << std::endl;
48 // std::cout << "dMat1:\n" << dMat1 << std::endl;
49 // std::cout << "hMat2:\n" << hMat2 << std::endl;
50 // std::cout << "dMat2:\n" << dMat2 << std::endl;
51
52 MatrixUtils::EigenSolver< decltype(dMat1) > dEigSolver(std::move(dMat1));
53 auto expvals_d = EigenExpValues(dEigSolver.eigenvectors(), dMat2);
54 std::cout << expvals_d << std::endl;
55
56 // MatrixUtils::EigenSolver< decltype(hMat1) > hEigSolver(std::move(hMat1));
57 // auto expvals_h = EigenExpValues(hEigSolver.eigenvectors(), hMat2);
58 // std::cout << expvals_h << std::endl;
59
60 // std::cout << "Max difference = " << (expvals_d - expvals_h).cwiseAbs().maxCoeff() << std::endl;
61
62 return EXIT_SUCCESS;
63}
auto EigenExpValues(ObjectOnGPU< Matrix1 > const &eigenvectors, ObjectOnGPU< Matrix2 > const &observable) -> Eigen::VectorX< typename Matrix1::RealScalar >
Definition EigenExpValues.cuh:9
Definition mytypes.hpp:147
static MagmaController & getInstance()
Definition ObjectOnGPU_EigenMatrix_test.cu:14
Definition MatrixUtils.hpp:20
Definition ObjectOnGPU.cuh:149