# source:git/factory/cf_hnf.h@9c0b20a

spielwiese
Last change on this file since 9c0b20a was 9c0b20a, checked in by Hans Schoenemann <hannes@…>, 13 years ago
LLL via system("LLL",M) for matrix (char 0)/intmat git-svn-id: file:///usr/local/Singular/svn/trunk@13670 2c84dea3-7e68-4137-9b89-c4e89433aadc
• 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
7/* \$Id\$ */
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 non-negative number
18//   strictly less than the diagonal entry in its column.
19//
20// via NTL:HNF
21//
22//}}}
23
24CFMatrix* cf_HNF(CFMatrix& A);
25
[9c0b20a]26// performs LLL reduction.
27
28// B is an m x n matrix, viewed as m rows of n-vectors.  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 LLL-reduced basis,
31// and the return value is the rank r of B.  The first m-r rows of B
32// are zero.
33
34// More specifically, elementary row transformations are performed on
35// B so that the non-zero rows of new-B form an LLL-reduced basis
36// for the lattice spanned by the rows of old-B.
37// The default reduction parameter is delta=3/4, which means
38// that the squared length of the first non-zero basis vector
39// is no more than 2^{r-1} times that of the shortest vector in
40// the lattice.
41
42CFMatrix* cf_LLL(CFMatrix& A);
43
[f291fcd]44/*ENDPUBLIC*/
45
46#endif
Note: See TracBrowser for help on using the repository browser.