70 std::cout <<
"Eigen Dense\t" <<
density * 100 <<
"%\n";
84 std::cout <<
" a' * v:\t" <<
timer.best() << endl;
90 std::cout <<
"Eigen sparse\t" << sm1.nonZeros() / float(sm1.rows() * sm1.cols()) * 100 <<
"%\n";
92 BENCH(
asm(
"#myc");
v2 = sm1 *
v1;
asm(
"#myd");)
94 <<
" * / sec " << endl;
98 v2 = sm1.transpose() *
v1;
102 std::cout <<
" a' * v:\t" <<
timer.best() /
REPEAT << endl;
119 std::cout <<
"GMM++ sparse\t" <<
density * 100 <<
"%\n";
124 std::vector<Scalar> gmmV1(
cols), gmmV2(
cols);
128 BENCH(
asm(
"#myx"); gmm::mult(
m1, gmmV1, gmmV2);
asm(
"#myy");)
129 std::cout <<
" a * v:\t" <<
timer.value() << endl;
131 BENCH(gmm::mult(gmm::transposed(
m1), gmmV1, gmmV2);)
132 std::cout <<
" a' * v:\t" <<
timer.value() << endl;
138 std::cout <<
"ublas sparse\t" <<
density * 100 <<
"%\n";
142 boost::numeric::ublas::vector<Scalar> uv1, uv2;
151 std::cout <<
" a * v:\t" <<
timer.value() << endl;
161 std::cout <<
"MTL4\t" <<
density * 100 <<
"%\n";
164 mtl::dense_vector<Scalar> mtlV1(
cols, 1.0);
165 mtl::dense_vector<Scalar> mtlV2(
cols, 1.0);
169 for (
int k = 0;
k <
REPEAT; ++
k) mtlV2 =
m1 * mtlV1;
171 std::cout <<
" a * v:\t" <<
timer.value() << endl;
177 std::cout <<
" a' * v:\t" <<
timer.value() << endl;
void eiToGmm(const EigenSparseMatrix &src, GmmSparse &dst)
Definition: BenchSparseUtil.h:64
void eiToUblasVec(const EigenType &src, UblasType &dst)
Definition: BenchSparseUtil.h:119
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
void fillMatrix2(int nnzPerCol, int rows, int cols, EigenSparseMatrix &dst)
Definition: BenchSparseUtil.h:38
gmm::csc_matrix< Scalar > GmmSparse
Definition: BenchSparseUtil.h:62
boost::numeric::ublas::compressed_matrix< Scalar, boost::numeric::ublas::column_major > UBlasSparse
Definition: BenchSparseUtil.h:110
void eiToMtl(const EigenSparseMatrix &src, MtlSparse &dst)
Definition: BenchSparseUtil.h:76
void eiToUblas(const EigenSparseMatrix &src, UBlasSparse &dst)
Definition: BenchSparseUtil.h:112
Map< RowVectorXf > v2(M2.data(), M2.size())
M1<< 1, 2, 3, 4, 5, 6, 7, 8, 9;Map< RowVectorXf > v1(M1.data(), M1.size())
int rows
Definition: Tutorial_commainit_02.cpp:1
int cols
Definition: Tutorial_commainit_02.cpp:1
Definition: BenchTimer.h:55
A matrix or vector expression mapping an existing array of data.
Definition: Map.h:96
char * trans
Definition: level2_impl.h:240
char char char int int * k
Definition: level2_impl.h:374
@ REAL_TIMER
Definition: BenchTimer.h:46
double timer
Definition: oomph_metis_from_parmetis_3.1.1/struct.h:210
EIGEN_DONT_INLINE void prod(const Lhs &a, const Rhs &b, Res &c)
Definition: product_threshold.cpp:53
#define MINDENSITY
Definition: sparse_dense_product.cpp:22
#define BENCH(X)
Definition: sparse_dense_product.cpp:29
#define SIZE
Definition: sparse_dense_product.cpp:8
#define DENSITY
Definition: sparse_dense_product.cpp:12