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