# Modular Forms

- [Introduction](introduction.md)

  - [Modular Forms](introduction.md#modular-forms)

  - [About the Package](introduction.md#about-the-package)

  - [Categories](introduction.md#categories)

  - [Verbose Output](introduction.md#verbose-output)

    - [`Example: Basics`](introduction.md#example-ex-021995)

  - [An Illustrative Overview](introduction.md#an-illustrative-overview)

    - [`Example: Overview`](introduction.md#example-ex-1436f8)

- [Creation Functions](creation.md)

  - [Ambient Spaces](creation.md#ambient-spaces)

    - [`ModularForms(N): RngIntElt → ModFrm`](creation.md#function-modularforms-rngintelt)

    - [`ModularForms(N, k): RngIntElt, RngIntElt → ModFrm`](creation.md#function-modularforms-rngintelt-rngintelt)

    - [`ModularForms(eps, k): GrpDrchElt, RngIntElt → ModFrm`](creation.md#function-modularforms-grpdrchelt-rngintelt)

    - [`ModularForms(chars, k): [GrpDrchElt], RngIntElt → ModFrm`](creation.md#function-modularforms-grpdrchelt-rngintelt-2)

    - [`ModularForms(G, k): GrpPSL2, RngIntElt → ModFrm`](creation.md#function-modularforms-grppsl2-rngintelt)

    - [`ModularForms(G): GrpPSL2 → ModFrm`](creation.md#function-modularforms-grppsl2)

    - [`CuspForms(x): Any → ModFrm`](creation.md#function-cuspforms-any)

    - [`CuspForms(x, y): Any, Any → ModFrm`](creation.md#function-cuspforms-any-any)

    - [`Example: Creation Space`](creation.md#example-ex-902ab1)

    - [Half-integral Weight Forms](creation.md#half-integral-weight-forms)

      - [`HalfIntegralWeightForms(N, w): RngIntElt, FldRatElt → ModFrm`](creation.md#function-halfintegralweightforms-rngintelt-fldratelt)

      - [`HalfIntegralWeightForms(chi, w): GrpDrchElt, FldRatElt → ModFrm`](creation.md#function-halfintegralweightforms-grpdrchelt-fldratelt)

      - [`HalfIntegralWeightForms(G, w): GrpPSL2, FldRatElt → ModFrm`](creation.md#function-halfintegralweightforms-grppsl2-fldratelt)

  - [Base Extension](creation.md#base-extension)

    - [`BaseExtend(M, R): ModFrm, Rng → ModFrm, Map`](creation.md#function-baseextend-modfrm-rng)

    - [`BaseExtend(M, phi): ModFrm, Map → ModFrm, Map`](creation.md#function-baseextend-modfrm-map)

    - [`Example: Base Extend`](creation.md#example-ex-c5a11c)

  - [Elements](creation.md#elements)

    - [`M . i: ModFrm, RngIntElt → ModFrmElt`](creation.md#operation-operation-modfrm-rngintelt-modfrmelt)

    - [`M ! f: ModFrm, . → ModFrmElt`](creation.md#operation-op-modfrm)

    - [`ModularForm(E): CrvEll → ModFrm`](creation.md#function-modularform-crvell)

    - [`Example: Creation Elements`](creation.md#example-ex-e76151)

- [Bases](Bases.md)

  - [`Basis(M): ModFrm → SeqEnum`](Bases.md#function-basis-modfrm)

  - [`Basis(M, prec): ModFrm, RngIntElt → [RngSerPowElt]`](Bases.md#function-basis-modfrm-rngintelt)

  - [`qExpansionBasis(M, prec): ModFrm, RngIntElt → [RngSerPowElt]`](Bases.md#function-qexpansionbasis-modfrm-rngintelt)

  - [`PrecisionBound(M : parameters): ModFrm → RngIntElt`](Bases.md#function-precisionbound-modfrm)

  - [`RModule(M): ModFrm → ModTupRng, Map`](Bases.md#function-rmodule-modfrm)

  - [`RSpace(M): ModFrm → ModTupRng, Map`](Bases.md#function-rspace-modfrm)

  - [`VectorSpace(M): ModFrm → ModTupRng, Map`](Bases.md#function-vectorspace-modfrm)

  - [`Example: Bases`](Bases.md#example-ex-fd9bbd)

- [$q$-Expansions](q-expansions.md)

  - [`qExpansion(f): ModFrmElt → RngSerPowElt`](q-expansions.md#function-qexpansion-modfrmelt)

  - [`qExpansion(f, prec): ModFrmElt, RngIntElt → RngSerPowElt`](q-expansions.md#function-qexpansion-modfrmelt-rngintelt)

  - [`PowerSeries(f): ModFrmElt → RngSerPowElt`](q-expansions.md#function-powerseries-modfrmelt)

  - [`PowerSeries(f, prec): ModFrmElt, RngIntElt → RngSerPowElt`](q-expansions.md#function-powerseries-modfrmelt-rngintelt)

  - [`Coefficient(f, n): ModFrmElt, RngIntElt → RngElt`](q-expansions.md#function-coefficient-modfrmelt-rngintelt)

  - [`Precision(M): ModFrm → RngIntElt`](q-expansions.md#function-precision-modfrm)

  - [`SetPrecision(M, prec): ModFrm, RngIntElt`](q-expansions.md#function-setprecision-modfrm-rngintelt)

  - [`Example: q Expansion`](q-expansions.md#example-ex-70e625)

  - [`Example: Weierstrass Points`](q-expansions.md#example-ex-9d6bda)

- [Arithmetic](arithmetic.md)

  - [`f + g: ModFrmElt, ModFrmElt → ModFrmElt`](arithmetic.md#operation-op-plus-modfrmelt-modfrmelt)

  - [`f + g: ModFrmElt, RngSerPowElt → RngSerPowElt`](arithmetic.md#operation-op-plus-modfrmelt-rngserpowelt)

  - [`f - g: ModFrmElt, ModFrmElt → ModFrmElt`](arithmetic.md#operation-op-minus-modfrmelt-modfrmelt)

  - [`a * f: RngElt, ModFrmElt → ModFrmElt`](arithmetic.md#operation-op-times-rngelt-modfrmelt)

  - [`f / a: ModFrmElt, RngElt → ModFrmElt`](arithmetic.md#operation-op-div-modfrmelt-rngelt)

  - [`f ^ n: ModFrmElt, RngIntElt → ModFrmElt`](arithmetic.md#operation-op-pow-modfrmelt-rngintelt)

  - [`f * g: ModFrmElt, ModFrmElt → ModFrmElt`](arithmetic.md#operation-op-times-modfrmelt-modfrmelt)

  - [`Example: Arithmetic`](arithmetic.md#example-ex-061f7d)

- [Predicates](predicates.md)

  - [`IsAmbientSpace(M): ModFrm → BoolElt`](predicates.md#function-isambientspace-modfrm)

  - [`IsCuspidal(M): ModFrm → BoolElt`](predicates.md#function-iscuspidal-modfrm)

  - [`IsEisenstein(M): ModFrm → BoolElt`](predicates.md#function-iseisenstein-modfrm)

  - [`IsEisensteinSeries(f): ModFrmElt → BoolElt`](predicates.md#function-iseisensteinseries-modfrmelt)

  - [`IsGamma0(M): ModFrm → BoolElt`](predicates.md#function-isgamma0-modfrm)

  - [`IsGamma1(M): ModFrm → BoolElt`](predicates.md#function-isgamma1-modfrm)

  - [`IsNew(M): ModFrm → BoolElt`](predicates.md#function-isnew-modfrm)

  - [`IsNewform(f): ModFrmElt → BoolElt`](predicates.md#function-isnewform-modfrmelt)

  - [`IsRingOfAllModularForms(M): ModFrm → BoolElt`](predicates.md#function-isringofallmodularforms-modfrm)

  - [`Example: Predicates`](predicates.md#example-ex-830f17)

- [Properties](properties.md)

  - [`AmbientSpace(M): ModFrm → ModFrm`](properties.md#function-ambientspace-modfrm)

  - [`BaseRing(M): ModFrm → Rng`](properties.md#function-basering-modfrm)

  - [`CoefficientRing(M): ModFrm → Rng`](properties.md#function-coefficientring-modfrm)

  - [`Degree(f): ModFrmElt → RngIntElt`](properties.md#function-degree-modfrmelt)

  - [`Dimension(M): ModFrm → RngIntElt`](properties.md#function-dimension-modfrm)

  - [`DimensionByFormula(M): ModFrm → RngIntElt`](properties.md#function-dimensionbyformula-modfrm)

  - [`DimensionByFormula(N, k): RngIntElt, FldRatElt → RngIntElt`](properties.md#function-dimensionbyformula-rngintelt-fldratelt)

  - [`DimensionByFormula(chi, k): GrpDrchElt, FldRatElt → RngIntElt`](properties.md#function-dimensionbyformula-grpdrchelt-fldratelt)

  - [`DimensionByFormula(N, chi, k): RngIntElt, GrpDrchElt, FldRatElt → RngIntElt`](properties.md#function-dimensionbyformula-rngintelt-grpdrchelt-fldratelt)

  - [`DirichletCharacters(M): ModFrm → [GrpDrchElt]`](properties.md#function-dirichletcharacters-modfrm)

  - [`DirichletCharacter(f): ModFrmElt → GrpDrchElt`](properties.md#function-dirichletcharacter-modfrmelt)

  - [`Eltseq(f): ModFrmElt → SeqEnum`](properties.md#function-eltseq-modfrmelt)

  - [`Level(f): ModFrmElt → RngIntElt`](properties.md#function-level-modfrmelt)

  - [`Level(M): ModFrm → RngIntElt`](properties.md#function-level-modfrm)

  - [`Weight(f): ModFrmElt → RngIntElt`](properties.md#function-weight-modfrmelt)

  - [`Weight(M): ModFrm → RngIntElt`](properties.md#function-weight-modfrm)

  - [`WeightOneHalfData(H): ModFrm → List`](properties.md#function-weightonehalfdata-modfrm)

  - [`Example: Properties`](properties.md#example-ex-296bdb)

- [Subspaces](subspaces.md)

  - [`ZeroSubspace(M): ModFrm → ModFrm`](subspaces.md#function-zerosubspace-modfrm)

  - [`CuspidalSubspace(M): ModFrm → ModFrm`](subspaces.md#function-cuspidalsubspace-modfrm)

  - [`EisensteinSubspace(M): ModFrm → ModFrm`](subspaces.md#function-eisensteinsubspace-modfrm)

  - [`EisensteinProjection(f): ModFrmElt → ModFrmElt`](subspaces.md#function-eisensteinprojection-modfrmelt)

  - [`CuspidalProjection(f): ModFrmElt → ModFrmElt`](subspaces.md#function-cuspidalprojection-modfrmelt)

  - [`NewSubspace(M): ModFrm → ModFrm`](subspaces.md#function-newsubspace-modfrm)

  - [`DihedralSubspace(M): ModFrm → ModFrm`](subspaces.md#function-dihedralsubspace-modfrm)

  - [`Example: Subspaces`](subspaces.md#example-ex-fd9fb5)

- [Operators](operators.md)

  - [`HeckeOperator(M, n): ModFrm, RngIntElt → AlgMatElt`](operators.md#function-heckeoperator-modfrm-rngintelt)

  - [`HeckeOperator(n,f): RngIntElt, ModFrmElt → ModFrmElt`](operators.md#function-heckeoperator-rngintelt-modfrmelt)

  - [`HeckePolynomial(M, n : parameters): ModFrm, RngIntElt → RngUPolElt`](operators.md#function-heckepolynomial-modfrm-rngintelt)

  - [`AtkinLehnerOperator(M, q): ModFrm, RngIntElt → AlgMatElt`](operators.md#function-atkinlehneroperator-modfrm-rngintelt)

  - [`AtkinLehnerOperator(q, f): RngIntElt, ModFrmElt → ModFrmElt`](operators.md#function-atkinlehneroperator-rngintelt-modfrmelt)

  - [`Example: Hecke Polynomials`](operators.md#example-ex-f79385)

- [Eisenstein Series](eisenstein-series.md)

  - [`EisensteinSeries(M): ModFrm → List`](eisenstein-series.md#function-eisensteinseries-modfrm)

  - [`IsEisensteinSeries(f): ModFrmElt → BoolElt`](eisenstein-series.md#function-iseisensteinseries-modfrmelt-2)

  - [`EisensteinData(f): ModFrmElt → Tup`](eisenstein-series.md#function-eisensteindata-modfrmelt)

  - [`Example: Eisenstein Series`](eisenstein-series.md#example-ex-bee467)

- [Weight Half Forms](weight-half-forms.md)

  - [`WeightOneHalfData(M): ModFrm → List`](weight-half-forms.md#function-weightonehalfdata-modfrm-2)

- [Weight One Forms](weight-one-forms.md)

  - [`DihedralForms(M): ModFrm → List`](weight-one-forms.md#function-dihedralforms-modfrm)

- [Newforms](newforms.md)

  - [`NumberOfNewformClasses(M : parameters): ModFrm → RngIntElt`](newforms.md#function-numberofnewformclasses-modfrm)

  - [`Newform(M, i, j : parameters): ModFrm, RngIntElt, RngIntElt → ModFrmElt`](newforms.md#function-newform-modfrm-rngintelt-rngintelt)

  - [`Newform(M, i : parameters): ModFrm, RngIntElt → ModFrmElt`](newforms.md#function-newform-modfrm-rngintelt)

  - [`Newforms(M : parameters): ModFrm → List`](newforms.md#function-newforms-modfrm)

  - [`Newforms(I, M): [Tup], ModFrm → ModFrm`](newforms.md#function-newforms-tup-modfrm)

  - [`NewformDecomposition(M): ModFrm → List`](newforms.md#function-newformdecomposition-modfrm)

  - [`Example: Newforms`](newforms.md#example-ex-ecf1ff)

  - [Labels](newforms.md#labels)

    - [`Newforms(label): MonStgElt → ModFrmElt`](newforms.md#function-newforms-monstgelt)

    - [`Example: Newform Labeling`](newforms.md#example-ex-5d3f25)

- [Reductions and Embeddings](reductions-embeddings.md)

  - [`Reductions(f, p): ModFrmElt, RngIntElt → List`](reductions-embeddings.md#function-reductions-modfrmelt-rngintelt)

  - [`pAdicEmbeddings(f, p): ModFrmElt, RngIntElt → List`](reductions-embeddings.md#function-padicembeddings-modfrmelt-rngintelt)

  - [`ComplexEmbeddings(f): ModFrmElt → List`](reductions-embeddings.md#function-complexembeddings-modfrmelt)

  - [`Example: Reductions And Embeddings`](reductions-embeddings.md#example-ex-d26b51)

- [Congruences](congruences.md)

  - [`CongruenceGroup(M1, M2, prec): ModFrm, ModFrm, RngIntElt → GrpAb`](congruences.md#function-congruencegroup-modfrm-modfrm-rngintelt)

  - [`CongruenceGroupAnemic(M1, M2, prec): ModFrm, ModFrm, RngIntElt → GrpAb`](congruences.md#function-congruencegroupanemic-modfrm-modfrm-rngintelt)

  - [`Example: Congruences`](congruences.md#example-ex-71c3ed)

- [Overconvergent Modular Forms](overconvergent.md)

  - [`OverconvergentHeckeSeriesDegreeBound(p, N, k, m): RngIntElt, RngIntElt, RngIntElt, RngIntElt → RngIntElt`](overconvergent.md#function-overconvergentheckeseriesdegreebound-rngintelt-rngintelt-rngintelt-rngintelt)

  - [`OverconvergentHeckeSeries(p, N, k, m): RngIntElt, RngIntElt, RngIntElt, RngIntElt → RngUPolElt`](overconvergent.md#function-overconvergentheckeseries-rngintelt-rngintelt-rngintelt-rngintelt)

  - [`OverconvergentHeckeSeries(p, N, k, m): RngIntElt, RngIntElt, [ RngIntElt ], RngIntElt → [ RngUPolElt ]`](overconvergent.md#function-overconvergentheckeseries-rngintelt-rngintelt-rngintelt-rngintelt-2)

  - [`OverconvergentHeckeSeries(p, chi, k, m): RngIntElt, GrpDrchElt, RngIntElt, RngIntElt → RngUPolElt, RngPadElt`](overconvergent.md#function-overconvergentheckeseries-rngintelt-grpdrchelt-rngintelt-rngintelt)

  - [`OverconvergentHeckeSeries(p, chi, k, m): RngIntElt, GrpDrchElt, [ RngIntElt ], RngIntElt → [ RngUPolElt ], RngPadElt`](overconvergent.md#function-overconvergentheckeseries-rngintelt-grpdrchelt-rngintelt-rngintelt-2)

  - [`Example: overconvergent`](overconvergent.md#example-ex-e08db5)

- [Algebraic Relations](relations.md)

  - [`Relations(M, d, prec): ModFrm, RngIntElt, RngIntElt → SeqEnum`](relations.md#function-relations-modfrm-rngintelt-rngintelt)

  - [`Example: Relations`](relations.md#example-ex-9c6897)

- [Elliptic Curves](abelian-varieties.md)

  - [`ModularForm(E): CrvEll → ModFrmElt`](abelian-varieties.md#function-modularform-crvell-2)

  - [`Newform(E): CrvEll → ModFrmElt`](abelian-varieties.md#function-newform-crvell)

  - [`Eigenform(E, prec): CrvEll, RngIntElt → RngSerPowElt`](abelian-varieties.md#function-eigenform-crvell-rngintelt)

  - [`qEigenform(E, prec): CrvEll, RngIntElt → RngSerPowElt`](abelian-varieties.md#function-qeigenform-crvell-rngintelt)

  - [`EllipticCurve(f): ModFrmElt → CrvEll`](abelian-varieties.md#function-ellipticcurve-modfrmelt)

  - [`Example: Elliptic Curves`](abelian-varieties.md#example-ex-b1a407)

- [Modular Symbols](modular-symbols.md)

  - [`ModularSymbols(M): ModFrm → SeqEnum`](modular-symbols.md#function-modularsymbols-modfrm)

  - [`ModularSymbols(M, sign): ModFrm, RngIntElt → ModSym`](modular-symbols.md#function-modularsymbols-modfrm-rngintelt)

  - [`Example: Modular Symbols`](modular-symbols.md#example-ex-33a446)
