Magma

MAGMA Computational Algebra System

Magma
 •  How to get it
 •  Download
 •  Online Demo
 
Resources
 •  Online Help
 •  Discovering Mathematics with Magma
 •  Citations
 •  How to cite Magma
 •  Links
 •  Contact us
 
[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Class Group

ReducedForms(Q) : QuadBin -> [ QuadBinElt ]
Given the structure of quadratic forms of negative discriminant D, returns the sequence of all primitive reduced forms of discriminant D.
ReducedOrbits(Q) : QuadBin -> [ {@ QuadBinElt @} ]
Given the structure of quadratic forms of positive discriminant D, returns the sequence of all reduced orbits of primitive forms of discriminant D, as an indexed set.
ClassNumber(Q: parameters) : QuadBin -> RngIntElt
ClassNumber(D: parameters) : RngIntElt -> RngIntElt
    Al: MonStgElt                       Default: "ClassGroup"
    FactorBasisBound: FldPrElt          Default: 0.1
    ProofBound: FldPrElt                Default: 6
    ExtraRelations: RngIntElt           Default: 1
The class number of binary quadratic forms Q of discriminant D. The parameter Al may be supplied to select the method used to calculate the class number. The possible values are "ReducedForms" (enumerating all reduced forms), or "Shanks" (using a Shanks-based algorithm in the class group). The default is to use reduced form enumeration for small discriminants, the Shanks algorithm for the middle range, and a class group index-calculus for large discriminants.

The remaining parameters apply to the index-calculus computations only; for details about the parameters Factor-Basis-Bound, Proof-Bound and Extra-Relations see the description of ClassGroup.

ClassGroup(Q: parameters) : QuadBin -> GrpAb, Map
    FactorBasisBound: FldPrElt          Default: 0.1
    ProofBound: FldPrElt                Default: 6
    ExtraRelations: RngIntElt           Default: 1
The class group of the binary quadratic forms Q of discriminant D. The function also returns a map from the abelian group to the structure of quadratic forms.

Depending on the size of D, either a Shanks-based method is used ([Tes98], [BJT97]) or an index calculus variant ([CyDO93], [HM89], [Coh93]). The varargs FactorBasisBound, ProofBound and ExtraRelations apply to the index calculus method only. This method performs in two steps: In the first step a factor basis containing prime forms of norm < B1 is build. Next, one looks for generators for the full lattice of relations between the forms in the factorbasis. The determinant of this lattice will be the class number and the Smith-form of the relation matrix gives the structure of the class group. Once the matrix is of full rank, the algorithm will look for ExtraRelations more relations to potentially decrease the discriminant.

In the second stage, for all prime forms of norm < B2 it is verified that they are in the class group generated by the forms of the first step. The bounds are chosen to be B1 := FactorBasisBound.log2 |D| and B2 := ProofBound.log2 |D|, so the result is correct under the assumption of GRH.

The final result is then check against the Euler product over the first 30.000 primes. If the quotient becomes to large, a warning is issued. In this case on should increase the ExtraRelations parameter.

ClassGroupStructure(Q: parameters) : QuadBin -> [ RngIntElt ]
    FactorBasisBound: FldPrElt          Default: 0.1
    ProofBound: FldPrElt                Default: 6
    ExtraRelations: RngIntElt           Default: 1
The structure of the class group of the binary quadratic forms Q of discriminant D returned as a sequence of integers giving the abelian invariants.

For details about the varargs Factor-Basis-Bound, Proof-Bound and Extra-Relations, see ClassGroup.

AmbiguousForms(Q) : QuadBin -> SeqEnum
Enumerates the ambiguous forms of negative discriminant D, where D is the discriminant of the magma of binary quadratic forms Q.
TwoTorsionSubgroup(Q) : QuadBin -> GrpAb, Map
The subgroup of 2--torsion elements of in the class group of Q.

Example QuadBin_Forms (H30E1)

We give an example of some computations in the class group of a magma of quadratic forms. Elements in the class group are not really represented by single reduced forms but by cycles of equivalent reduced forms.

> Q<z> := QuadraticField(7537543);                        // arbitrary choice
> Q := QuadraticForms(Discriminant(Q));
> C, m := ClassGroup(Q);
> C;
Abelian Group isomorphic to Z/2 + Z/76
Defined on 2 generators
Relations:
    76*C.1 = 0
    2*C.2 = 0
>                                    // get the generators as quadratic forms:
> f := m(C.1);
> g := m(C.2);
> h := g^2;
> g, h;
<-1038,4894,1493> <-887,4340,3189>
> c := [];                     // create the cycle of forms equivalent to g^2:
> repeat 
>     h := ReductionStep(h);
>     Append(~c, h);
> until h eq g^2;
> P := Parent(g);
> Identity(P) in c;
true                 // this proves that the second class has order dividing 2
> for d in Divisors(76) do
>     c := [];
>     h := f^d;
>     repeat h := ReductionStep(h); Append(~c, h);
>     until h eq f^d;
>     d, Identity(P) in c, #c;
> end for;
1 false 16
2 false 14
4 false 12                           // the cycle lengths vary
19 false 18
38 false 16
76 true 14                           // so the true order of this class is 76

 [Next][Prev] [Right] [Left] [Up] [Index] [Root]
                       

Version: V2.15 of Tue Dec 23 15:17:23 EST 2008

Valid HTML 4.01! Valid CSS!