spielwiese
Last change
on this file since 488872b was
9c0b20a,
checked in by Hans Schoenemann <hannes@…>, 13 years ago

LLL via system("LLL",M) for matrix (char 0)/intmat
gitsvnid: file:///usr/local/Singular/svn/trunk@13670 2c84dea37e6841379b89c4e89433aadc


Property mode set to
100644

File size:
1.3 KB

Rev  Line  

[f291fcd]  1  /* emacs edit mode for this file is * C++ * */ 

 2  #ifndef CF_HNF_H 

 3  #define CF_HNF_H 

 4  

 5  /*BEGINPUBLIC*/ 

 6  

 7  /* $Id$ */ 

 8  

 9  //{{{ docu 

 10  // 

 11  // The input matrix A is square matrix of integers 

 12  // output: the Hermite Normal Form of A; that is, 

 13  // the unique m x m matrix whose rows span L, such that 

 14  // 

 15  //  lower triangular, 

 16  //  the diagonal entries are positive, 

 17  //  any entry below the diagonal is a nonnegative number 

 18  // strictly less than the diagonal entry in its column. 

 19  // 

 20  // via NTL:HNF 

 21  // 

 22  //}}} 

 23  

 24  CFMatrix* cf_HNF(CFMatrix& A); 

 25  

[9c0b20a]  26  // performs LLL reduction. 

 27  

 28  // B is an m x n matrix, viewed as m rows of nvectors. m may be less 

 29  // than, equal to, or greater than n, and the rows need not be 

 30  // linearly independent. B is transformed into an LLLreduced basis, 

 31  // and the return value is the rank r of B. The first mr rows of B 

 32  // are zero. 

 33  

 34  // More specifically, elementary row transformations are performed on 

 35  // B so that the nonzero rows of newB form an LLLreduced basis 

 36  // for the lattice spanned by the rows of oldB. 

 37  // The default reduction parameter is delta=3/4, which means 

 38  // that the squared length of the first nonzero basis vector 

 39  // is no more than 2^{r1} times that of the shortest vector in 

 40  // the lattice. 

 41  

 42  CFMatrix* cf_LLL(CFMatrix& A); 

 43  

[f291fcd]  44  /*ENDPUBLIC*/ 

 45  

 46  #endif 

Note: See
TracBrowser
for help on using the repository browser.