123456789101112131415161718192021222324252627282930313233343536373839 |
- // g++ -O3 -DNDEBUG -DMATSIZE=<x> benchmark.cpp -o benchmark && time ./benchmark
- #include <iostream>
- #include <Eigen/Core>
- #ifndef MATSIZE
- #define MATSIZE 3
- #endif
- using namespace std;
- using namespace Eigen;
- #ifndef REPEAT
- #define REPEAT 40000000
- #endif
- #ifndef SCALAR
- #define SCALAR double
- #endif
- int main(int argc, char *argv[])
- {
- Matrix<SCALAR,MATSIZE,MATSIZE> I = Matrix<SCALAR,MATSIZE,MATSIZE>::Ones();
- Matrix<SCALAR,MATSIZE,MATSIZE> m;
- for(int i = 0; i < MATSIZE; i++)
- for(int j = 0; j < MATSIZE; j++)
- {
- m(i,j) = (i+MATSIZE*j);
- }
- asm("#begin");
- for(int a = 0; a < REPEAT; a++)
- {
- m = Matrix<SCALAR,MATSIZE,MATSIZE>::Ones() + 0.00005 * (m + (m*m));
- }
- asm("#end");
- cout << m << endl;
- return 0;
- }
|