00001 #ifndef _matrix_H_
00002 #define _matrix_H_
00003
00004 #if defined(__cplusplus)
00005 extern "C" {
00006 #endif
00007
00008 extern Matrix *Matrix_Alloc(unsigned NbRows, unsigned NbColumns);
00009 extern void Matrix_Free(Matrix *Mat);
00010 extern void Matrix_Extend(Matrix *Mat, unsigned NbRows);
00011 extern void Matrix_Print(FILE * Dst, const char *Format, Matrix *Mat);
00012 extern void Matrix_Read_Input(Matrix *Mat);
00013 extern Matrix *Matrix_Read(void);
00014 extern void right_hermite(Matrix *A,Matrix **Hp,Matrix **Up,Matrix
00015 **Qp);
00016 extern void left_hermite(Matrix *A,Matrix **Hp,Matrix **Qp,Matrix
00017 **Up);
00018 extern int MatInverse(Matrix *M,Matrix *MInv);
00019 extern void rat_prodmat(Matrix *S,Matrix *X,Matrix *P);
00020 extern void Matrix_Vector_Product(Matrix *mat,Value *p1,Value *p2);
00021 extern void Vector_Matrix_Product(Value *p1,Matrix *mat,Value *p2);
00022 extern void Matrix_Product(Matrix *mat1,Matrix *mat2,Matrix *mat3);
00023 extern int Matrix_Inverse(Matrix *Mat,Matrix *MatInv);
00024
00025 #if defined(__cplusplus)
00026 }
00027 #endif
00028
00029 #endif