Creation of a Hyperelliptic Curve
HyperellipticCurve(f, h) : RngUPolElt, RngUPolElt -> CrvHyp
HyperellipticCurveOfGenus(g, f, h) : RngIntElt, RngUPolElt, RngUPolElt -> CrvHyp
HyperellipticCurve(E) : CrvEll -> CrvHyp, Map
Creation Predicates
IsHyperellipticCurve([f, h]) : [ RngUPolElt ] -> BoolElt, CrvHyp
IsHyperellipticCurveOfGenus(g, [f, h]) : RngIntElt, [RngUPolElt] -> BoolElt, CrvHyp
Example CrvHyp_Creation (H106E1)
Changing the Base Ring
BaseChange(C, K) : Sch, Fld -> Sch
BaseChange(C, j) : Sch, Map -> Sch
BaseChange(C, n) : Sch, RngIntElt -> Sch
ChangeRing(C, K) : Sch, Rng -> Sch
Example CrvHyp_BaseExtension (H106E2)
Models
SimplifiedModel(C) : CrvHyp -> CrvHyp, MapIsoSch
HasOddDegreeModel(C) : CrvHyp -> BoolElt, CrvHyp, MapIsoSch
IntegralModel(C) : CrvHyp -> CrvHyp, MapIsoSch
MinimalWeierstrassModel(C) : CrvHyp -> CrvHyp, MapIsoSch
pIntegralModel(C, p) : CrvHyp, RngIntElt -> CrvHyp, MapIsoSch
pNormalModel(C, p) : CrvHyp, RngIntElt -> CrvHyp, MapIsoSch
pMinimalWeierstrassModel(C, p) : CrvHyp, RngIntElt -> CrvHyp, MapIsoSch
ReducedModel(C) : CrvHyp -> CrvHyp, MapIsoSch
ReducedMinimalWeierstrassModel(C) : CrvHyp -> CrvHyp, MapIsoSch
SetVerbose("CrvHypReduce", v) : MonStgElt, RngIntElt ->
Predicates on Models
IsSimplifiedModel(C) : CrvHyp -> BoolElt
IsIntegral(C) : CrvHyp -> BoolElt
IspIntegral(C, p) : CrvHyp, RngIntElt -> BoolElt
IspNormal(C, p) : CrvHyp, RngIntElt -> BoolElt
IspMinimal(C, p) : CrvHyp, RngIntElt -> BoolElt, BoolElt
Twisting Hyperelliptic Curves
QuadraticTwist(C, d) : CrvHyp, RngElt -> CrvHyp
QuadraticTwist(C) : CrvHyp -> CrvHyp
QuadraticTwists(C) : CrvHyp -> SeqEnum
IsQuadraticTwist(C, D) : CrvHyp, CrvHyp -> BoolElt, RngElt
Example CrvHyp_QuadraticTwists (H106E3)
Example CrvHyp_QuadraticTwists (H106E4)
Type Change Predicates
IsEllipticCurve(C) : CrvHyp -> BoolElt, CrvEll, MapIsoSch, MapIsoSch
Elementary Invariants
HyperellipticPolynomials(C) : CrvHyp -> RngUPolElt, RngUPolElt
Degree(C) : CrvHyp -> RngIntElt
Discriminant(C) : CrvHyp -> RngElt
Genus(C) : CrvHyp -> RngIntElt
Igusa Invariants
ClebschInvariants(C) : CrvHyp -> SeqEnum
ClebschInvariants(f) : RngUPolElt -> SeqEnum
IgusaClebschInvariants(C: parameters) : CrvHyp -> SeqEnum
IgusaClebschInvariants(f, h) : RngUPolElt, RngUPolElt -> SeqEnum
IgusaClebschInvariants(f: parameters) : RngUPolElt -> SeqEnum
IgusaInvariants(C: parameters): CrvHyp -> SeqEnum
IgusaInvariants(f, h): RngUPolElt, RngUPolElt -> SeqEnum
IgusaInvariants(f: parameters) : RngUPolElt -> SeqEnum
ScaledIgusaInvariants(f, h): RngUPolElt, RngUPolElt -> SeqEnum
ScaledIgusaInvariants(f): RngUPolElt -> SeqEnum
AbsoluteInvariants(C) : CrvHyp -> SeqEnum
ClebschToIgusaClebsch(Q) : SeqEnum -> SeqEnum
IgusaClebschToIgusa(S) : SeqEnum -> SeqEnum
Base Ring
BaseField(C) : Sch -> Fld
Creation from Invariants
HyperellipticCurveFromIgusaClebsch(S) : SeqEnum -> CrvHyp
Example CrvHyp_CurveFromIgusa (H106E5)
Function Field and Polynomial Ring
FunctionField(C) : Sch -> FldFunG
DefiningPolynomial(C) : Sch -> RngMPolElt
EvaluatePolynomial(C, a, b, c) : CrvHyp, RngElt, RngElt, RngElt -> RngElt
Creation of Points
C ! [x, y] : CrvHyp, [RngElt] -> PtHyp
C ! P : CrvHyp, PtHyp -> PtHyp
Points(C, x) : CrvHyp, RngElt -> SetIndx
PointsAtInfinity(C) : CrvHyp -> SetIndx
IsPoint(C, S) : CrvHyp, SeqEnum -> BoolElt, PtHyp
Example CrvHyp_points-at-infinity-on-hypcurves (H106E6)
Random Points
Random(C) : CrvHyp -> PtHyp
Predicates on Points
P eq Q : PtHyp, PtHyp -> BoolElt
P ne Q : PtHyp, PtHyp -> BoolElt
Access Operations
P[i] : PtHyp, RngIntElt -> RngElt
Eltseq(P) : PtHyp -> SeqEnum
Arithmetic of Points
- P : PtHyp -> PtHyp
Enumeration and Counting Points
NumberOfPointsAtInfinity(C) : CrvHyp -> RngIntElt
PointsAtInfinity(C) : CrvHyp -> SetIndx
# C : CrvHyp -> RngIntElt
Points(C) : CrvHyp -> SetIndx
PointsKnown(C) : CrvHyp -> BoolElt
ZetaFunction(C) : CrvHyp -> FldFunRatUElt
ZetaFunction(C, K) : CrvHyp, FldFin -> FldFunRatUElt
Example CrvHyp_PointEnumeration (H106E7)
Frobenius
Frobenius(P, F) : PtHyp, FldFin -> PtHyp
Isomorphisms and Transformations
Creation of Isomorphisms
Aut(C) : CrvHyp -> PowAutSch
Iso(C1, C2) : CrvHyp, CrvHyp -> PowIsoSch
Transformation(C, t) : CrvHyp, [RngElt] -> CrvHyp, MapIsoSch
Example CrvHyp_Transformation (H106E8)
Arithmetic with Isomorphisms
f * g : MapIsoSch, MapIsoSch -> MapIsoSch
Inverse(f) : MapIsoSch -> MapIsoSch
f in M : MapIsoSch, PowIsoSch -> BoolElt
P @ f : PtHyp, MapIsoSch -> PtHyp
P @@ f : PtHyp, MapIsoSch -> PtHyp
f eq g : MapIsoSch, MapIsoSch -> BoolElt
Invariants of Isomorphisms
Parent(f) : MapIsoSch -> PowIsoSch
Domain(f) : MapIsoSch -> CrvHyp
Codomain(f) : MapIsoSch -> CrvHyp
Automorphism Group and Isomorphism Testing
IsGL2Equivalent(f, g, n) : RngUPolElt, RngUPolElt, RngIntElt -> BoolElt, SeqEnum
IsIsomorphic(C1, C2) : CrvHyp, CrvHyp -> BoolElt, MapIsoSch
AutomorphismGroup(C) : CrvHyp -> GrpPerm, Map, Map
Example CrvHyp_Automorphism_Group (H106E9)
GeometricAutomorphismGroup(C) : CrvHyp -> Grp, Tup
Example CrvHyp_Geometric_Automorphism_Group (H106E10)
Creation of a Jacobian
Jacobian(C) : CrvHyp -> JacHyp
Access Operations
Curve(J) : JacHyp -> CrvHyp
Dimension(J) : JacHyp -> RngIntElt
Base Ring
BaseField(J) : JacHyp -> Fld
Changing the Base Ring
BaseChange(J, F) : JacHyp, Rng -> JacHyp
BaseChange(J, j) : JacHyp, Map -> JacHyp
BaseChange(J, n) : JacHyp, RngIntElt -> JacHyp
Creation of Points
J ! 0 : JacHyp, RngIntElt -> JacHypPt
J ! [a, b] : JacHyp, [ RngUPolElt ] -> JacHypPt
P - Q : PtHyp, PtHyp -> JacHypPt
J ! [S, T] : [[PtHyp]] -> JacHypPt
JacobianPoint(J, D) : JacHyp, DivCrvElt -> JacHypPt
J ! P : JacHyp, JacHypPt -> JacHypPt
Points(J, a, d) : JacHyp, RngUPolElt, RngIntElt -> SetIndx
Example CrvHyp_point_creation_jacobian (H106E11)
Example CrvHyp_point_creation_jacobian2 (H106E12)
Example CrvHyp_point_creation_jacobian3 (H106E13)
Random Points
Random(J) : JacHyp -> JacHypPt
Booleans and Predicates for Points
P eq Q : JacHypPt, JacHypPt -> BoolElt
P ne Q : JacHypPt, JacHypPt -> BoolElt
IsZero(P) : JacHypPt -> BoolElt
Access Operations
P[i] : JacHypPt, RngIntElt -> RngElt
Eltseq(P) : PtHyp -> SeqEnum, RngIntElt
Arithmetic of Points
- P : JacHypPt -> JacHypPt
P + Q : JacHypPt, JacHypPt -> JacHypPt
P +:= Q : JacHypPt, JacHypPt ->
P - Q : JacHypPt, JacHypPt -> JacHypPt
P -:= Q : JacHypPt, JacHypPt ->
n * P : RngIntElt, JacHypPt -> JacHypPt
P *:= n : JacHypPt, RngIntElt ->
Order of Points on the Jacobian
Order(P) : JacHypPt -> RngIntElt
Order(P, l, u) : JacHypPt, RngIntElt, RngIntElt -> RngIntElt
Order(P, l, u, n, m) : JacHypPt, RngIntElt, RngIntElt ,RngIntElt, RngIntElt -> RngIntElt
HasOrder(P, n) : JacHypPt, RngIntElt -> BoolElt
Frobenius
Frobenius(P, k) : JacHypPt, FldFin -> JacHypPt
Weil Pairing
WeilPairing(P, Q, m) : JacHypPt, JacHypPt, RngIntElt -> RngElt
Example CrvHyp_Jac_WeilPairing (H106E14)
Rational Points and Group Structure over finite fields
Enumeration of Points
Points(J) : JacHyp -> SetIndx
Counting Points on the Jacobian
SetVerbose("JacHypCnt", v) : MonStgElt, RngIntElt ->
# J : JacHyp -> RngIntElt
Example CrvHyp_Jac_Point_Counting (H106E15)
Example CrvHyp_kedlaya (H106E16)
Example CrvHyp_mestre (H106E17)
Example CrvHyp_genus2-methods (H106E18)
Example CrvHyp_shanks-pollard (H106E19)
Example CrvHyp_shanks-pollard (H106E20)
FactoredOrder(J) : JacHyp -> [ <RngIntElt, RngIntElt> ]
EulerFactor(J) : JacHyp -> RngUPolElt
EulerFactorModChar(J) : JacHyp -> RngUPolElt
EulerFactor(J, K) : JacHyp, FldFin -> RngUPolElt
Deformation Point Counting
JacobianOrdersByDeformation(Q, Y) : RngMPolElt, SeqEnum -> SeqEnum
Example CrvHyp_def_hyp_pt_cnt_ex (H106E21)
Abelian Group Structure
Sylow(J, p) : JacHyp, RngIntElt -> GrpAb, Map, Eseq
AbelianGroup(J) : JacHyp -> GrpAb, Map
HasAdditionAlgorithm(J) : JacHyp -> Bool
Jacobians over Number Fields or Q
Searching For Points
Points(J) : JacHyp -> SetIndx
Torsion
TwoTorsionSubgroup(J) : JacHyp -> GrpAb, Map
TorsionBound(J, n) : JacHyp, RngIntElt -> RngIntElt
TorsionSubgroup(J) : JacHyp -> GrpAb, Map
Example CrvHyp_TorsionGroups (H106E22)
Heights and Regulator
NaiveHeight(P) : JacHypPt -> FldPrElt
Height(P: Precision) : JacHypPt -> FldPrElt
HeightConstant(J: parameters) : JacHyp -> FldPrElt, FldPrElt
HeightPairing(P, Q: Precision) : JacHypPt, JacHypPt -> FldPrElt
HeightPairingMatrix(S: Precision) : [JacHypPt] -> AlgMat
Regulator(S: Precision) : [JacHypPt] -> FldPrElt
ReducedBasis(S: Precision) : [JacHypPt] -> SeqEnum, AlgMatElt
Example CrvHyp_HeightPairing (H106E23)
Example CrvHyp_HeightPairing2 (H106E24)
The 2-Selmer Group
BadPrimes(C) : CrvHyp -> SeqEnum
HasSquareSha(J) : JacHyp -> BoolElt
IsDeficient(C, p) : CrvHyp, RngIntElt -> BoolElt
RankBound(J) : JacHyp -> RngIntElt
Example CrvHyp_2-selmer-group (H106E25)
Example CrvHyp_nonsquare-sha (H106E26)
Chabauty's Method
Chabauty0(J) : JacHyp -> SetIndx
Chabauty(P, p: Precision) : JacHypPt, RngIntElt -> SetIndx
Example CrvHyp_chabauty-method1 (H106E27)
Example CrvHyp_chabauty-method2 (H106E28)
Example CrvHyp_chabauty-method3 (H106E29)
Example CrvHyp_chabauty-method4 (H106E30)
Creation of a Kummer Surface
KummerSurface(J) : JacHyp -> SrfKum
Structure Operations
DefiningPolynomial(K) : SrfKum -> RngMPolElt
Base Ring
BaseField(K) : SrfKum -> Fld
Changing the Base Ring
BaseChange(K, F) : SrfKum, Rng -> SrfKum
BaseChange(K, j) : SrfKum, Map -> SrfKum
BaseChange(K, n): SrfKum, RngIntElt -> SrfKum
Creation of Points
K ! 0 : SrfKum, RngIntElt -> SrfKumPt
K ! [x1, x2, x3, x4] : SrfKum, [ RngElt ] -> SrfKumPt
K ! P : SrfKum, SrfKumPt -> SrfKumPt
IsPoint(K, S) : SrfKum, [RngElt] -> BoolElt, SrfKumPt
Points(K,[x1, x2, x3]) : SrfKum, [RngElt] -> SetIndx
Access Operations
P[i] : SrfKumPt, RngIntElt -> RngElt
Eltseq(P) : SrfKumPt -> SeqEnum
Predicates on Points
P eq Q : SrfKumPt, SrfKumPt -> BoolElt
P ne Q : SrfKumPt, SrfKumPt -> BoolElt
Arithmetic of Points
- P : SrfKumPt -> SrfKumPt
n * P : RngIntElt, SrfKumPt -> SrfKumPt
Double(P) : SrfKumPt -> SrfKumPt
PseudoAdd(P1, P2, P3) : SrfKumPt, SrfKumPt, SrfKumPt -> SrfKumPt
PseudoAddMultiple(P1, P2, P3, n) : SrfKumPt, SrfKumPt, SrfKumPt, RngIntElt -> SrfKumPt
Rational Points on the Kummer Surface
RationalPoints(K, Q) : SrfKum, [RngElt] -> SetIndx
Example CrvHyp_KummerRationalPoints (H106E31)
Pullback to the Jacobian
Points(J, P) : JacHyp, SrfKumPt -> SetIndx
Analytic Jacobians of Hyperelliptic Curves
Creation and Access Functions
AnalyticJacobian(f) : RngUPolElt -> AnHcJac
HyperellipticPolynomial(A) : AnHcJac -> RngUPolElt
SmallPeriodMatrix(A) : AnHcJac -> AlgMatElt
BigPeriodMatrix(A) : AnHcJac -> AlgMatElt
HomologyBasis(A) : AnHcJac -> SeqEnum, SeqEnum, Mtrx
Dimension(A) : AnHcJac -> RngIntElt
BaseField(A) : JacHyp -> Fld
Maps between Jacobians
ToAnalyticJacobian(x, y, A) : FldComElt, FldComElt, AnHcJac -> Mtrx
FromAnalyticJacobian(z, A) : Mtrx, AnHcJac -> SeqEnum
Example CrvHyp_Analytic_Jacobian_Addition (H106E32)
Isomorphisms, Isogenies and Endomorphism Rings of Analytic Jacobians
To2DUpperHalfSpaceFundamentalDomian(z) : Mtrx -> Mtrx, Mtrx
AnalyticHomomorphisms(t1, t2) : Mtrx, Mtrx -> SeqEnum
IsIsomorphicSmallPeriodMatrices(t1,t2) : Mtrx, Mtrx -> Bool, Mtrx
IsIsomorphicBigPeriodMatrices(P1, P2) : Mtrx, Mtrx -> Bool, Mtrx, Mtrx
IsIsomorphic(A1, A2) : AnHcJac, AnHcJac -> Bool, Mtrx, Mtrx
IsIsogenousPeriodMatrices(P1, P2) : Mtrx, Mtrx -> Bool, Mtrx
IsIsogenous(A1, A2) : AnHcJac, AnHcJac -> Bool, Mtrx, Mtrx
EndomorphismRing(P) : Mtrx -> AlgMat
EndomorphismRing(A) : AnHcJac -> AlgMat, SeqEnum
Example CrvHyp_Find_Rational_Isogeny (H106E33)
From Period Matrix to Curve
RosenhainInvariants(t) : Mtrx -> Set
Example CrvHyp_Find_CM_Curve (H106E34)