hermite normal forms

Upload: shotorbari

Post on 13-Apr-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 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