Changeset 477 for library/tests/blas_test.cpp
- Timestamp:
- 08/05/09 14:40:03 (15 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
library/tests/blas_test.cpp
r262 r477 10 10 11 11 mat matmul ( mat &A, mat &B ) { 12 mat C ( A.rows(), B.cols() );13 int i, j,k;12 mat C ( A.rows(), B.cols() ); 13 int i, j, k; 14 14 double sum; 15 15 16 for ( i =0;i<A.rows();i++ ) {17 for ( j =0;j<A.cols();j++ ) {16 for ( i = 0; i < A.rows(); i++ ) { 17 for ( j = 0; j < A.cols(); j++ ) { 18 18 sum = 0.0; 19 for ( k =0;k<A.cols();k++ ) {20 sum +=A._elem ( i,k ) *B._elem ( k,j );19 for ( k = 0; k < A.cols(); k++ ) { 20 sum += A._elem ( i, k ) * B._elem ( k, j ); 21 21 } 22 C ( i, j ) = sum;22 C ( i, j ) = sum; 23 23 } 24 24 } … … 27 27 28 28 void matmul2 ( int n, double *A, double *B, double *C ) { 29 int i, j,k;29 int i, j, k; 30 30 double sum; 31 31 32 for ( i =0;i<n;i++ ) {33 for ( j =0;j<n;j++ ) {32 for ( i = 0; i < n; i++ ) { 33 for ( j = 0; j < n; j++ ) { 34 34 sum = 0.0; 35 for ( k =0;k<n;k++ ) {36 sum +=A [ i*n+k ] * B [ k*n+j ];35 for ( k = 0; k < n; k++ ) { 36 sum += A [ i*n+k ] * B [ k*n+j ]; 37 37 } 38 38 C[ i*n+j] = sum; … … 52 52 mat C; 53 53 54 vec vn ="5 50 200 500";54 vec vn = "5 50 200 500"; 55 55 int n; 56 56 57 for ( int i =0;i<vn.length();i++ ) {57 for ( int i = 0; i < vn.length(); i++ ) { 58 58 n = vn ( i ); 59 A = randu ( n, n );60 B = randu ( n, n );59 A = randu ( n, n ); 60 B = randu ( n, n ); 61 61 62 62 tt.tic(); 63 for ( int ii=0;ii<10;ii++ ) {C = matmul ( A,B );} 64 exec_times ( i ) =tt.toc(); 63 for ( int ii = 0; ii < 10; ii++ ) { 64 C = matmul ( A, B ); 65 } 66 exec_times ( i ) = tt.toc(); 65 67 66 68 tt.tic(); 67 for ( int ii=0;ii<10;ii++ ) {C = A*B;} 68 exec_times_b ( i ) =tt.toc(); 69 for ( int ii = 0; ii < 10; ii++ ) { 70 C = A * B; 71 } 72 exec_times_b ( i ) = tt.toc(); 69 73 70 C = zeros (n,n);74 C = zeros ( n, n ); 71 75 tt.tic(); 72 for ( int ii=0;ii<10;ii++ ) { matmul2(n,A._data(),B._data(),C._data());} 73 exec_times_c ( i ) =tt.toc(); 76 for ( int ii = 0; ii < 10; ii++ ) { 77 matmul2 ( n, A._data(), B._data(), C._data() ); 78 } 79 exec_times_c ( i ) = tt.toc(); 74 80 } 75 cout << exec_times << endl;76 cout << exec_times_b << endl;77 cout << exec_times_c << endl;81 cout << exec_times << endl; 82 cout << exec_times_b << endl; 83 cout << exec_times_c << endl; 78 84 79 85 it_file itf ( "blas_test.it" ); 80 itf << Name ( "exec_times" ) << exec_times;81 itf << Name ( "exec_times_b" ) << exec_times_b;82 itf << Name ( "exec_times_c" ) << exec_times_c;86 itf << Name ( "exec_times" ) << exec_times; 87 itf << Name ( "exec_times_b" ) << exec_times_b; 88 itf << Name ( "exec_times_c" ) << exec_times_c; 83 89 84 90 return 0;