static char *sccsid = "@(#)m_invert.c	4/7/82 (U of Maryland, FLB)";

#include "mat.h"

struct matrix *
m_invert(mat)
register struct matrix *mat;
{
register struct matrix *result;
register int row, col;
double det;

if((det = m_determinant(mat)) == 0.0) {
	printf("m_invert: singular matrix\n");
	return(M_NULL);
	}

m_create(result, mat->m_cols, mat->m_rows);

for (row = 0; row < mat->m_rows; row++)
	for (col = 0; col < mat->m_cols; col++)
		m_v(result, col, row) = m_cofactor(mat, row, col) / det;

return(result);
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              