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

HYPERELLIPTIC CURVES

 
Acknowledgements
 
Introduction
 
Creation Functions
      Creation of a Hyperelliptic Curve
      Creation Predicates
      Changing the Base Ring
      Models
      Predicates on Models
      Twisting Hyperelliptic Curves
      Type Change Predicates
 
Operations on Curves
      Elementary Invariants
      Igusa Invariants
      Shioda Invariants
      Base Ring
 
Creation from Invariants
 
Function Field
      Function Field and Polynomial Ring
 
Points
      Creation of Points
      Random Points
      Predicates on Points
      Access Operations
      Arithmetic of Points
      Enumeration and Counting Points
      Frobenius
 
Isomorphisms and Transformations
      Creation of Isomorphisms
      Arithmetic with Isomorphisms
      Invariants of Isomorphisms
      Automorphism Group and Isomorphism Testing
 
Jacobians
      Creation of a Jacobian
      Access Operations
      Base Ring
      Changing the Base Ring
 
Richelot Isogenies
 
Points on the Jacobian
      Creation of Points
      Random Points
      Booleans and Predicates for Points
      Access Operations
      Arithmetic of Points
      Order of Points on the Jacobian
      Frobenius
      Weil Pairing
 
Rational Points and Group Structure over Finite Fields
      Enumeration of Points
      Counting Points on the Jacobian
      Deformation Point Counting
      Abelian Group Structure
 
Jacobians over Number Fields or Q
      Searching For Points
      Torsion
      Heights and Regulator
      The 2-Selmer Group
 
Two-Selmer Set of a Curve
 
Chabauty's Method
 
Cyclic Covers of P1
      Points
      Descent
      Descent on the Jacobian
      Partial Descent
 
Kummer Surfaces
      Creation of a Kummer Surface
      Structure Operations
      Base Ring
      Changing the Base Ring
 
Points on the Kummer Surface
      Creation of Points
      Access Operations
      Predicates on Points
      Arithmetic of Points
      Rational Points on the Kummer Surface
      Pullback to the Jacobian
 
Analytic Jacobians of Hyperelliptic Curves
      Creation and Access Functions
      Maps between Jacobians
            Isomorphisms, Isogenies and Endomorphism Rings of Analytic Jacobians
      From Period Matrix to Curve
      Voronoi Cells
 
Bibliography







DETAILS

 
Introduction

 
Creation Functions

      Creation of a Hyperelliptic Curve
            HyperellipticCurve(f, h) : RngUPolElt, RngUPolElt -> CrvHyp
            HyperellipticCurve(P, f, h) : Prj, 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 (H125E1)

      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 (H125E2)

      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
            Twists(C) : CrvHyp -> SeqEnum[CrvHyp], GrpPerm
            HyperellipticPolynomialsFromShiodaInvariants(JI) : SeqEnum -> SeqEnum, GrpPerm
            Example CrvHyp_QuadraticTwists (H125E3)
            Example CrvHyp_QuadraticTwists (H125E4)
            Example CrvHyp_QuadraticTwists (H125E5)

      Type Change Predicates
            IsEllipticCurve(C) : CrvHyp -> BoolElt, CrvEll, MapIsoSch, MapIsoSch

 
Operations on Curves

      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
            G2Invariants(C) : CrvHyp -> SeqEnum
            G2ToIgusaInvariants(GI) : SeqEnum -> SeqEnum
            IgusaToG2Invariants(JI) : SeqEnum -> SeqEnum

      Shioda Invariants
            ShiodaInvariants(C) : CrvHyp -> SeqEnum, SeqEnum
            ShiodaInvariantsEqual(V1,V2) : SeqEnum, SeqEnum -> BoolElt
            DiscriminantFromShiodaInvariants(JI) : SeqEnum -> RngElt
            ShiodaAlgebraicInvariants(FJI) : SeqEnum -> SeqEnum
            Example CrvHyp_shioda-inv-ex (H125E6)
            MaedaInvariants(C) : CrvHyp -> SeqEnum

      Base Ring
            BaseField(C) : Sch -> Fld

 
Creation from Invariants
      HyperellipticCurveFromIgusaClebsch(S) : SeqEnum -> CrvHyp
      HyperellipticCurveFromG2Invariants(S) : SeqEnum[FldFin] -> CrvHyp, GrpFP
      HyperellipticCurveFromShiodaInvariants(JI) : SeqEnum[FldFin] -> CrvHyp, GrpPerm
      Example CrvHyp_CurveFromInvts (H125E7)

 
Function Field

      Function Field and Polynomial Ring
            FunctionField(C) : Sch -> FldFunG
            DefiningPolynomial(C) : Sch -> RngMPolElt
            EvaluatePolynomial(C, a, b, c) : CrvHyp, RngElt, RngElt, RngElt -> RngElt

 
Points

      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 (H125E8)

      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 (H125E9)

      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 (H125E10)

      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 (H125E11)
            GeometricAutomorphismGroup(C) : CrvHyp -> GrpFP
            GeometricAutomorphismGroupFromShiodaInvariants(JI) : SeqEnum -> GrpPerm
            Example CrvHyp_Geometric_Automorphism_Group (H125E12)
            GeometricAutomorphismGroupGenus2Classification(F) : FldFin -> SeqEnum,SeqEnum
            GeometricAutomorphismGroupGenus3Classification(F) : FldFin -> SeqEnum,SeqEnum
            Example CrvHyp_aut_class (H125E13)

 
Jacobians

      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

 
Richelot Isogenies
      RichelotIsogenousSurfaces(J) : JacHyp -> List, List
      RichelotIsogenousSurface(J, kernel) : JacHyp, RngUPolElt[RngUPolRes] -> .
      Example CrvHyp_richelot_isogeny (H125E14)

 
Points on the Jacobian

      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 (H125E15)
            Example CrvHyp_point_creation_jacobian2 (H125E16)
            Example CrvHyp_point_creation_jacobian3 (H125E17)

      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 (H125E18)

 
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 (H125E19)
            Example CrvHyp_kedlaya (H125E20)
            Example CrvHyp_kedlaya2 (H125E21)
            Example CrvHyp_mestre (H125E22)
            Example CrvHyp_shanks-pollard (H125E23)
            Example CrvHyp_shanks-pollard (H125E24)
            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 (H125E25)

      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 (H125E26)

      Heights and Regulator
            NaiveHeight(P) : JacHypPt -> FldPrElt
            Height(P: parameters) : JacHypPt -> FldPrElt
            HeightConstant(J: parameters) : JacHyp -> FldPrElt, FldPrElt
            HeightPairing(P, Q: parameters) : JacHypPt, JacHypPt -> FldPrElt
            HeightPairingMatrix(S: Precision) : [JacHypPt] -> AlgMat
            Regulator(S: Precision) : [JacHypPt] -> FldPrElt
            ReducedBasis(S: Precision) : [JacHypPt] -> SeqEnum, AlgMatElt
            Example CrvHyp_HeightPairing (H125E27)
            Example CrvHyp_HeightPairing2 (H125E28)

      The 2-Selmer Group
            BadPrimes(C) : CrvHyp -> SeqEnum
            HasSquareSha(J) : JacHyp -> BoolElt
            IsDeficient(C, p) : CrvHyp, RngIntElt -> BoolElt
            HasIndexOne(C,p) : CrvHyp, RngIntElt -> BoolElt
            HasIndexOneEverywhereLocally(C) : CrvHyp -> BoolElt
            TwoSelmerGroup(J) : JacHyp -> GrpAb, Map, Any, Any
            RankBound(J) : JacHyp -> RngIntElt
            Example CrvHyp_2-selmer-group (H125E29)
            Example CrvHyp_nonsquare-sha (H125E30)
            Example CrvHyp_sha_visibility (H125E31)
            Example CrvHyp_BetterRankBounds (H125E32)
            Example CrvHyp_DisregardTheWarning (H125E33)

 
Two-Selmer Set of a Curve
      TwoCoverDescent(C) : CrvHyp -> SetEnum, Map, [Map, SeqEnum]
      Example CrvHyp_Two-cover descent (H125E34)

 
Chabauty's Method
      Chabauty0(J) : JacHyp -> SetIndx
      Chabauty(P : ptC) : JacHypPt -> SetIndx
      Chabauty(P, p: Precision) : JacHypPt, RngIntElt -> SetIndx
      Example CrvHyp_chabauty-method1 (H125E35)
      Example CrvHyp_chabauty-method2 (H125E36)
      Example CrvHyp_chabauty-method4 (H125E37)
      Example CrvHyp_chabauty-method3 (H125E38)

 
Cyclic Covers of P1

      Points
            RationalPoints(f,q) : RngUPolElt, RngIntElt -> SetIndx
            HasPoint(f,q,v) : RngUPolElt, RngIntElt, RngIntElt -> BoolElt, SeqEnum
            HasPointsEverywhereLocally(f,q) : RngUPolElt, RngIntElt -> BoolElt

      Descent
            qCoverDescent(f,q) : RngUPolElt, RngIntElt -> Set, Map
            Example CrvHyp_qcoverdescent (H125E39)

      Descent on the Jacobian
            PhiSelmerGroup(f,q) : RngUPolElt, RngIntElt -> GrpAb, Map
            Example CrvHyp_qcoverdescent (H125E40)

      Partial Descent
            qCoverPartialDescent(f,factors,q) : RngUPolElt, [* RngUPolElt *], RngIntElt -> Set, Map
            Example CrvHyp_qcoverpartialdescent (H125E41)

 
Kummer Surfaces

      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

 
Points on the Kummer Surface

      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 (H125E42)

      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 (H125E43)

            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 (H125E44)

      From Period Matrix to Curve
            RosenhainInvariants(t) : Mtrx -> Set
            Example CrvHyp_Find_CM_Curve (H125E45)

      Voronoi Cells
            Delaunay(sites) : SeqEnum -> SeqEnum
            Voronoi(sites) : SeqEnum -> SeqEnum, SeqEnum, SeqEnum

 
Bibliography

[Next][Prev] [Right] [____] [Up] [Index] [Root]
Version: V2.19 of Mon Dec 17 14:40:36 EST 2012