diff options
author | Gael Guennebaud <g.gael@free.fr> | 2009-01-20 16:50:47 +0000 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2009-01-20 16:50:47 +0000 |
commit | f645d1f911fe31ed9a1203681956fd87bc49fcf3 (patch) | |
tree | b28c5d95d9a372b3f16637d7f916ca81a888f102 /bench/sparse_dense_product.cpp | |
parent | 8973d12cdae503e0996edd52f8c78879274c0e70 (diff) |
* complete the support of QVector via a QtAlignedMalloc header
* add a unit test for QVector which shows the issue with QVector::fill
Diffstat (limited to 'bench/sparse_dense_product.cpp')
-rw-r--r-- | bench/sparse_dense_product.cpp | 54 |
1 files changed, 14 insertions, 40 deletions
diff --git a/bench/sparse_dense_product.cpp b/bench/sparse_dense_product.cpp index 3caf8598a..9b9af8819 100644 --- a/bench/sparse_dense_product.cpp +++ b/bench/sparse_dense_product.cpp @@ -91,51 +91,25 @@ int main(int argc, char *argv[]) { std::cout << "Eigen sparse\t" << sm1.nonZeros()/float(sm1.rows()*sm1.cols())*100 << "%\n"; -// timer.reset(); -// timer.start(); BENCH(for (int k=0; k<REPEAT; ++k) v2 = sm1 * v1;) -// timer.stop(); std::cout << " a * v:\t" << timer.value() << endl; -// std::cout << sm3 << "\n"; - timer.reset(); - timer.start(); -// std::cerr << "transpose...\n"; -// EigenSparseMatrix sm4 = sm1.transpose(); -// std::cout << sm4.nonZeros() << " == " << sm1.nonZeros() << "\n"; -// exit(1); -// std::cerr << "transpose OK\n"; -// std::cout << sm1 << "\n\n" << sm1.transpose() << "\n\n" << sm4.transpose() << "\n\n"; - BENCH(for (int k=0; k<REPEAT; ++k) v2 = sm1.transpose() * v1;) -// timer.stop(); + + BENCH(for (int k=0; k<REPEAT; ++k) { asm("#mya"); v2 = sm1.transpose() * v1; asm("#myb"); }) + std::cout << " a' * v:\t" << timer.value() << endl; } - - // CSparse - #ifdef CSPARSE - { - std::cout << "CSparse \t" << density*100 << "%\n"; - cs *m1, *m2, *m3; - eiToCSparse(sm1, m1); - eiToCSparse(sm2, m2); - - timer.reset(); - timer.start(); - for (int k=0; k<REPEAT; ++k) - { - m3 = cs_sorted_multiply(m1, m2); - if (!m3) - { - std::cerr << "cs_multiply failed\n"; -// break; - } -// cs_print(m3, 0); - cs_spfree(m3); - } - timer.stop(); - std::cout << " a * b:\t" << timer.value() << endl; - } - #endif + +// { +// 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; +// } // GMM++ #ifndef NOGMM |