aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/sparse_dense_product.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2009-09-18 15:36:05 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2009-09-18 15:36:05 +0200
commit0b60027f3c952163608a2d9b75b5da4ed7275210 (patch)
tree625725f5226ff98aa96b946f39bab51586d29db3 /bench/sparse_dense_product.cpp
parent6b5f96cb030a0fc65d772c91d66fc27f9cf57af3 (diff)
implement __gnuc_forget_about_setZero_its_over_now
Diffstat (limited to 'bench/sparse_dense_product.cpp')
-rw-r--r--bench/sparse_dense_product.cpp28
1 files changed, 10 insertions, 18 deletions
diff --git a/bench/sparse_dense_product.cpp b/bench/sparse_dense_product.cpp
index 9b9af8819..bfe46122d 100644
--- a/bench/sparse_dense_product.cpp
+++ b/bench/sparse_dense_product.cpp
@@ -91,22 +91,22 @@ int main(int argc, char *argv[])
{
std::cout << "Eigen sparse\t" << sm1.nonZeros()/float(sm1.rows()*sm1.cols())*100 << "%\n";
- BENCH(for (int k=0; k<REPEAT; ++k) v2 = sm1 * v1;)
+ BENCH(asm("#myc"); v2 = sm1 * v1; asm("#myd");)
std::cout << " a * v:\t" << timer.value() << endl;
-
- BENCH(for (int k=0; k<REPEAT; ++k) { asm("#mya"); v2 = sm1.transpose() * v1; asm("#myb"); })
-
+
+ BENCH( { asm("#mya"); v2 = sm1.transpose() * v1; asm("#myb"); })
+
std::cout << " a' * v:\t" << timer.value() << endl;
}
-
+
// {
// DynamicSparseMatrix<Scalar> m1(sm1);
// std::cout << "Eigen dyn-sparse\t" << m1.nonZeros()/float(m1.rows()*m1.cols())*100 << "%\n";
-//
+//
// BENCH(for (int k=0; k<REPEAT; ++k) v2 = m1 * v1;)
// std::cout << " a * v:\t" << timer.value() << endl;
-//
+//
// BENCH(for (int k=0; k<REPEAT; ++k) v2 = m1.transpose() * v1;)
// std::cout << " a' * v:\t" << timer.value() << endl;
// }
@@ -118,23 +118,15 @@ int main(int argc, char *argv[])
//GmmDynSparse gmmT3(rows,cols);
GmmSparse m1(rows,cols);
eiToGmm(sm1, m1);
-
+
std::vector<Scalar> gmmV1(cols), gmmV2(cols);
Map<Matrix<Scalar,Dynamic,1> >(&gmmV1[0], cols) = v1;
Map<Matrix<Scalar,Dynamic,1> >(&gmmV2[0], cols) = v2;
- timer.reset();
- timer.start();
- for (int k=0; k<REPEAT; ++k)
- gmm::mult(m1, gmmV1, gmmV2);
- timer.stop();
+ BENCH( asm("#myx"); gmm::mult(m1, gmmV1, gmmV2); asm("#myy"); )
std::cout << " a * v:\t" << timer.value() << endl;
- timer.reset();
- timer.start();
- for (int k=0; k<REPEAT; ++k)
- gmm::mult(gmm::transposed(m1), gmmV1, gmmV2);
- timer.stop();
+ BENCH( gmm::mult(gmm::transposed(m1), gmmV1, gmmV2); )
std::cout << " a' * v:\t" << timer.value() << endl;
}
#endif