home *** CD-ROM | disk | FTP | other *** search
/ vis-ftp.cs.umass.edu / vis-ftp.cs.umass.edu.tar / vis-ftp.cs.umass.edu / pub / Software / ASCENDER / ascendMar8.tar / UMass / Triangulate / matrixinv2.c < prev    next >
C/C++ Source or Header  |  1996-02-27  |  582b  |  32 lines

  1. #include "nrutil.h"
  2.  
  3. void matrixinvert(double ** a, int n) {
  4.      /* inverts matrix and returns it in place */
  5.  
  6.   double **y, d, *col;
  7.   int i, j, *indx;
  8.  
  9.   indx = ivector(0,n-1);
  10.   col = dvector(0,n-1);
  11.   y = dmatrix(0,n-1,0,n-1);
  12.  
  13.   ludcmp(a, n, indx, &d);
  14.   for (j=0;j<n;j++) {
  15.     for (i=0;i<n;i++)
  16.       col[i] = 0.0;
  17.     col[j] = 1.0;
  18.     lubksb(a, n, indx, col);
  19.     for (i=0; i < n; i++)
  20.       y[i][j] = col[i];
  21.   }
  22.   for (i=0;i<n;i++)
  23.     for (j=0;j<n;j++)
  24.       a[i][j] = y[i][j];
  25.   free_dmatrix(y,0,n-1,0,n-1);
  26.   free_dvector(col,0,n-1);
  27.   free_ivector(indx,0,n-1);
  28. }
  29.  
  30.  
  31.  
  32.