{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}} {\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\f0\fs20 #include\par #include\par #include\par #define N 6\par #define LDA N\par #define LDVL N\par #define LDVR N\par void print_eigenvalues( char* desc, int n, float* wr, float* wi ) \{\par int j;\par printf( "\\n %s\\n", desc );\par for( j = 0; j < n; j++ ) \{\par if( wi[j] == (float)0.0 ) \{\par printf( " %6.4f", wr[j] );\par \} else \{\par printf( " (%6.2f,%6.2f)", wr[j], wi[j] );\par \}\par \}\par printf( "\\n" );\par \}\par \par /* Auxiliary routine: printing eigenvectors */\par \par void print_eigenvectors( char* desc, int n, float* wi, float* v, int ldv ) \{\par int i, j;\par printf( "\\n %s\\n", desc );\par for( i = 0; i < n; i++ ) \{\par for( j = 0; j < n; j++ )\par printf( " %6.4f", v[i+j*ldv] );\par printf( "\\n" );\par \}\par \}\par \par \par \par /* Main program */\par int main() \{\par /* Locals */\par int n = N, lda = LDA, ldvl = LDVL, ldvr = LDVR, info, lwork, i, j;\par float wkopt;\par float* work;\par float wr[N], wi[N], vl[LDVL*N], vr[LDVR*N];\par \par float a[LDA*N] = \{\par 1.0, 2.0, 3.0, 0.0, 0.0, 0.0,\par 4.0, 5.0, 4.0, 0.0, 0.0, 0.0,\par 7.0, 5.0, 3.0, 0.0, 0.0, 0.0,\par 0.0, 0.0, 0.0, 8.0, 7.0, 2.0,\par 0.0, 0.0, 0.0, 1.0, 6.0, 5.0,\par 0.0, 0.0, 0.0, 5.0, 7.0, 2.0,\par \};\par \par for(i = 0; i 0 ) \{\par printf( "The algorithm failed to compute eigenvalues.\\n" );\par exit( 1 );\par \}\par print_eigenvalues( "Eigenvalues", n, wr, wi );\par print_eigenvectors( "Right eigenvectors", n, wi, vr, ldvr );\par free( (void*)work );\par exit( 0 );\par \}\par }