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