67     for (i = 0; i < 
MROWS (m); i++)
 
   68         for (j = 0; j < 
MCOLS (m); j++)
 
   88     for (i = 0; i < 
MROWS (*m); i++)
 
   89         for (j = 0; j < 
MCOLS (*m); j++)
 
  105   printf (
"%s\n",message);
 
  108     for (i = 0; i < 
MROWS (*m); i++)
 
  110         for (j = 0; j < 
MCOLS (*m); j++)
 
  111             printf (
"%10.5f ", 
MDATA (*m, i, j));
 
  114   else printf (
"Dimension incorrecta!");
 
  165   printf (
"%s\n",message);
 
  169         printf (
"%f ", 
VDATA (*v, i));
 
  172   else printf (
"Dimension incorrecta!");
 
  192      printf (
"ERROR (determinant): MATRIX must be square!\n");
 
  200        *result = 
MDATA (*m, 0, 0);
 
  201     else if (
MROWS (*m) == 2)
 
  221      printf (
"ERROR (inverse_matrix): MATRIX must be square!\n");
 
  235        printf (
"ERROR (inverse_matrix): singular MATRIX!\n");
 
  244         MDATA (*n, 0, 0) = 1 / det ;
 
  246       else if (
MROWS (*m) == 2)
 
  279      printf (
"ERROR (multiply_matrix_vector): MATRIX  and VECTOR dimensions incompatible!\n");
 
  291     for (i = 0; i < 
MROWS (*m); i++)
 
  295             datum = datum + 
MDATA (*m, i, j) * 
VDATA (*v, j);
 
  296         VDATA (*r, i) = datum;
 
void initialize_matrix(MATRIX *m, int rows, int cols)
 
MATRIX create_matrix(int rows, int cols)
 
void print_matrix(char *message, MATRIX const *m)
 
void print_vector(char *message, VECTOR const *v)
 
#define MV_COMPAT_DIM(m, v)
 
VECTOR create_vector(int elements)
 
int inverse_matrix(MATRIX const *m, MATRIX *n)
 
Matrix class auxiliary functions declaration. 
 
int multiply_matrix_vector(MATRIX const *m, VECTOR const *v, VECTOR *r)
 
void initialize_vector(VECTOR *v, int elements)
 
float cross_product(MATRIX const *m, int f1, int c1, int f2, int c2)
 
int determinant(MATRIX const *m, float *result)