MCPcopy Create free account
hub / github.com/PX4/eigen / main

Function main

bench/sparse_trisolver.cpp:56–219  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

54}
55
56int main(int argc, char *argv[])
57{
58 int rows = SIZE;
59 int cols = SIZE;
60 float density = DENSITY;
61 BenchTimer timer;
62 #if 1
63 EigenSparseTriMatrix sm1(rows,cols);
64 typedef Matrix<Scalar,Dynamic,1> DenseVector;
65 DenseVector b = DenseVector::Random(cols);
66 DenseVector x = DenseVector::Random(cols);
67
68 bool densedone = false;
69
70 for (float density = DENSITY; density>=MINDENSITY; density*=0.5)
71 {
72 EigenSparseTriMatrix sm1(rows, cols);
73 fillMatrix(density, rows, cols, sm1);
74
75 // dense matrices
76 #ifdef DENSEMATRIX
77 if (!densedone)
78 {
79 densedone = true;
80 std::cout << "Eigen Dense\t" << density*100 << "%\n";
81 DenseMatrix m1(rows,cols);
82 Matrix<Scalar,Dynamic,Dynamic,Dynamic,Dynamic,RowMajorBit> m2(rows,cols);
83 eiToDense(sm1, m1);
84 m2 = m1;
85
86 BENCH(x = m1.marked<UpperTriangular>().solveTriangular(b);)
87 std::cout << " colmajor^-1 * b:\t" << timer.value() << endl;
88// std::cerr << x.transpose() << "\n";
89
90 BENCH(x = m2.marked<UpperTriangular>().solveTriangular(b);)
91 std::cout << " rowmajor^-1 * b:\t" << timer.value() << endl;
92// std::cerr << x.transpose() << "\n";
93 }
94 #endif
95
96 // eigen sparse matrices
97 {
98 std::cout << "Eigen sparse\t" << density*100 << "%\n";
99 EigenSparseTriMatrixRow sm2 = sm1;
100
101 BENCH(x = sm1.solveTriangular(b);)
102 std::cout << " colmajor^-1 * b:\t" << timer.value() << endl;
103// std::cerr << x.transpose() << "\n";
104
105 BENCH(x = sm2.solveTriangular(b);)
106 std::cout << " rowmajor^-1 * b:\t" << timer.value() << endl;
107// std::cerr << x.transpose() << "\n";
108
109// x = b;
110// BENCH(sm1.inverseProductInPlace(x);)
111// std::cout << " colmajor^-1 * b:\t" << timer.value() << " (inplace)" << endl;
112// std::cerr << x.transpose() << "\n";
113//

Callers

nothing calls this directly

Calls 11

eiToDenseFunction · 0.85
eiToCSparseFunction · 0.85
copyFunction · 0.85
eiToMtlFunction · 0.85
fillMatrixFunction · 0.70
eiToGmmFunction · 0.70
valueMethod · 0.45
dataMethod · 0.45
stopMethod · 0.45
resetMethod · 0.45
startMethod · 0.45

Tested by

no test coverage detected