www.pudn.com > simulator.zip > General_accessories.cpp


#include "General_ext.h" 
 
/**************************************************************************/ 
/* Function:    invert_matrix                                             */ 
/* Purpose:     invert a matrix by Gauss-Jordon matrix inversion method   */ 
/* Source:      code in Fortran, from Numerical Recipes                   */     
/**************************************************************************/ 
void invert_matrix(float ao[][MAX_CTRL_CHAN], float a[][MAX_CTRL_CHAN]) 
{ 
int i, j, k, l,	ll,	icol, irow, 
	n    =Num_dof, 
    np   =Num_dof, 
	ipiv [MAX_CTRL_CHAN], 
	indxr[MAX_CTRL_CHAN], 
	indxc[MAX_CTRL_CHAN]; 
 
float big, dum, pivinv; 
 
   for( i=0 ; i=big) 
				   { 
                     big=(float)fabs(a[j][k]); 
                     irow=j; 
                     icol=k; 
                   } 
			    } 
                else if (ipiv[k]>1) 
			    { 
                   printf("\n singular matrix in gaussj !\n"); 
                } 
			    else 
			    { 
			    }; 
			 } 
          } 
	  } 
 
      ipiv[icol]+=1; 
 
      if (irow!=icol) 
	  { 
         for( l=0 ; l 0 ) 
   { 
      k1 = i; 
      i = i - 1; 
 
      for( k=k1 ; k