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;
							 | 
						|
								}
							 |