My Project  debian-1:4.1.1-p2+ds-4build3
cf_hnf.h
Go to the documentation of this file.
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 /**
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 non-negative number
18  * strictly less than the diagonal entry in its column.
19  *
20  * @note: uses NTL
21  *
22 **/
23 
25 
26 /**
27  * performs LLL reduction.
28  *
29  * B is an m x n matrix, viewed as m rows of n-vectors. m may be less
30  * than, equal to, or greater than n, and the rows need not be
31  * linearly independent. B is transformed into an LLL-reduced basis,
32  * and the return value is the rank r of B. The first m-r rows of B
33  * are zero.
34  *
35  * More specifically, elementary row transformations are performed on
36  * B so that the non-zero rows of new-B form an LLL-reduced basis
37  * for the lattice spanned by the rows of old-B.
38  * The default reduction parameter is delta=3/4, which means
39  * that the squared length of the first non-zero basis vector
40  * is no more than 2^{r-1} times that of the shortest vector in
41  * the lattice.
42  *
43  * @note: uses NTL
44 **/
45 
47 
48 #endif
49 
50 /*ENDPUBLIC*/
51 
52 #endif
Matrix
Definition: ftmpl_matrix.h:20
cf_HNF
CFMatrix * cf_HNF(CFMatrix &A)
The input matrix A is square matrix of integers output: the Hermite Normal Form of A; that is,...
Definition: cf_hnf.cc:38
cf_LLL
CFMatrix * cf_LLL(CFMatrix &A)
performs LLL reduction.
Definition: cf_hnf.cc:48
A
#define A
Definition: sirandom.c:23