00001
00002
00003
00004
00005
00006
00007 #ifndef _Matop_h_
00008 #define _Matop_h_
00009 #if __STDC__
00010
00011 extern Matrix *AddANullColumn ( Matrix *M );
00012 extern Matrix *AddANullRow ( Matrix *M );
00013 extern void ExchangeColumns ( Matrix *M, int Column1, int Column2 );
00014 extern void ExchangeRows ( Matrix *M, int Row1, int Row2 );
00015 extern int findHermiteBasis ( Matrix *M, Matrix **Result );
00016 extern Matrix *Identity ( unsigned size );
00017 extern Bool isinHnf ( Matrix *A );
00018 extern Bool isIntegral ( Matrix *A );
00019 extern Value *Lcm (Value i, Value j);
00020 extern Matrix * Matrix_Copy ( Matrix *Src );
00021 extern void PutColumnFirst ( Matrix *X, int Columnnumber );
00022 extern void PutColumnLast ( Matrix *X, int Columnnumber );
00023 extern void PutRowFirst ( Matrix *X, int Rownumber );
00024 extern void PutRowLast ( Matrix *X, int Rownumber );
00025 extern Matrix *RemoveColumn ( Matrix *M, int Columnnumber );
00026 extern Matrix *RemoveRow ( Matrix *M, int Rownumber );
00027 extern Matrix *Transpose ( Matrix *A );
00028
00029 #else
00030
00031 extern Matrix *AddANullColumn ();
00032 extern Matrix *AddANullRow ();
00033 extern void ExchangeColumns ();
00034 extern void ExchangeRows ();
00035 extern int findHermiteBasis ();
00036 extern Matrix *Identity ();
00037 extern Bool isinHnf ();
00038 extern Bool isIntegral ();
00039 extern Value *Lcm ();
00040 extern Matrix * Matrix_Copy ();
00041 extern void PutColumnFirst ();
00042 extern void PutColumnLast ();
00043 extern void PutRowFirst ();
00044 extern void PutRowLast ();
00045 extern Matrix *RemoveColumn ();
00046 extern Matrix *RemoveRow ();
00047 extern Matrix *Transpose ();
00048
00049 #endif
00050 #endif