jengelhdatetimespielwiese
Last change
on this file since 362fc67 was
362fc67,
checked in by Martin Lee <martinlee84@…>, 11 years ago

chg: remove $Id$


Property mode set to
100644

File size:
1.3 KB

Line  

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

2  #ifndef CF_HNF_H 

3  #define CF_HNF_H 

4  

5  /*BEGINPUBLIC*/ 

6  

7  #ifdef HAVE_NTL 

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  

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  

44  #endif 

45  

46  /*ENDPUBLIC*/ 

47  

48  #endif 

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