@@ -72,20 +72,27 @@ int main(int argc, char *argv[]){
7272 FLOAT * a ,* work ;
7373 FLOAT wkopt [4 ];
7474 blasint * ipiv ;
75- blasint m , i , j , info ,lwork ;
75+ blasint m , i , j , l , info ,lwork ;
7676
7777 int from = 1 ;
7878 int to = 200 ;
7979 int step = 1 ;
80+ int loops = 1 ;
8081
81- double time1 ;
82+ double time1 ,timeg ;
83+
84+ char * p ;
85+ char btest = 'I' ;
8286
8387 argc -- ;argv ++ ;
8488
8589 if (argc > 0 ) { from = atol (* argv ); argc -- ; argv ++ ;}
8690 if (argc > 0 ) { to = MAX (atol (* argv ), from ); argc -- ; argv ++ ;}
8791 if (argc > 0 ) { step = atol (* argv ); argc -- ; argv ++ ;}
8892
93+ if ((p = getenv ("OPENBLAS_TEST" ))) btest = * p ;
94+
95+ if ((p = getenv ("OPENBLAS_LOOPS" ))) loops = * p ;
8996
9097 fprintf (stderr , "From : %3d To : %3d Step = %3d\n" , from , to , step );
9198
@@ -124,32 +131,41 @@ int main(int argc, char *argv[]){
124131 fprintf (stderr , " SIZE FLops Time Lwork\n" );
125132
126133 for (m = from ; m <= to ; m += step ){
127-
134+ timeg = 0. ;
128135 fprintf (stderr , " %6d : " , (int )m );
129136
130- GETRF ( & m , & m , a , & m , ipiv , & info );
137+ for ( l = 0 ; l < loops ; l ++ ) {
131138
139+ if (btest == 'F' ) begin ();
140+ GETRF (& m , & m , a , & m , ipiv , & info );
141+ if (btest == 'F' ) {
142+ end ();
143+ timeg += getsec ();
144+ }
132145 if (info ) {
133146 fprintf (stderr , "Matrix is not singular .. %d\n" , info );
134147 exit (1 );
135148 }
136149
137- begin ();
150+ if ( btest == 'I' ) begin ();
138151
139152 lwork = -1 ;
140153 GETRI (& m , a , & m , ipiv , wkopt , & lwork , & info );
141154
142155 lwork = (blasint )wkopt [0 ];
143156 GETRI (& m , a , & m , ipiv , work , & lwork , & info );
144- end ();
157+ if ( btest == 'I' ) end ();
145158
146159 if (info ) {
147160 fprintf (stderr , "failed compute inverse matrix .. %d\n" , info );
148161 exit (1 );
149162 }
150163
151- time1 = getsec ();
152-
164+ if (btest == 'I' )
165+ timeg += getsec ();
166+
167+ } // loops
168+ time1 = timeg /(double )loops ;
153169 fprintf (stderr ,
154170 " %10.2f MFlops : %10.2f Sec : %d\n" ,
155171 COMPSIZE * COMPSIZE * (4.0 /3.0 * (double )m * (double )m * (double )m - (double )m * (double )m + 5.0 /3.0 * (double )m ) / time1 * 1.e-6 ,time1 ,lwork );
0 commit comments