typedef struct matrix { struct matrix *next; char *name; short r, c; double *d; } Matrix; extern int copymat(struct matrix * A, struct matrix * B); extern int delmat(struct matrix * A); extern int madd(struct matrix * A, struct matrix * B, struct matrix * C); extern int mident(struct matrix * A); extern int minvert(struct matrix * A, struct matrix * B); extern int mmult(struct matrix * A, struct matrix * B, struct matrix * C); extern int mprint(struct matrix * A); extern int msolve(struct matrix * A, struct matrix * A2, struct matrix * B); extern int msub(struct matrix * A, struct matrix * B, struct matrix * C); extern int mtranspose(struct matrix * A, struct matrix * B); extern int mzero(struct matrix * A); extern int smult(struct matrix * A, struct matrix * B, struct matrix * C);