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