source: git/factory/cf_hnf.h @ 3edea1

fieker-DuValspielwiese
Last change on this file since 3edea1 was 3edea1, checked in by Hans Schoenemann <hannes@…>, 3 years ago
cygwin port: shared lib libfactory
  • Property mode set to 100644
File size: 1.3 KB
RevLine 
[f291fcd]1/* emacs edit mode for this file is -*- C++ -*- */
2#ifndef CF_HNF_H
3#define CF_HNF_H
4
5/*BEGINPUBLIC*/
6
[b52d27]7/**
8 *
9 * The input matrix A is square matrix of integers
10 * output: the Hermite Normal Form of A; that is,
11 * the unique m x m matrix whose rows span L, such that
12 *
13 * - lower triangular,
14 * - the diagonal entries are positive,
15 * - any entry below the diagonal is a non-negative number
16 *   strictly less than the diagonal entry in its column.
17 *
18 * @note: uses NTL
19 *
20**/
[f291fcd]21
[3edea1]22CFMatrix* FACTORY_PUBLIC cf_HNF(CFMatrix& A);
[f291fcd]23
[b52d27]24/**
25 * performs LLL reduction.
26 *
27 * B is an m x n matrix, viewed as m rows of n-vectors.  m may be less
28 * than, equal to, or greater than n, and the rows need not be
29 * linearly independent.  B is transformed into an LLL-reduced basis,
30 * and the return value is the rank r of B.  The first m-r rows of B
31 * are zero.
32 *
33 * More specifically, elementary row transformations are performed on
34 * B so that the non-zero rows of new-B form an LLL-reduced basis
35 * for the lattice spanned by the rows of old-B.
36 * The default reduction parameter is delta=3/4, which means
37 * that the squared length of the first non-zero basis vector
38 * is no more than 2^{r-1} times that of the shortest vector in
39 * the lattice.
40 *
[4946e3]41 * @note: uses NTL or FLINT
[b52d27]42**/
[9c0b20a]43
[3edea1]44CFMatrix* FACTORY_PUBLIC cf_LLL(CFMatrix& A);
[9c0b20a]45
[f291fcd]46/*ENDPUBLIC*/
47
48#endif
Note: See TracBrowser for help on using the repository browser.