23 #include <mrpt/examples_config.h>
24 string myDataDir(MRPT_EXAMPLES_BASE_DIRECTORY +
string(
"math_matrix_example/"));
32 A.loadFromTextFile(
myDataDir +
string(
"in_for_cholesky.txt"));
35 cout <<
"Cholesky decomposition result:" << endl << B;
41 const double numbers[] = {1, 2, 3, 4, 5, 6};
43 cout <<
"Initialized matrix (I): " << endl << M << endl;
45 const double numbers2[] = {0.5, 4.5, 6.7, 8.9, 15.2};
48 cout <<
"Initialized double vector: " <<
v1 << endl;
52 cout <<
"Initialized int vector: " <<
v2 << endl;
71 cout <<
"reading H.txt...";
72 H.loadFromTextFile(
myDataDir +
string(
"H.txt"));
75 cout <<
"reading C.txt...";
76 C.loadFromTextFile(
myDataDir +
string(
"C.txt"));
80 H.multiply_HCHt(C, RES);
81 cout <<
"Saving RES.txt ...";
82 RES.saveToTextFile(
"RES.txt");
86 H.loadFromTextFile(
myDataDir +
string(
"H_col.txt"));
87 cout <<
"H*C*(~H) = " << H.multiply_HCHt_scalar(C) << endl;
88 cout <<
"Should be= 31.434 " << endl;
91 H.loadFromTextFile(
myDataDir +
string(
"H_row.txt"));
92 cout <<
"Loaded H: " << endl << H;
93 cout <<
"H*C*(~H) = " << H.multiply_HCHt_scalar(C) << endl;
94 cout <<
"Should be= 31.434" << endl;
97 Hfix.loadFromTextFile(
myDataDir +
string(
"H_row.txt"));
98 cout <<
"Again, loaded as a fixed matrix: " << endl << Hfix;
110 M.loadFromTextFile(
myDataDir +
string(
"matrixA.txt"));
113 M.eigenVectors(Z, D);
118 for (I = 0; I < N; I++) RES = Z * D * (~Z);
120 "Operation 'RES= Z * D * (~Z)' done in %.03fus\n",
121 1e6 * tictac.
Tac() / N);
126 for (I = 0; I < N; I++) Z.multiply_HCHt(D, RES);
128 "Operation 'Z.multiply_HCHt(D,RES)' done in %.03fus\n",
129 1e6f * tictac.
Tac() / N);
146 A.loadFromTextFile(
myDataDir +
string(
"matrixA.txt"));
147 printf(
"A matrix loaded:\n");
150 A.eigenVectors(Z, D);
151 cout <<
"Z:\n" << Z <<
"D:\n" << D;
153 D = D.array().sqrt().matrix();
185 cout <<
"Matrix:\n" << m << endl;
188 m.saveToTextFile(
"matrix1.txt");
190 l.loadFromTextFile(
myDataDir +
string(
"matrix1.txt"));
192 cout <<
"Read (text file) in " << 1e6 *
t <<
"us:\n" << l << endl;
196 cout <<
"Laplacian:\n" << l << endl;
199 m.eigenVectors(Z, D);
201 cout <<
"Eigenvectors: M = Z * D * Z':\n Z=\n" << Z << endl;
202 cout <<
"D=\n" << D << endl;
204 cout <<
"Z * D * Z'=\n" << Z * D * (~Z) << endl;
210 const double numbers[] = {1, 2, 3, 10, 4, 5, 6, 14, 10, -5, -3, 1};
214 vector<CVectorDouble>
samples(4);
215 for (
size_t i = 0; i < 4; i++)
218 for (
size_t j = 0; j < 3; j++)
samples[i][j] = Mdyn(i, j);
221 cout <<
"COV (vector of vectors): " << endl
222 << mrpt::math::covVector<vector<CVectorDouble>, Eigen::MatrixXd>(
248 cout <<
"MRPT exception caught: " << e.what() << endl;
253 printf(
"Untyped exception!!");