aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/sparse_product.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2011-03-23 11:39:35 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2011-03-23 11:39:35 +0100
commit611fc1789434f6b335f42739ed0d99b39c686da1 (patch)
tree3270e6230468dfad9e4fe3dbee6a49cf1648755a /bench/sparse_product.cpp
parentec32d2c8079f2e52dc3f4503b32e76f4d0c9e88a (diff)
add support for ublas
Diffstat (limited to 'bench/sparse_product.cpp')
-rw-r--r--bench/sparse_product.cpp60
1 files changed, 10 insertions, 50 deletions
diff --git a/bench/sparse_product.cpp b/bench/sparse_product.cpp
index 0b5558b89..d2fc44f0d 100644
--- a/bench/sparse_product.cpp
+++ b/bench/sparse_product.cpp
@@ -20,6 +20,7 @@
#include <algorithm>
#include "BenchTimer.h"
+#include "BenchUtil.h"
#include "BenchSparseUtil.h"
#ifndef NBTRIES
@@ -228,16 +229,12 @@ int main(int argc, char *argv[])
eiToCSparse(sm1, m1);
eiToCSparse(sm2, m2);
-// timer.reset();
-// timer.start();
-// for (int k=0; k<REPEAT; ++k)
BENCH(
{
m3 = cs_sorted_multiply(m1, m2);
if (!m3)
{
std::cerr << "cs_multiply failed\n";
-// break;
}
// cs_print(m3, 0);
cs_spfree(m3);
@@ -254,16 +251,11 @@ int main(int argc, char *argv[])
#ifndef NOUBLAS
{
std::cout << "ublas\t" << nnzPerCol << "%\n";
- UblasMatrix m1(rows,cols), m2(rows,cols), m3(rows,cols);
+ UBlasSparse m1(rows,cols), m2(rows,cols), m3(rows,cols);
eiToUblas(sm1, m1);
eiToUblas(sm2, m2);
BENCH(boost::numeric::ublas::prod(m1, m2, m3););
-// timer.reset();
-// timer.start();
-// for (int k=0; k<REPEAT; ++k)
-// gmm::mult(m1, m2, gmmT3);
-// timer.stop();
std::cout << " a * b:\t" << timer.value() << endl;
}
#endif
@@ -277,34 +269,18 @@ int main(int argc, char *argv[])
eiToGmm(sm1, m1);
eiToGmm(sm2, m2);
- timer.reset();
- timer.start();
- for (int k=0; k<REPEAT; ++k)
- gmm::mult(m1, m2, gmmT3);
- timer.stop();
+ BENCH(gmm::mult(m1, m2, gmmT3););
std::cout << " a * b:\t" << timer.value() << endl;
-// timer.reset();
-// timer.start();
-// for (int k=0; k<REPEAT; ++k)
-// gmm::mult(gmm::transposed(m1), m2, gmmT3);
-// timer.stop();
+// BENCH(gmm::mult(gmm::transposed(m1), m2, gmmT3););
// std::cout << " a' * b:\t" << timer.value() << endl;
//
// if (rows<500)
// {
-// timer.reset();
-// timer.start();
-// for (int k=0; k<REPEAT; ++k)
-// gmm::mult(gmm::transposed(m1), gmm::transposed(m2), gmmT3);
-// timer.stop();
+// BENCH(gmm::mult(gmm::transposed(m1), gmm::transposed(m2), gmmT3););
// std::cout << " a' * b':\t" << timer.value() << endl;
//
-// timer.reset();
-// timer.start();
-// for (int k=0; k<REPEAT; ++k)
-// gmm::mult(m1, gmm::transposed(m2), gmmT3);
-// timer.stop();
+// BENCH(gmm::mult(m1, gmm::transposed(m2), gmmT3););
// std::cout << " a * b':\t" << timer.value() << endl;
// }
// else
@@ -323,32 +299,16 @@ int main(int argc, char *argv[])
eiToMtl(sm1, m1);
eiToMtl(sm2, m2);
- timer.reset();
- timer.start();
- for (int k=0; k<REPEAT; ++k)
- m3 = m1 * m2;
- timer.stop();
+ BENCH(m3 = m1 * m2;);
std::cout << " a * b:\t" << timer.value() << endl;
-// timer.reset();
-// timer.start();
-// for (int k=0; k<REPEAT; ++k)
-// m3 = trans(m1) * m2;
-// timer.stop();
+// BENCH(m3 = trans(m1) * m2;);
// std::cout << " a' * b:\t" << timer.value() << endl;
//
-// timer.reset();
-// timer.start();
-// for (int k=0; k<REPEAT; ++k)
-// m3 = trans(m1) * trans(m2);
-// timer.stop();
+// BENCH(m3 = trans(m1) * trans(m2););
// std::cout << " a' * b':\t" << timer.value() << endl;
//
-// timer.reset();
-// timer.start();
-// for (int k=0; k<REPEAT; ++k)
-// m3 = m1 * trans(m2);
-// timer.stop();
+// BENCH(m3 = m1 * trans(m2););
// std::cout << " a * b' :\t" << timer.value() << endl;
}
#endif