66 bool densedone =
false;
76 std::cout <<
"Eigen Dense\t" <<
density * 100 <<
"%\n";
82 BENCH(
x =
m1.marked<UpperTriangular>().solveTriangular(
b);)
83 std::cout <<
" colmajor^-1 * b:\t" <<
timer.value() << endl;
86 BENCH(
x =
m2.marked<UpperTriangular>().solveTriangular(
b);)
87 std::cout <<
" rowmajor^-1 * b:\t" <<
timer.value() << endl;
94 std::cout <<
"Eigen sparse\t" <<
density * 100 <<
"%\n";
97 BENCH(
x = sm1.solveTriangular(
b);)
98 std::cout <<
" colmajor^-1 * b:\t" <<
timer.value() << endl;
101 BENCH(
x = sm2.solveTriangular(
b);)
102 std::cout <<
" rowmajor^-1 * b:\t" <<
timer.value() << endl;
119 std::cout <<
"CSparse \t" <<
density * 100 <<
"%\n";
121 eiToCSparse(sm1,
m1);
124 std::cerr <<
"cs_lsolve failed\n";
127 std::cout << " colmajor^-1 *
b:\
t" <<
timer.
value() << endl;
134 std::cout <<
"GMM++ sparse\t" <<
density * 100 <<
"%\n";
136 gmm::csr_matrix<Scalar>
m2;
139 std::vector<Scalar> gmmX(
cols), gmmB(
cols);
144 BENCH(gmm::upper_tri_solve(
m1, gmmX,
false);)
145 std::cout <<
" colmajor^-1 * b:\t" <<
timer.value() << endl;
149 BENCH(gmm::upper_tri_solve(
m2, gmmX,
false);)
151 std::cout <<
" rowmajor^-1 * b:\t" <<
timer.value() << endl;
159 std::cout <<
"MTL4\t" <<
density * 100 <<
"%\n";
164 mtl::dense_vector<Scalar>
x(
rows, 1.0);
165 mtl::dense_vector<Scalar>
b(
rows, 1.0);
168 std::cout <<
" colmajor^-1 * b:\t" <<
timer.value() << endl;
172 std::cout <<
" rowmajor^-1 * b:\t" <<
timer.value() << endl;
185 for (
int _j=0; _j<10; ++_j) {
186 Matrix4f
m = Matrix4f::Random();
187 Vector4f
b = Vector4f::Random();
188 Vector4f
x = Vector4f::Random();
190 for (
int _k=0; _k<1000000; ++_k) {
191 b =
m.inverseProduct(
b);
195 std::cout <<
"4x4 :\t" <<
timer.value() << endl;
200 for (
int _j=0; _j<10; ++_j) {
201 Matrix4f
m = Matrix4f::Random();
202 Vector4f
b = Vector4f::Random();
203 Vector4f
x = Vector4f::Random();
205 for (
int _k=0; _k<1000000; ++_k) {
206 m.inverseProductInPlace(
x);
210 std::cout <<
"4x4 IP :\t" <<
timer.value() << endl;
void eiToGmm(const EigenSparseMatrix &src, GmmSparse &dst)
Definition: BenchSparseUtil.h:64
mtl::compressed2D< Scalar, mtl::matrix::parameters< mtl::tag::row_major > > MtlSparseRowMajor
Definition: BenchSparseUtil.h:75
void eiToDense(const EigenSparseMatrix &src, DenseMatrix &dst)
Definition: BenchSparseUtil.h:54
mtl::compressed2D< Scalar, mtl::matrix::parameters< mtl::tag::col_major > > MtlSparse
Definition: BenchSparseUtil.h:74
gmm::csc_matrix< Scalar > GmmSparse
Definition: BenchSparseUtil.h:62
void eiToMtl(const EigenSparseMatrix &src, MtlSparse &dst)
Definition: BenchSparseUtil.h:76
Matrix< Scalar, Dynamic, 1 > DenseVector
Definition: BenchSparseUtil.h:24
Scalar * b
Definition: benchVecAdd.cpp:17
Definition: BenchTimer.h:55
A matrix or vector expression mapping an existing array of data.
Definition: Map.h:96
A versatible sparse matrix representation.
Definition: SparseMatrix.h:121
EIGEN_BLAS_FUNC() copy(int *n, RealScalar *px, int *incx, RealScalar *py, int *incy)
Definition: level1_impl.h:32
int * m
Definition: level2_cplx_impl.h:294
squared absolute value
Definition: GlobalFunctions.h:87
list x
Definition: plotDoE.py:28
t
Definition: plotPSD.py:36
double timer
Definition: oomph_metis_from_parmetis_3.1.1/struct.h:210
#define MINDENSITY
Definition: sparse_trisolver.cpp:23
void fillMatrix(float density, int rows, int cols, EigenSparseTriMatrix &dst)
Definition: sparse_trisolver.cpp:43
#define BENCH(X)
Definition: sparse_trisolver.cpp:30
#define SIZE
Definition: sparse_trisolver.cpp:9
#define DENSITY
Definition: sparse_trisolver.cpp:13