1*bf2c3715SXin Li // g++ -fopenmp -I .. -O3 -DNDEBUG -finline-limit=1000 benchmarkX.cpp -o b && time ./b 2*bf2c3715SXin Li 3*bf2c3715SXin Li #include <iostream> 4*bf2c3715SXin Li 5*bf2c3715SXin Li #include <Eigen/Core> 6*bf2c3715SXin Li 7*bf2c3715SXin Li using namespace std; 8*bf2c3715SXin Li using namespace Eigen; 9*bf2c3715SXin Li 10*bf2c3715SXin Li #ifndef MATTYPE 11*bf2c3715SXin Li #define MATTYPE MatrixXLd 12*bf2c3715SXin Li #endif 13*bf2c3715SXin Li 14*bf2c3715SXin Li #ifndef MATSIZE 15*bf2c3715SXin Li #define MATSIZE 400 16*bf2c3715SXin Li #endif 17*bf2c3715SXin Li 18*bf2c3715SXin Li #ifndef REPEAT 19*bf2c3715SXin Li #define REPEAT 100 20*bf2c3715SXin Li #endif 21*bf2c3715SXin Li main(int argc,char * argv[])22*bf2c3715SXin Liint main(int argc, char *argv[]) 23*bf2c3715SXin Li { 24*bf2c3715SXin Li MATTYPE I = MATTYPE::Ones(MATSIZE,MATSIZE); 25*bf2c3715SXin Li MATTYPE m(MATSIZE,MATSIZE); 26*bf2c3715SXin Li for(int i = 0; i < MATSIZE; i++) for(int j = 0; j < MATSIZE; j++) 27*bf2c3715SXin Li { 28*bf2c3715SXin Li m(i,j) = (i+j+1)/(MATSIZE*MATSIZE); 29*bf2c3715SXin Li } 30*bf2c3715SXin Li for(int a = 0; a < REPEAT; a++) 31*bf2c3715SXin Li { 32*bf2c3715SXin Li m = I + 0.0001 * (m + m*m); 33*bf2c3715SXin Li } 34*bf2c3715SXin Li cout << m(0,0) << endl; 35*bf2c3715SXin Li return 0; 36*bf2c3715SXin Li } 37