jengelhdatetimespielwiese
Last change
on this file since c74d6a was
c74d6a,
checked in by Oleksandr Motsak <motsak@…>, 12 years ago

FIX/ADD: factory/singular wrappers for _HNF and _LLL (from NTL)


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  /* $Id$ */ 

10  

11  //{{{ docu 

12  // 

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

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

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

16  // 

17  //  lower triangular, 

18  //  the diagonal entries are positive, 

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

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

21  // 

22  // via NTL:HNF 

23  // 

24  //}}} 

25  

26  CFMatrix* cf_HNF(CFMatrix& A); 

27  

28  // performs LLL reduction. 

29  

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

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

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

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

34  // are zero. 

35  

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

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

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

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

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

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

42  // the lattice. 

43  

44  CFMatrix* cf_LLL(CFMatrix& A); 

45  

46  #endif 

47  

48  /*ENDPUBLIC*/ 

49  

50  #endif 

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