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