You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							35 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							35 lines
						
					
					
						
							1.1 KiB
						
					
					
				| 
 | |
| #include <iostream> | |
| #include "BenchUtil.h" | |
| #include "basicbenchmark.h" | |
|  | |
| int main(int argc, char *argv[]) | |
| { | |
|   DISABLE_SSE_EXCEPTIONS(); | |
| 
 | |
|   // this is the list of matrix type and size we want to bench: | |
|   // ((suffix) (matrix size) (number of iterations)) | |
|   #define MODES ((3d)(3)(4000000)) ((4d)(4)(1000000)) ((Xd)(4)(1000000)) ((Xd)(20)(10000)) | |
| //   #define MODES ((Xd)(20)(10000)) | |
|  | |
|   #define _GENERATE_HEADER(R,ARG,EL) << BOOST_PP_STRINGIZE(BOOST_PP_SEQ_HEAD(EL)) << "-" \ | |
|     << BOOST_PP_STRINGIZE(BOOST_PP_SEQ_ELEM(1,EL)) << "x" \ | |
|     << BOOST_PP_STRINGIZE(BOOST_PP_SEQ_ELEM(1,EL)) << "   /   " | |
|  | |
|   std::cout BOOST_PP_SEQ_FOR_EACH(_GENERATE_HEADER, ~, MODES ) << endl; | |
| 
 | |
|   const int tries = 10; | |
| 
 | |
|   #define _RUN_BENCH(R,ARG,EL) \ | |
|     std::cout << ARG( \ | |
|       BOOST_PP_CAT(Matrix, BOOST_PP_SEQ_HEAD(EL)) (\ | |
|          BOOST_PP_SEQ_ELEM(1,EL),BOOST_PP_SEQ_ELEM(1,EL)), BOOST_PP_SEQ_ELEM(2,EL), tries) \ | |
|     << "   "; | |
|  | |
|   BOOST_PP_SEQ_FOR_EACH(_RUN_BENCH, benchBasic<LazyEval>, MODES ); | |
|   std::cout << endl; | |
|   BOOST_PP_SEQ_FOR_EACH(_RUN_BENCH, benchBasic<EarlyEval>, MODES ); | |
|   std::cout << endl; | |
| 
 | |
|   return 0; | |
| }
 |