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