Assorted Magma programs
Some of these may have been incorporated into recent releases and
hence are now redundant:
- nfhtbound.m: intrinsics implementing
both Silverman and Cremona-Prickett-Siksek bounds on naive and
canonical heights for elliptic curves over number fields. Released
under GPL.
- conicsFF.m: Functions to solve and parametrize
conics over function fields of the form F(t1,t2,...,tn), where F is a
field of characteristic not 2, following Cremona & van Hoeij,
implemented by Cremona and Roberts.
- intrinsic Conic(S::SeqEnum[RngElt]) -> CrvCon
For a sequence of coefficients [a,b,c,d,e,f], returns the conic defined by
a*X^2+b*Y^2+c*Z^2+d*X*Y+e*Y*Z+f*X*Z; or for a sequence [a,b,c], returns the
conic a*X^2+b*Y^2+c*Z^2
- intrinsic Matrix(C::CrvCon) -> AlgMatElt
Returns the (symmetric) defining matrix M of the conic C
i.e. C is given by the equation [X,Y,Z]*M*[X,Y,Z]^T where T denotes transpose.
- intrinsic Conic(M::AlgMatElt) -> CrvCon
Returns the conic defined by the 3 x 3 matrix M
- intrinsic HasRationalPoint_FldFun(C::CrvCon) -> BoolElt,Pt
Returns true if the Conic C has a point
- intrinsic DS_Parametrization(C::CrvCon) -> MapSch
Parametrization of the conic C
- ternquadFT.m: Functions to solve
non-diagonal conics over F(t) (i.e. tern(ary)quad(ratics)) using
minimization and reduction of the associated symmetric 3x3 matrix of
polynomials. The minimization step terminates iff there is a
solution, giving an equivalent unimodular matrix (i.e. with constant
determinant). Then the reduction step reduces the maximum degree of
the entries, by copying the analogous algorithm over Z described by
Gauss in Article 272 of Disquisitiones. This second step is not
efficient except when F is a finite field; it leads to an equation
over F which is then solved by recursion.
- esign.m: Function to compute local and
global root numbers of elliptic curves, currrently only over Q.
- intrinsic GlobalRootNumber(e::CrvEll) -> RngIntElt
{Given E, an elliptic curve over Q, returns +1 or -1, being the "global root number"
or sign of the functional equation of L(E,s).}
- intrinsic LocalRootNumber(e::CrvEll,p::RngIntElt) -> RngIntElt
{Given E, an elliptic curve over Q, and a prime number p, returns +1 or -1,
being the "local root number" of E at p.}
- divpt.m: My function to simulate
Inverse(MultiplicationByMMap(E,m)), giving a clean result when the
given point cannot be divided by m
- intrinsic DividePoint(pt::PtEll,m::RngIntElt) -> BoolElt, PtEll
{Given an point P on an elliptic curve E and a positive integer m, returns either true,Q if P=m*Q has a solution Q in E, else false,_ .}
This is now redundant: Magma 2.10 has a function
DivisionPoints(P,m) which does what is required
- modsq.m: Utility functions for Qp^*/(Qp^*)^2
for p=infty,2 or odd primes
- intrinsic Qpchar(p::RngIntElt) -> Map, Map
{Given a prime p or 0, returns two maps between
Q_p^*/(Q_p^*)^2 and VectorSpace(GF(2),d)
where d=1,2 or 3 for p=0,odd or 2.}
- modsq2.m: Useful functions from Stoll's
CrvHyp package:
- intrinsic MyResidueClassField(pid::RngOrdIdl) -> FldFin, Map
{ Given a prime ideal, returns the residue field Order(pid)/pid
together with the reduction map from the ring of pid-integral
elements in the corresponding number field to the residue field.
This map has an inverse.}
- intrinsic MakeModSquares(K::FldNum, pid::RngOrdIdl) -> ModTupFld, Map
{ (K::FldNum, pid::prime ideal in K)
Returns a GF(2)-vector space V and a map K^* -> V
with kernel the elements that are squares in the completion. }
- intrinsic MakeIsSquare(pid::RngOrdIdl) -> UserProgram
{ Given a prime ideal in some order O, return a function that decides
whether its argument (an element of O) is a square in the completion
of O at pid. }
- intrinsic MakeIsSquare(p::RngIntElt) -> UserProgram
{ Given a prime number p, return a function that decides
whether its argument (an integer) is a square in Z_p. }
- intrinsic MakeIsSquare(I::RngInt) -> UserProgram
{ Given a prime ideal pZ in the integers, return a function that decides
whether its argument (an integer) is a square in Z_p. }
- intrinsic MakeModSquares(K::FldNum, p::RngIntElt) -> ModTupFld, Map
{ (K::FldNum, p::rational prime)
Returns a GF(2)-vector space V and a map K^* -> V
with kernel the elements that are squares in all the completions of K
at primes above p. }
- q4red.m: Stoll's functions for reducing an
intersection of two quadric surfaces
- intrinsic Covariant(Q1::RngMPolElt, Q2::RngMPolElt) -> AlgMatElt
{Compute the covariant of the pair of quadratic forms Q1, Q2.}
- intrinsic Covariant(mat1::AlgMatElt, mat2::AlgMatElt) -> AlgMatElt
{Compute the covariant of a pair of symmetric 4x4 matrices.}
- intrinsic Reduce(Q1::RngMPolElt, Q2::RngMPolElt : AdHocOnly := false, NoAdHoc := false)
-> RngMPolElt, RngMPolElt, AlgMatElt
{Computes a reduced pencil in the SL_4(Z)-equivalence class of .}
- t3red.m: Stoll's functions for reducing a
ternary cubic
- intrinsic Flexes(C::RngMPolElt) -> SeqEnum
{Finds the real and complex flexes of a ternary cubic over Q.}
- intrinsic LinesFromFlexes(flexes::SeqEnum) -> SeqEnum
{Given a sequence of nine flexes of a ternary cubic, finds the
line through the 3 real flexes, its complementary factor, and
the three real lines through a real and two complex flexes.}
- intrinsic CovariantFromLines(lines::[RngMPolElt]) -> RngMPolElt
{Finds the covariant positive definite Hermitian form from the
given lines through the flexes of a ternary cubic.}
- intrinsic Covariant(C::RngMPolElt) -> RngMPolElt
{Computes the positive definite Hermitian covariant of a ternary cubic
as a real quadratic form.}
- intrinsic Reduce(C::RngMPolElt) -> RngMPolElt, AlgMatElt
{Computes a reduced form in the SL_3(Z)-equivalence class of C.}
[Back] to JC's home page