00001 #ifndef _Matop_h_
00002 #define _Matop_h_
00003
00004 #if defined(__cplusplus)
00005 extern "C" {
00006 #endif
00007
00008
00009 extern void Lcm3(Value a, Value b, Value *c);
00010 extern Matrix *AddANullColumn ( Matrix *M );
00011 extern Matrix *AddANullRow ( Matrix *M );
00012 extern void ExchangeColumns ( Matrix *M, int Column1, int Column2 );
00013 extern void ExchangeRows ( Matrix *M, int Row1, int Row2 );
00014 extern int findHermiteBasis ( Matrix *M, Matrix **Result );
00015 extern Matrix *Identity ( unsigned size );
00016 extern Bool isinHnf ( Matrix *A );
00017 extern Bool isIntegral ( Matrix *A );
00018 extern Value *Lcm (Value i, Value j);
00019 extern Matrix *Matrix_Copy(Matrix const *Src);
00020 extern void PutColumnFirst ( Matrix *X, int Columnnumber );
00021 extern void PutColumnLast ( Matrix *X, int Columnnumber );
00022 extern void PutRowFirst ( Matrix *X, int Rownumber );
00023 extern void PutRowLast ( Matrix *X, int Rownumber );
00024 extern Matrix *RemoveNColumns ( Matrix *M, int FirstColumnnumber, int NumColumns );
00025 extern Matrix *RemoveColumn ( Matrix *M, int Columnnumber );
00026 extern Matrix *RemoveRow ( Matrix *M, int Rownumber );
00027 extern Matrix *Transpose ( Matrix *A );
00028
00029 #if defined(__cplusplus)
00030 }
00031 #endif
00032
00033 #endif