source: git/factory/cf_hnf.h @ 53acc4

fieker-DuValspielwiese
Last change on this file since 53acc4 was b52d27, checked in by Martin Lee <martinlee84@…>, 10 years ago
chg: more docu changes
  • 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/**
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
24CFMatrix* cf_HNF(CFMatrix& A);
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
46CFMatrix* cf_LLL(CFMatrix& A);
47
48#endif
49
50/*ENDPUBLIC*/
51
52#endif
Note: See TracBrowser for help on using the repository browser.