home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / program / c / c_tutor / c_1 / m_invert < prev    next >
Encoding:
Text File  |  1992-11-14  |  565 b   |  26 lines

  1. static char *sccsid = "@(#)m_invert.c   4/7/82 (U of Maryland, FLB)";
  2.  
  3. #include "mat.h"
  4.  
  5. struct matrix *
  6. m_invert(mat)
  7. register struct matrix *mat;
  8. {
  9. register struct matrix *result;
  10. register int row, col;
  11. double det;
  12.  
  13. if((det = m_determinant(mat)) == 0.0) {
  14.         printf("m_invert: singular matrix\n");
  15.         return(M_NULL);
  16.         }
  17.  
  18. m_create(result, mat->m_cols, mat->m_rows);
  19.  
  20. for (row = 0; row < mat->m_rows; row++)
  21.         for (col = 0; col < mat->m_cols; col++)
  22.                 m_v(result, col, row) = m_cofactor(mat, row, col) / det;
  23.  
  24. return(result);
  25. }
  26.