polylib: Matop.h Source File

- Main Page
- Classes
- Files

- File List
- File Members

# Matop.h

Go to the documentation of this file.

    00001 /*
    00002     This file is part of PolyLib.
    00003
    00004     PolyLib is free software: you can redistribute it and/or modify
    00005     it under the terms of the GNU General Public License as published by
    00006     the Free Software Foundation, either version 3 of the License, or
    00007     (at your option) any later version.
    00008
    00009     PolyLib is distributed in the hope that it will be useful,
    00010     but WITHOUT ANY WARRANTY; without even the implied warranty of
    00011     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    00012     GNU General Public License for more details.
    00013
    00014     You should have received a copy of the GNU General Public License
    00015     along with PolyLib.  If not, see <http://www.gnu.org/licenses/>.
    00016 */
    00017
    00018 #ifndef _Matop_h_
    00019 #define _Matop_h_
    00020
    00021 #if defined(__cplusplus)
    00022 extern "C" {
    00023 #endif
    00024
    00025 /* computes c = lcm(a,b) using Gcd(a,b,&c) */
    00026 extern void Lcm3(Value a, Value b, Value *c);
    00027 extern Matrix *AddANullColumn ( Matrix *M );
    00028 extern Matrix *AddANullRow ( Matrix *M );
    00029 extern void ExchangeColumns ( Matrix *M, int Column1, int Column2 );
    00030 extern void ExchangeRows ( Matrix *M, int Row1, int Row2 );
    00031 extern int findHermiteBasis ( Matrix *M, Matrix **Result );
    00032 extern Matrix *Identity ( unsigned size );
    00033 extern Bool isinHnf ( Matrix *A );
    00034 extern Bool isIntegral ( Matrix *A );
    00035 extern Value *Lcm (Value i, Value j);
    00036 extern Matrix *Matrix_Copy(Matrix const *Src);
    00037 extern void PutColumnFirst ( Matrix *X, int Columnnumber );
    00038 extern void PutColumnLast ( Matrix *X, int Columnnumber );
    00039 extern void PutRowFirst ( Matrix *X, int Rownumber );
    00040 extern void PutRowLast ( Matrix *X, int Rownumber );
    00041 extern Matrix *RemoveNColumns ( Matrix *M, int FirstColumnnumber, int NumColumns );
    00042 extern Matrix *RemoveColumn ( Matrix *M, int Columnnumber );
    00043 extern Matrix *RemoveRow ( Matrix *M, int Rownumber );
    00044 extern Matrix *Transpose ( Matrix *A );
    00045
    00046 #if defined(__cplusplus)
    00047 }
    00048 #endif
    00049
    00050 #endif /* _Matop_h_ */