Basic Invariants

Structures of binary quadratic forms are defined in terms of a discriminant, and membership in a structure determined by this invariant. To aid in the construction of forms, additional elementary functions are provided to test integer inputs to determine if they define valid discriminants of quadratic forms.

Discriminant(f) : QuadBinElt -> RngIntElt
The discriminant b2 - 4ac of a quadratic form f=aX2 + bXY + cY2.
Discriminant(Q) : QuadBin -> RngIntElt
The discriminant of the quadratic forms in the structure Q.

IsDiscriminant(D) : RngIntElt -> BoolElt
True iff the integer D is the discriminant of some quadratic form. This holds iff D is congruent to 0 or 1 mod 4.
IsFundamental(D) : RngIntElt -> BoolElt
IsFundamentalDiscriminant(D) : RngIntElt -> BoolElt
True iff the integer D is a fundamental discriminant, i.e. a discriminant that is not a square multiple of any smaller discriminant.
FundamentalDiscriminant(D) : RngIntElt -> RngIntElt
The fundamental discriminant D0 such that D is a square multiple of D0.
Conductor(Q) : QuadBin -> RngIntElt
Let D be Discriminant(Q). The conductor is the integer m such that D = m2 D0, where D0 is the fundamental discriminant.
V2.28, 13 July 2023