Hermite Normal Forms
-
Upload
shotorbari -
Category
Documents
-
view
214 -
download
0
Transcript of Hermite Normal Forms
-
7/26/2019 Hermite Normal Forms
1/19
Fast Computation of Hermite Normal Forms of
Random Integer Matrices
Clement Pernet1
William Stein2
Abstract
This paper is about how to compute the Hermite normal form of a ran-dom integer matrix in practice. We propose significant improvements to thealgorithm by Micciancio and Warinschi, and extend these techniques to thecomputation of the saturation of a matrix. Tables of timings confirm the effi-ciency of this approach. To our knowledge, our implementation is the fastestimplementation for computing Hermite normal form for large matrices withlarge entries.
Key words: Hermite normal form, exact linear algebra
1. Introduction
This paper is about how to compute the Hermite normal form of arandominteger matrix in practice. We describe the best known algorithm for randommatrices, due to Micciancio and Warinschi [MW01] and explain some newideas that make it practical. We also apply these techniques to give a newalgorithm for computing the saturation of a module, and present timings.
In this paper we do not concern ourselves with nonrandom matrices, andinstead refer the reader to [SL96, Sto98] for the state of the art for worse casecomplexity results. Our motivation for focusing on the random case is thatit comes up frequently in algorithms for computing with modular forms.
Among the numerous notions of Hermite normal form, we use the follow-ing one, which is the closest to the familiar notion of reduced row echelon
1Supported by the National Science Foundation under Grant No. 0713225.2Supported by the National Science Foundation under Grant No. 0653968.
Preprint submitted to Journal of Algebra January 7, 2009
-
7/26/2019 Hermite Normal Forms
2/19
form.
Definition 1.1 (Hermite Normal Form). For any nm integer matrix Athe Hermite normal form(HNF) ofA is the unique matrix H= (hi,j) suchthat there is a unimodular nn matrixU with U A= H, and such that Hsatisfies the following two conditions:
there exist a sequence of integers j1 < < jn such that for all 0 i n we have hi,j = 0 for all j < ji (row echelon structure)
for 0 k < i n we have 0 hk,ji < hi,ji (the pivot element is thegreatest along its column and the coefficient above are nonnegative).
Thus the Hermite normal form is a generalization over Z of the reducedrow echelon form of a matrix over Q. Just as computation of echelon formsis a building block for many algorithms for computing with vector spaces,Hermite normal form is a building block for algorithms for computing withmodules over Z (see, e.g., [Coh93, Ch. 2]).
Example 1.2. The HNF of the matrix
A=
5 8 3 9 5 52 8 2 2 8 5
7 5 8 4 3 4
1 1 6 0 8 3
is
H=
1 0 3 2 3 7 299 900 1 1 1 0 3 130 400 0 4 3 5 2 450 1350 0 0 4 8 6 627 188
.
Notice how the entries in the answer are quite large compared to the input.Heuristic observations: For a random nm matrix A with n m, the
number of digits of each entry of the rightmost m n + 1 columns of Hare similar in size to the determinant of the left nn submatrix ofA. For
example, a random 250 250 matrix with entries in [232, 232] has HNF withentries in the last column all having about 2590 digits and determinant withabout 2590 digits, but all other entries are likely to be very small (e.g., asingle digit).
2
-
7/26/2019 Hermite Normal Forms
3/19
There are numerous algorithms for the computing HNFs, including [KB79,
DKLET87, Bra89, MW01]. We describe an algorithm that is based onthe heuristically fast algorithm by Micciancio and Warinschi [MW01], up-dated with several practical improvements. Our implementation is currentlyasymptotically the fastest available (see Section 9).
In the rest of this paper, we mainly address computation of the HNF ofa square nonsingular matrix A. We also briefly explain how to reduce thegeneral case to the square case, discuss computation of saturation, and givetimings. We give an outline of the algorithm in Section 2 and present moredetails in Sections 3, 5 and 6. The cases of more rows than columns and morecolumns than rows is discussed in the Section 7. In Section 9, we sketch themain features of our implementation in Sage, and compare the computation
time for various class of matrices.
Acknowledgement: We thank Allan Steel for providing us with notes froma talk he gave on his implementation of [MW01]. Steels implementation wasmuch faster than any other system available (e.g., Pari, NTL, Mathematica,Maple, and GAP), which was the motivation for this paper. The extent towhich our algorithm is similar to Steels is unclear, because Steels algorithmhas not been published and Magma is closed source. We would also liketo thank Burcin Erocal for implementing mod n computation of Hermiteform in Sage, Robert Bradshaw for help benchmarking our implementation,Arne Storjohann for helpful conversations about the non-random case, and
Andrew Crites and Michael Goff for their final student project on computingHNFs.
2. Outline of the algorithm whenA is square
For the rest of this section, letA= (ai,j)i,j=0,...,n1be annnmatrix withinteger entries. There are two key ideas behind the algorithm of [MW01] forcomputing the HNF ofA.
1. Every entry in the HNFHof a square matrixA is at most the absolutevalue of the determinant det(A), so one can computeHbe working mod-
ulo the determinant ofH. This idea was first introduced and developedin [DKLET87].
2. The determinant ofA may of course still be extremely large. Micciancioand Warinschis clever idea is to instead compute the Hermite form H
of a small-determinant matrix constructed from A using the Euclidean
3
-
7/26/2019 Hermite Normal Forms
4/19
algorithm and properties of determinants. Then we recoverH from H
via three update steps.We now explain the second key idea in more detail. Consider the following
block decomposition ofA:
A=
B bcT an1,n
dT an,n
,
where B is the upper left (n 2) (n 1) submatrix of A, and b, c, d
are column vectors. Letd1 = det
BcT
and d2 = det
BdT
. Use the
extended Euclidean algorithm to find integers s, t such that
g= sd1+td2,
whereg= gcd(d1, d2).Since the determinant is linear in row operations, we have
det
B
scT +tdT
= g (2.1)
For random matrices, g is likely to be very small. Figure 2.1 illustratesthe distribution of such gcds, on a set of 500 random integer matrices of
dimension 100 with 100-bit coefficients.Algorithm 1 (on page 5) is essentially the algorithm of Micciancio and
Warinschi. Our main improvement over their work is to greatly optimizeSteps 3, 4 and 8. Step 8 is performed by a procedure they call AddColumn(see Algorithm 3 in Section 5 below), and steps 9 and 10 by a procedure theycall AddRow(see Algorithm 4 in Section 6 below).
3. Double determinant computation
There are many algorithms for computing the determinant of an inte-ger matrix A. One algorithm involves computing the Hadamard bound on
det(A), then computing the determinant modulo p for sufficiently many pusing an (asymptotically fast) Gaussian elimination algorithm, and finallyusing a Chinese remainder theorem reconstruction. This algorithm has bitcomplexity
O
n4(log n+ log A) +n3 log2 A
,
4
-
7/26/2019 Hermite Normal Forms
5/19
Algorithm 1: Hermite Normal Form [MW01]
Data: A: an nn nonsingular matrix over ZResult: H: the Hermite normal form ofAbegin1
Write A =
B bcT an1,n
dT an,n
2
Computed1= det
BcT
3
Computed2= det
BdT
4
Compute the extended gcd ofd1 and d2: g= sd1+td25
LetC=
B
scT +tdT
6
ComputeH1, the Hermite normal form ofC, by working modulo g7as explained in Section 4 below. (NOTE: In the unlikely case thatg= 0 or g is large, we compute H1 using any HNF algorithmapplied toC, e.g., by recursively applying the main algorithm ofthis paper to C.)Obtain fromH1 the Hermite form H2 of8
B bscT +tdT san1,n+tan,n
Obtain fromH2 the hermite form H3 of
B bcT an1,n
9
Obtain fromH3 the Hermite form H of
B bcT an1,n
dT an,n
10
end11
5
-
7/26/2019 Hermite Normal Forms
6/19
5 0 1 0 0 1 5 0 2 0 0
5 0
1 0 0
1 5 0
Figure 2.1: Distribution of the determinants in (2.1), for 500 random matrices with n= 100and entries uniformly chosen to satisfy log2A= 100. Only 9 elements had a determinantlarger than 200, and the largest one was 6816.
orO (n+1(log n+ log A)) with fast matrix arithmetic (see [GG99, Ch 5]).Abbott, Bronstein and Mulders [ABM99] propose another determinant
algorithm based on solving Ax = v for a random integer vector v usingan iterative p-adic solving algorithm (e.g., [Dix82, MC79]). In particular,by Cramers rule the greatest common divisor of the denominators of theentries ofx is a divisord ofD= det(A). The unknown integerD/d can berecovered by computing it modulop for several primes and using the Chineseremainder theorem; usuallyD/dis very small, so this is fast. This approachhas a similar worst case bit complexity: O (n4 +n3(log n+ log A)2) but abetter average case complexity ofO
n3(log2 n+ log A)2
.
The computation time can also be improved by allowing early terminationin the Chinese remainder algorithm: once a reconstruction stabilizes mod-ulo several primes, the result is likely to remain the same with a certifiedprobability, and one can avoid the remaining modular computations.
Further details on practical implementations for computing determinantsof integer matrices can be found in [DU06].
Storjohann [Sto05] obtains the best known bit complexity for comput-ing determinants using a Las Vegas algorithm. He obtains a complexity ofO(n log A), where is the exponent for matrix multiplication. However,
6
-
7/26/2019 Hermite Normal Forms
7/19
no implementation of this algorithm is known that is better in practice than
the p-adic lifting based method for practical problem sizes. Consequently,we based our implementation on this latter algorithm by [ABM99]. See Ta-ble 9.2 for a table of timings that compares our determinant implementationto that in Magma and some other systems.
The computation of the two determinants (Steps 3 and 4) therefore in-volves the solving of two systems, with very similar matrices. We reduce itto only one system solution in the generic caseusing the following lemma.Since this is a bottleneck in the algorithm, this factor of two savings is hugein practice.
Lemma 3.1. LetA be ann (n 1) matrix andc andd column vectors of
degreen, and assume that the augmented matrices [A|c] and [A|d] are bothinvertible. Let x = (xi) be the solution of [A|c]x = d. If xn = 0, then thesolutiony= (yi) to [A|d]y= c is
y=
x1xn
, x2xn
, . . . , xn1
xn,
1
xn
.
Proof. Write ai for the ith column ofA. The equation [A|c]x = d is thusn1i=1 aixi
+cxn =d, so
n1i=1 aixi
d= xnc. Dividing both sides by
xn yieldsn1
i=1
xi
xn
ai
+ 1xn
d= c, which proves the lemma.
Example 3.2. Let A =
1 24 3
2 5
, c = (1, 3, 5)T, and d = (2, 3, 4)T.
The solution to [A|c]x= d is
x=
111
68,
35
68,45
68
.
Thus
y=
x1x3
, x2x3
, 1
x3
=
37
15,
7
9,68
45
.
Algorithm 2 (on page 8) describes how the two determinants are computedusing Lemma 3.1.
7
-
7/26/2019 Hermite Normal Forms
8/19
Algorithm 2: Double determinant computation
Data: B: an (n1)nmatrix over ZData: c, d: two vectors in Zn.Result: (d1, d2) =
det
BT c
, det
BT d
begin
Solve the system
BT
c
x= d using Dixons p-adic lifting.Thenyi = xi/xn,yn= 1/xn solves
BT d
y= c by Lemma 3.1,unlessxn= 0, in which case we use the usual determinantalgorithm to compute the determinants of the two matrices.u1 = lcm(denominators(x))u2 = lcm(denominators(y))Compute Hadamards boundsh1 and h2 on the determinants of
BT c
and
BT d
Select a set of primes (pi) s.t.
ipi> max(h1/u1, h2/u2)foreachpi do
computeBT =LU P, the LUP decomposition ofBT mod pi
q=
n
1i=1 Ui,i mod pix= L1c mod piy = L1d mod piv(i)1 =qxn mod pi
v(i)2 =qyn mod pi
reconstructv1 and v2 from (v(i)1 ) and (v
(i)2 ) using CRT
return (d1, d2) = (u1v1, u2v2)end
8
-
7/26/2019 Hermite Normal Forms
9/19
4. Hermite form modulog
Recall thatCis a square nonsingular matrix with small determinantg.Step 7 of Algorithm 1 (on page 5) is to compute the HNF ofCas explained in[DKLET87,3]. There it is proved that sinceg= det(C), the Hermite normal
form of
CgI
is
H0
where H is the Hermite normal form ofC. Using this
result, to computeH, we apply the standard row reduction Hermite normalform algorithm to C, always reducing all numbers modulo g. Conceptually,think of this as adding multiples of the rows ofgI, which does not changethe resulting Hermite form. At the end of this process we obtain a matrixH = (hij) with 0 hij < g for all ij. There is one special case; since the
product of the diagonal entries of the Hermite form ofC is g, if the lowerright entry ofH is 0, then we replace it by g. Then the resulting matrix His the Hermite normal form ofC.
For additional discussion of the modular Hermite form algorithm, see[Coh93, 2.4, pg. 71] which describes the algorithm in detail, including adiscussion of our above remark about replacing 0 by g .
Example 4.1. LetC=
5 262 11
. Then g = det(C) = 3, and the reduction
modgofCis
2 22 2
. Subtracting the second row from the first yields
2 20 0
,
which is already reduced modulo 3. Then multiplying through the first rowby1 and reducing modulo 3 again, we obtain
1 10 0
. Then, as mentioned
above, since the lower right entry is 0, we replace it by g = 3, obtaining the
Hermite normal formH=
1 10 3
.
5. Add a column
Step 8 of Algorithm 1 is to find a column vector e such that
H1 e
= U
B bscT +tdT an1,n
(5.1)
is in Hermite form, for a unimodular matrix U.
9
-
7/26/2019 Hermite Normal Forms
10/19
By HypothesisC= B
sc
T
+td
T is invertible, so from (5.1), one getse = U
b
an1,n1
= H1
B
scT +tdT
1
ban1,n1
In [MW01], the column e is computed using multi-modular computationsand a tight bound on the size of the entries ofe. We instead use the p-adiclifting algorithm of [Dix82, MC79] to solve the system
BscT +tdT
x=
ban1,n1
However, the last row scT +tdT typically has much larger coefficients thanthe rest of the matrix, thus unduly penalizing the complexity of finding asolution. Our key idea is to replace the rowscT +tdT by a random row uthat has small entries such that the resulting matrix is still invertible, findthe solutiony of this modified system, then recover x as follows. Let{k}bea basis of the 1-dimensional kernel ofB . Then the sought for solution of theoriginal system is
x= y +k,
wheresatisfies
(scT +tdT)(y+k) =an1,n1.
By linearity of the dot product, we have
=an1,n1(sc
T +tdT)y
(scT +tdT)k
Note that if (scT +tdT)k = 0, then Ck = 0, which would contradict our
assumption thatC=
B
scT +tdT
is invertible.
6. Add a row
Steps 9 and 10 of Algorithm 1 consist of adding a new row to the currentHermite form and updating it to obtain a new matrix in Hermite form.
The principle is to eliminate the new row with all existing pivots andupdate the already computed parts when necessary. Algorithm 4 (on page12) describes this in more detail.
10
-
7/26/2019 Hermite Normal Forms
11/19
Algorithm 3: AddColumn
Data: B=
B1 b2bT3 b4
: ann matrix over Z, where B1 is
(n1)(n1) and b2, b3 are vectors.
Data: H1: the Hermite normal form of
B1bT3
Result: H: the Hermite normal form ofBbegin
Pick a random vector u such that|ui| B i
Solve
B1u
y =
b2b4
Compute a kernel basis vectork ofB1= b4 b
T
3 ybT3k
x= y +ke= H1xreturn
H1 e
end
7. The Nonsquare Case
In the case where the matrix is rectangular, with dimensions mn, wereduce to the case of a square nonsingular matrix as follows: first computethe column and row rank profile (pivot columns and subset of independentrows) of A modulo a random word-size prime. With high probability, thematrixA has the same column and row rank profile over Q, so we can nowapply Algorithm 1 to the square nonsingular r rmatrix obtained by pickingthe row and column rank profile submatrix ofA over Z.
The additional rows and columns are then incorporated as follows:
additional columns: use Algorithm 3 (AddColumn) with a block of columnvectors instead of just one column. If this fails, then we computed therank profile incorrectly, in which case we start over with a different
random prime.additional rows: use Algorithm 4 (AddRow) for each additional row.
11
-
7/26/2019 Hermite Normal Forms
12/19
Algorithm 4: AddRow
Data: A: an mn matrix in Hermite normal formData: b: a vector of degree n
Result: H: the Hermite normal form of
Ab
begin
forall pivotsai,ji ofA doif bji = 0 then
continueif Ai,ji|bji then
b:= bbji/Ai,jiAi,1...n
else
/* Extended gcd based elimination */
(g,s,t) = XGCD(ai,ji, bji) ; /* so g= sai,ji+ tbji */Ai,1...n := sAi,1...n+tbjib:= bji/gAi,1...nAi,ji/gbfor k = 1 to i1 do
/* Reduces row k with row i */Ak,1...n := Ak,1...n Ak,ji/Ai,jiAi,1...n
if b= 0 thenletj be the index of the first nonzero element ofbinsertbT between rows i and i+ 1 such that ji< j < ji+1
ReturnH=
Ab
end
12
-
7/26/2019 Hermite Normal Forms
13/19
8. Saturation
If M is a submodule of Zn for some n, then the saturation of M isZn (QM), i.e., the intersection with Zn of the Q-span of any basis ofM.For example, ifMhas rankn, then the saturation ofMjust equals Zn. Also,kernels of homomorphisms of free Z-modules are saturated. Saturation comesup in many number theoretic algorithms, e.g., saturation is an important stepin computing a basis over Z for the space ofq-expansions of cuspidal modularforms of given weight and level, and comes up in explicit computation withhomology of modular curves using modular symbols.
There is a well-known connection between saturation and Hermite form.IfA is a basis matrix for M, and His the Hermite form of the transpose of
A with any 0 rows at the bottom deleted (so H is square), then H1
A is amatrix whose rows are a basis for the saturation ofM. Thus computationof a saturation of a matrix reduces to computation of one Hermite form andsolving a system H X=A.
IfA is sufficiently random, then the Hermite form matrix Hhas a verylarge last column and all other entries are small, so we exploit the trick inSection 6 and instead solve a much easier system. We give some timingsbelow in Table 9.3 of our implementation of this algorithm in Sage.
9. Sage Implementation and Timings
We implemented the algorithms described in this paper as part of Sage[Ste]. Note that our implementation relies on IML [SC] for the solution ofinteger systems usingp-adic lifting, and onLinBox[Lin] for the computationof determinants modulo p (the IML and LinBox libraries are both part ofSage). Our Sage implementation is currently primarily optimized for thesquare case, and all our timings below only involve Hermite forms of squarematrices.
We illustrate computing a Hermite normal form and saturation in Sage.
sage: A = matrix(ZZ,3,5,[-1,2,5,65,2,4,-1,-3,1,-2,-1,-2,1,-1,1])
sage: A
[-1 2 5 65 2][ 4 -1 -3 1 -2]
[-1 -2 1 -1 1]
sage: A.hermite_form()
[ 1 0 17 259 7]
13
-
7/26/2019 Hermite Normal Forms
14/19
[ 0 1 31 453 13]
[ 0 0 40 582 17]sage: A.saturation()
[-1 2 5 65 2]
[ 4 -1 -3 1 -2]
[-1 -2 1 -1 1]
There are implementations of Hermite normal form algorithms in NTL[Sho], Pari [PAR], and GAP [GAP]. The timings in Table 9.1 illustrate thatthe algorithm in this paper is asymptotically better than these standardimplementations. For example, reducing a 500x500 random matrix with 32-bit entries takes less than a minute in Sage (see Table 9.1), but over an hourin NTL, Pari, and GAP.
Table 9.1 also gives timings using Sage-3.2.3. All computations were runwith proof=True, so no termination conditions were used that could resultin a wrong answer with low probability. All timings in Table 9.1 were doneusing a single processor on a Sun Fire X4450 server equipped with Intel2.66Ghz X7460 Xeon processors3. For comparison, we also give timings forMagma [BCP97] V2.14-9, which is the only other software we know of thatimplements the algorithm of [MW01]. We give some timings using Pari[PAR] 2.3.3, NTL 5.4.2, and GAP 4.4.10 (these are the versions included inSage-3.2.3). We do not include timings for either Maple or Mathematica,since they are both much slower at computing Hermite forms than any other
system mentioned above, mainly because the only function for computingHermite form in Maple and Mathematica also computes the transformationmatrix.
3Purchased using National Science Foundation Grant No. DMS-0821725
14
-
7/26/2019 Hermite Normal Forms
15/19
Table 9.1: Time in seconds to compute the HNF of a random n nmatrix whose entriesare uniformly distributed in the interval [2b, 2b], where b =bits. For b < 512, we timefive runs and give the range of values obtained. We computed the HNFs of exactly thesame matrices in Sage and Magma.
n 8 bits 32 bits 128 bits 256 bits 512 bits
Sage 50 0.10.1 0.20.2 0.70.8 2.72.9 12.45250 4.15.4 6.67.1 33.637.0 102.8110.7 470.22500 24.826.6 38.843.5 179.4187.2 534.7566.1 2169.411000 164.9191.1 266.3282.8 1081.41143.0 2804.93149.9 105062000 1500.4 2837.54000 11537.3 17105.9
Magma 50 0.00.0 0.00.1 0.30.3 0.91.0 2.73250 0.91.1 11.514.5 60.187.6 196.4249.4 764.6500 6.88.6 183.5226.1 977.51004.5 2611.92649.4 7100.911000 70.874.6 1580.42017.3 7876.08582.9 21370.2 583392000 886.1 14917.84000 6096.5
NTL 50 0.09 0.31250 74.58 494.46500 1975 12199
GAP 50 0.12 0.19250 36.08 165.49500 712 3982
Pari 50 0.09 0.26250 163.69 776.91500 2925 15263
15
-
7/26/2019 Hermite Normal Forms
16/19
Table 9.2: Time in seconds to compute the determinantof a random n nmatrix whoseentries are uniformly distributed in the interval [2b, 2b], where b =bits.
n 8 bits 32 bits 128 bits 256 bits 512 bits
Sage 50 0.0 0.1 0.3 0.8 3.7250 1.3 2.0 9.1 31.5 138.2
500 7.2 12.6 54.9 190.2 646.61000 55.6 105.0 397.3 1057.4 3435.11500 230.6 407.0 1242.7 3255.8 8133.32000 544.1 997.1 2828.0 6138.2 15533.53000 1991.8 3132.5 7473.8 14385.3 39834.7
Magma 50 0.1 0.1 0.3 0.6 1.8250 0.4 12.8 62.9 192.3 659.2500 3.8 108.5 455.7 1175.5 4362.91000 40.1 677.7 3871.2 9406.8 25430.31500 122.4 3085.8 12327.8 28987.9 78741.32000 219.7 6097.1 26438.8 63898.0 185228.1
3000 1175.2 17868.7 82417.0 207316.0NTL 50 0.0 0.0 0.1 0.1 0.3
250 2.2 9.5 40.3 43.0 93.2500 46.6 119.3 359.3 1104.5 2100.81000 659.8 1943.2 7158.3 14538.8 28711.5
GAP 50 0.1 0.5 2.9 5.5 20.5250 107.7 548.4 4533.3
Pari 50 0.0 0.1 0.4 1.0 3.2250 667.6 1288.3 3856.3
16
-
7/26/2019 Hermite Normal Forms
17/19
Table 9.3: Time in seconds for Sage and Magma to compute thesaturation
of a randomn m matrix whose entries are uniformly distributed in the interval [2b, 2b], whereb=bits. When a range is given, we time ten runs and give the range of timings obtained.We computed the saturations of exactly the same matrices in Sage and Magma.
nm 8 bits 32 bits 128 bitsSage 100101 0.23.2 0.63.2 1.89.2
100150 0.30.5 0.44.7 1.89.7100300 0.34.8 0.410.5 1.914.8200201 1.312.0 2.212.8 10.361.1200300 1.33.4 2.318.2 11.075.5200600 1.544.8 2.338.8 20.683.6250251 2.326.1 3.633.6 18.999.6250375 2.34.9 3.758.1 18.6102.8250750 2.579.3 3.968.8 47.855.1300301 3.724.0 5.841.6 29.8159.2300450 3.842.5 6.359.4 26.769.3300900 4.1109.4 6.2172.2 25.7198.5500501 14.692.1 22.5145.7 91.4460.2500750 15.4246.7 22.3195.8 94.4237.65001500 15.830.8 21.3441.2 95.9873.3
Magma 100101 0.20.2 1.21.3 6.39.6
100150 0.30.3 1.92.3 9.611.9100300 0.70.8 3.95.0 22.026.8200201 2.02.3 17.323.3 86.0113.5200300 3.13.6 21.232.1 149.2185.6200600 7.17.8 43.351.0 232.5288.5250251 4.24.5 43.555.5 177.1216.3250375 6.57.6 55.164.0 272.8294.8250750 14.416.4 99.5107.7 426.1300301 7.88.4 73.891.5 378.5434.2300450 11.913.7 100.4128.9 369.9455.3300900 27.431.2 176.0203.0 822.9923.9
500501 46.548.7 323.5385.7 1576.81670.1500750 74.388.4 421.9554.9 2427.12731.35001500 164.7187.4 855.2935.8 4758.45593.7
17
-
7/26/2019 Hermite Normal Forms
18/19
References
[ABM99] Abbott, Bronstein, and Mulders, Fast deterministic computa-tion of determinants of dense matrices, International Sympo-sium on Symbolic and Algebraic Computation, ACM press,1999.
[BCP97] W. Bosma, J. Cannon, and C. Playoust, The Magma algebrasystem. I. The user language, J. Symbolic Comput. 24 (1997),no. 34, 235265, Computational algebra and number theory(London, 1993). MR 1 484 478
[Bra89] R. J. Bradford, Hermite normal forms for integer matrices,
European Conference on Computer Algebra (EUROCAL 87)(Berlin - Heidelberg - New York), Springer, June 1989, pp. 315316.
[Coh93] H. Cohen, A course in computational algebraic number theory,Springer-Verlag, Berlin, 1993. MR 94i:11105
[Dix82] John D. Dixon, Exact solution of linear equations usingp-adicexpansions, Numerische Mathematik 40 (1982), 137141.
[DKLET87] P. D. Domich, R. Kannan, and Jr L. E. Trotter,Hermite normal
form computation using modulo determinant arithmetic, Math-ematics of Operations Research 12 (1987), no. 1, 5059.
[DU06] Jean-Guillaume Dumas and Anna Urbanska, An introspectivealgorithm for the integer determinant, Proc. Transgressive Com-puting, Grenade Spain, april 2006, pp. 185202.
[GAP] GAP,Groups, algorithms, programminga system for computa-tional discrete algebra, http://www-gap.mcs.st-and.ac.uk/.
[GG99] Joachim von zur Gathen and Jurgen Gerhard,Modern computeralgebra, Cambridge University Press, New York, NY, USA,
1999.
[KB79] Ravindran Kannan and Achim Bachem,Polynomial algorithmsfor computing the smith and hermite normal forms of an integermatrix, SIAM J. Comput. 8 (1979), no. 4, 499507.
18
-
7/26/2019 Hermite Normal Forms
19/19
[Lin] The LinBox Group,LinBox: Exact linear algebra with dense and
blackbox matrices, (Version 1.1.5), http://www.linalg.org.[MC79] R. Moenck and J. Carter,Approximate algorithms to derive ex-
act solutions to systems of linear equations, Proceedings of theInternational Symposium on Symbolic and Algebraic Manipula-tion (EUROSAM 79) (Marseille, France) (Edward W. Ng, ed.),LNCS, vol. 72, Springer, June 1979, pp. 6573.
[MW01] Daniele Micciancio and Bogdan Warinschi,A linear space algo-rithm for computing the Hermite Normal Form, InternationalSymposium on Symbolic and Algebraic Computation, ACMpress, 2001, pp. 231236.
[PAR] PARI, A computer algebra system designed for fast computa-tions in number theory, http://pari.math.u-bordeaux.fr/.
[SC] Arne Storjohann and Zhuliang Chen, Integer Matrix Library,(Version 1.0.2), http://www.cs.uwaterloo.ca/~z4chen/iml.html.
[Sho] V. Shoup,NTL: Number theory library, www.shoup.net/ntl/.
[SL96] Arne Storjohann and George Labahn,Asymptotically fast com-
putation of Hermite normal forms of integer matrices, Proc.Intl. Symp. on Symbolic and Algebraic Computation: ISSAC96, ACM Press, 1996, pp. 259266.
[Ste] William Stein,Sage: Open Source Mathematical Software (Ver-sion 3.2.3), The Sage Group, http://www.sagemath.org.
[Sto98] Arne Storjohann,Computing Hermite and Smith normal formsof triangular integer matrices, Linear Algebra Appl 282 (1998),2545.
[Sto05] , The shifted number system for fast linear algebra on
integer matrices, Journal of Complexity 21 (2005), no. 4, 609650.
19