# Algebraic Modular Forms

- [Introduction](introduction.md)

  - [Definitions and Background](introduction.md#definitions-and-background)

  - [Algorithms and Supported Groups](introduction.md#algorithms-and-supported-groups)

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

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

  - [Categories](introduction.md#categories)

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

- [Creation of Spaces of Algebraic Modular Forms](creation.md)

  - [`AlgebraicModularForms(G): GrpRed → ModFrmAlg`](creation.md#function-algebraicmodularforms-grpred)

  - [`AlgebraicModularForms(G, W): GrpRed, GrpRep → ModFrmAlg`](creation.md#function-algebraicmodularforms-grpred-grprep)

  - [`AlgebraicModularForms(G, W, L): GrpRed, GrpRep, AlgMatElt → ModFrmAlg`](creation.md#function-algebraicmodularforms-grpred-grprep-algmatelt)

  - [`AlgebraicModularForms(G, W, L): GrpRed, GrpRep, LatNF → ModFrmAlg`](creation.md#function-algebraicmodularforms-grpred-grprep-latnf)

  - [`AlgebraicModularForms(G, W, L): GrpRed, GrpRep, Lat → ModFrmAlg`](creation.md#function-algebraicmodularforms-grpred-grprep-lat)

  - [`AlgebraicModularForms(data): List → ModFrmAlg`](creation.md#function-algebraicmodularforms-list)

  - [`OrthogonalModularForms(Q, W): AlgMatElt, GrpRep → ModFrmAlg`](creation.md#function-orthogonalmodularforms-algmatelt-grprep)

  - [`OrthogonalModularForms(Q, W): AlgMatElt, [RngIntElt] → ModFrmAlg`](creation.md#function-orthogonalmodularforms-algmatelt-rngintelt)

  - [`OrthogonalModularForms(Q): AlgMatElt → ModFrmAlg`](creation.md#function-orthogonalmodularforms-algmatelt)

  - [`OrthogonalModularForms(F, Q, W, p): Fld, AlgMatElt, [RngIntElt], RngIntElt → ModFrmAlg`](creation.md#function-orthogonalmodularforms-fld-algmatelt-rngintelt-rngintelt)

  - [`OrthogonalModularForms(L): Lat → ModFrmAlg`](creation.md#function-orthogonalmodularforms-lat)

  - [`Example: Creation Example`](creation.md#example-ex-70f758)

  - [`UnitaryModularForms(Q, W): AlgMatElt, GrpRep → ModFrmAlg`](creation.md#function-unitarymodularforms-algmatelt-grprep)

  - [`UnitaryModularForms(Q, W): AlgMatElt, [RngIntElt] → ModFrmAlg`](creation.md#function-unitarymodularforms-algmatelt-rngintelt)

  - [`UnitaryModularForms(Q): AlgMatElt → ModFrmAlg`](creation.md#function-unitarymodularforms-algmatelt)

  - [`UnitaryModularForms(F, Q, W, p): Fld, AlgMatElt, [RngIntElt], RngIntElt → ModFrmAlg`](creation.md#function-unitarymodularforms-fld-algmatelt-rngintelt-rngintelt)

  - [`UnitaryModularForms(F, n, W, p): Fld, RngIntElt, [RngIntElt], RngIntElt → ModFrmAlg`](creation.md#function-unitarymodularforms-fld-rngintelt-rngintelt-rngintelt)

  - [`UnitaryModularForms(F, n, W): Fld, RngIntElt, GrpRep → ModFrmAlg`](creation.md#function-unitarymodularforms-fld-rngintelt-grprep)

  - [`UnitaryModularForms(F, n): Fld, RngIntElt → ModFrmAlg`](creation.md#function-unitarymodularforms-fld-rngintelt)

- [Basic Properties](basic-properties.md)

  - [`BaseRing(M): ModFrmAlg → Rng`](basic-properties.md#function-basering-modfrmalg)

  - [`CoefficientRing(M): ModFrmAlg → Rng`](basic-properties.md#function-coefficientring-modfrmalg)

  - [`FieldOfDefinition(M): ModFrmAlg → FldOrd`](basic-properties.md#function-fieldofdefinition-modfrmalg)

  - [`InnerForm(M): ModFrmAlg → AlgMatElt`](basic-properties.md#function-innerform-modfrmalg)

  - [`Weight(M): ModFrmAlg → GrpRep`](basic-properties.md#function-weight-modfrmalg)

  - [`Level(M): ModFrmAlg → LatNF`](basic-properties.md#function-level-modfrmalg)

  - [`IsOrthogonal(M): ModFrmAlg → BoolElt`](basic-properties.md#function-isorthogonal-modfrmalg)

  - [`IsSpecialOrthogonal(M): ModFrmAlg → BoolElt`](basic-properties.md#function-isspecialorthogonal-modfrmalg)

  - [`Dimension(M): ModFrmAlg → RngIntElt`](basic-properties.md#function-dimension-modfrmalg)

  - [`DimensionsOfDirectSummands(M): ModFrmAlg → [RngIntElt]`](basic-properties.md#function-dimensionsofdirectsummands-modfrmalg)

  - [`VectorSpace(M): ModFrmAlg → ModTupFld`](basic-properties.md#function-vectorspace-modfrmalg)

  - [`Representation(M): ModFrmAlg → ModTupFld`](basic-properties.md#function-representation-modfrmalg)

  - [`Example: Basic Example`](basic-properties.md#example-ex-b1aea0)

  - [`Genus(M): ModFrmAlg → SymGen`](basic-properties.md#function-genus-modfrmalg)

  - [`GenusReps(M): ModFrmAlg → [ Lat ]`](basic-properties.md#function-genusreps-modfrmalg)

  - [`GenusReps(M): ModFrmAlg → [ LatNF ]`](basic-properties.md#function-genusreps-modfrmalg-2)

  - [`SetGenus(M, reps): ModFrmAlg, [ Lat ]`](basic-properties.md#function-setgenus-modfrmalg-lat)

  - [`AutomorphismGroups(M): ModFrmAlg → [GrpMat]`](basic-properties.md#function-automorphismgroups-modfrmalg)

  - [`SetAutomorphismGroups(M, groups): ModFrmAlg, [GrpMat]`](basic-properties.md#function-setautomorphismgroups-modfrmalg-grpmat)

- [Elements](elements.md)

  - [`Parent(f): ModFrmAlgElt → ModFrmAlg`](elements.md#function-parent-modfrmalgelt)

  - [`BaseField(f): ModFrmAlgElt → Fld`](elements.md#function-basefield-modfrmalgelt)

  - [`BaseRing(f): ModFrmAlgElt → Rng`](elements.md#function-basering-modfrmalgelt)

  - [`IsCuspidal(f): ModFrmAlgElt → BoolElt`](elements.md#function-iscuspidal-modfrmalgelt)

  - [`IsEisenstein(f): ModFrmAlgElt → BoolElt`](elements.md#function-iseisenstein-modfrmalgelt)

- [Operators](operators.md)

  - [`HeckeOperator(M, P, k): ModFrmHil, RngOrdIdl, RngIntElt → AlgMatElt`](operators.md#function-heckeoperator-modfrmhil-rngordidl-rngintelt)

  - [`HeckeOperator(M, P, k): ModFrmHil, RngInt, RngIntElt → AlgMatElt`](operators.md#function-heckeoperator-modfrmhil-rngint-rngintelt)

  - [`HeckeOperator(M, P, k): ModFrmHil, RngIntElt, RngIntElt → AlgMatElt`](operators.md#function-heckeoperator-modfrmhil-rngintelt-rngintelt)

  - [`HeckeOperator(M, P): ModFrmHil, RngOrdIdl → AlgMatElt`](operators.md#function-heckeoperator-modfrmhil-rngordidl)

  - [`HeckeOperator(M, P): ModFrmHil, RngInt → AlgMatElt`](operators.md#function-heckeoperator-modfrmhil-rngint)

  - [`HeckeOperator(M, P): ModFrmHil, RngIntElt → AlgMatElt`](operators.md#function-heckeoperator-modfrmhil-rngintelt)

  - [`Example: hecke`](operators.md#example-ex-83e3f1)

  - [`HeckeOperator(M, P, k): ModFrmHil, RngOrdIdl, RngIntElt → AlgMatElt`](operators.md#function-heckeoperator-modfrmhil-rngordidl-rngintelt-2)

  - [`HeckeOperator(M, P, k): ModFrmHil, RngInt, RngIntElt → AlgMatElt`](operators.md#function-heckeoperator-modfrmhil-rngint-rngintelt-2)

  - [`HeckeOperator(M, P, k): ModFrmHil, RngIntElt, RngIntElt → AlgMatElt`](operators.md#function-heckeoperator-modfrmhil-rngintelt-rngintelt-2)

  - [`HeckeOperator(M, P): ModFrmHil, RngOrdIdl → AlgMatElt`](operators.md#function-heckeoperator-modfrmhil-rngordidl-2)

  - [`HeckeOperator(M, P): ModFrmHil, RngInt → AlgMatElt`](operators.md#function-heckeoperator-modfrmhil-rngint-2)

  - [`HeckeOperator(M, P): ModFrmHil, RngIntElt → AlgMatElt`](operators.md#function-heckeoperator-modfrmhil-rngintelt-2)

  - [`PerestroikaOperator(M, P): ModFrmHil, RngOrdIdl → AlgMatElt`](operators.md#function-perestroikaoperator-modfrmhil-rngordidl)

  - [`PerestroikaOperator(M, P): ModFrmHil, RngInt → AlgMatElt`](operators.md#function-perestroikaoperator-modfrmhil-rngint)

  - [`PerestroikaOperator(M, P): ModFrmHil, RngIntElt → AlgMatElt`](operators.md#function-perestroikaoperator-modfrmhil-rngintelt)

  - [`PlusOperator(M, P): ModFrmHil, RngOrdIdl → AlgMatElt`](operators.md#function-plusoperator-modfrmhil-rngordidl)

  - [`PlusOperator(M, P): ModFrmHil, RngInt → AlgMatElt`](operators.md#function-plusoperator-modfrmhil-rngint)

  - [`PlusOperator(M, P): ModFrmHil, RngIntElt → AlgMatElt`](operators.md#function-plusoperator-modfrmhil-rngintelt)

  - [`HeckeOperators(M, k): ModFrmAlg, RngIntElt → [ AlgMatElt ], [ RngOrdIdl ]`](operators.md#function-heckeoperators-modfrmalg-rngintelt)

  - [`HeckeOperators(M, k): ModFrmAlg, RngIntElt → [ AlgMatElt ], [ RngOrdIdl ]`](operators.md#function-heckeoperators-modfrmalg-rngintelt-2)

  - [`HeckeOperators(M): ModFrmAlg, RngIntElt → [ AlgMatElt ], [ RngOrdIdl ]`](operators.md#function-heckeoperators-modfrmalg-rngintelt-3)

  - [`HeckeOperators(M): ModFrmAlg, RngIntElt → [ AlgMatElt ], [ RngOrdIdl ]`](operators.md#function-heckeoperators-modfrmalg-rngintelt-4)

  - [`SetHeckeOperator(M, T, P, k): ModFrmAlg, AlgMatElt, RngOrdIdl, RngIntElt`](operators.md#function-setheckeoperator-modfrmalg-algmatelt-rngordidl-rngintelt)

  - [`SetHeckeOperator(M, T, P, k): ModFrmAlg, AlgMatElt, RngInt, RngIntElt`](operators.md#function-setheckeoperator-modfrmalg-algmatelt-rngint-rngintelt)

  - [`SetHeckeOperator(M, T, P, k): ModFrmAlg, AlgMatElt, RngIntElt, RngIntElt`](operators.md#function-setheckeoperator-modfrmalg-algmatelt-rngintelt-rngintelt)

  - [`SetHeckeOperator(M, T, P): ModFrmAlg, AlgMatElt, RngOrdIdl`](operators.md#function-setheckeoperator-modfrmalg-algmatelt-rngordidl)

  - [`SetHeckeOperator(M, T, P): ModFrmAlg, AlgMatElt, RngInt`](operators.md#function-setheckeoperator-modfrmalg-algmatelt-rngint)

  - [`SetHeckeOperator(M, T, P): ModFrmAlg, AlgMatElt, RngIntElt`](operators.md#function-setheckeoperator-modfrmalg-algmatelt-rngintelt)

  - [`HeckeImages(M, i, n, k): ModFrmAlg, RngIntElt, RngIntElt, RngIntElt → Assoc`](operators.md#function-heckeimages-modfrmalg-rngintelt-rngintelt-rngintelt)

  - [`HeckeImages(M, i, ps, k): ModFrmAlg, RngIntElt, SeqEnum, RngIntElt → Assoc`](operators.md#function-heckeimages-modfrmalg-rngintelt-seqenum-rngintelt)

- [Creation of Subspaces](subspaces.md)

  - [`CuspidalSubspace(M): ModFrmAlg → ModMatFld`](subspaces.md#function-cuspidalsubspace-modfrmalg)

- [Eigenspace Decomposition and Eigenforms](eigenforms.md)

  - [`Decomposition(M, B): ModFrmAlg, RngIntElt → [ ModTupFld ], BoolElt`](eigenforms.md#function-decomposition-modfrmalg-rngintelt)

  - [`Decomposition(M): ModFrmAlg → [ ModTupFld ]`](eigenforms.md#function-decomposition-modfrmalg)

  - [`HeckeEigenforms(M): ModFrmAlg → [ ModFrmAlgElt ]`](eigenforms.md#function-heckeeigenforms-modfrmalg)

  - [`EisensteinSeries(M): ModFrmAlg → [ ModFrmAlgElt ]`](eigenforms.md#function-eisensteinseries-modfrmalg)

  - [`Eigenvectors(M, D): ModFrmAlg, [ ModTupFld ] → List, BoolElt`](eigenforms.md#function-eigenvectors-modfrmalg-modtupfld)

  - [`HeckeEigenform(M, data): ModFrmAlg, Tup → ModFrmAlgElt`](eigenforms.md#function-heckeeigenform-modfrmalg-tup)

  - [`HeckeEigenvalue(f, P): ModFrmAlgElt, RngOrdIdl → FldElt`](eigenforms.md#function-heckeeigenvalue-modfrmalgelt-rngordidl)

  - [`HeckeEigenvalue(f, P): ModFrmAlgElt, RngInt → FldElt`](eigenforms.md#function-heckeeigenvalue-modfrmalgelt-rngint)

  - [`HeckeEigenvalue(f, P): ModFrmAlgElt, RngIntElt → FldElt`](eigenforms.md#function-heckeeigenvalue-modfrmalgelt-rngintelt)

  - [`HeckeEigenvalues(f, P): ModFrmAlgElt, RngOrdIdl → [ FldElt ]`](eigenforms.md#function-heckeeigenvalues-modfrmalgelt-rngordidl)

  - [`HeckeEigenvalues(f, P): ModFrmAlgElt, RngInt → [ FldElt ]`](eigenforms.md#function-heckeeigenvalues-modfrmalgelt-rngint)

  - [`HeckeEigenvalues(f, P): ModFrmAlgElt, RngIntElt → [ FldElt ]`](eigenforms.md#function-heckeeigenvalues-modfrmalgelt-rngintelt)

  - [`HeckeEigensystems(M, k): ModFrmAlg, RngIntElt → List, [ RngOrdIdl ]`](eigenforms.md#function-heckeeigensystems-modfrmalg-rngintelt)

  - [`HeckeEigensystems(M, k): ModFrmAlg, RngIntElt → List, [ RngInt ]`](eigenforms.md#function-heckeeigensystems-modfrmalg-rngintelt-2)

  - [`DisplayHeckeEigensystem(f): ModFrmAlgElt`](eigenforms.md#function-displayheckeeigensystem-modfrmalgelt)

  - [`HeckeEigensystem(f, k): ModFrmAlgElt, RngIntElt → [ FldElt ], [ RngOrdIdl ]`](eigenforms.md#function-heckeeigensystem-modfrmalgelt-rngintelt)

  - [`HeckeEigensystem(f, k): ModFrmAlgElt, RngIntElt → [ FldElt ], [ RngInt ]`](eigenforms.md#function-heckeeigensystem-modfrmalgelt-rngintelt-2)

  - [`HeckeEigensystem(f): ModFrmAlgElt → [ FldElt ], [ RngOrdIdl ]`](eigenforms.md#function-heckeeigensystem-modfrmalgelt)

  - [`HeckeEigensystem(f): ModFrmAlgElt → [ FldElt ], [ RngInt ]`](eigenforms.md#function-heckeeigensystem-modfrmalgelt-2)

  - [`LPolynomial(f, P, d): ModFrmAlgElt, RngOrdIdl, RngIntElt → RngSerPowElt`](eigenforms.md#function-lpolynomial-modfrmalgelt-rngordidl-rngintelt)

  - [`LPolynomial(f, P, d): ModFrmAlgElt, RngInt, RngIntElt → RngSerPowElt`](eigenforms.md#function-lpolynomial-modfrmalgelt-rngint-rngintelt)

  - [`LPolynomial(f, P, d): ModFrmAlgElt, RngIntElt, RngIntElt → RngSerPowElt`](eigenforms.md#function-lpolynomial-modfrmalgelt-rngintelt-rngintelt)

  - [`LPolynomial(f, P): ModFrmAlgElt, RngOrdIdl → RngUPolElt`](eigenforms.md#function-lpolynomial-modfrmalgelt-rngordidl)

  - [`LPolynomial(f, P): ModFrmAlgElt, RngInt → RngUPolElt`](eigenforms.md#function-lpolynomial-modfrmalgelt-rngint)

  - [`LPolynomial(f, P): ModFrmAlgElt, RngIntElt → RngUPolElt`](eigenforms.md#function-lpolynomial-modfrmalgelt-rngintelt)

  - [`LPolynomials(f): ModFrmAlgElt → [ RngUPolElt ]`](eigenforms.md#function-lpolynomials-modfrmalgelt)

  - [`SatakePolynomialUnramified(M): ModFrmAlg → RngUPolElt`](eigenforms.md#function-satakepolynomialunramified-modfrmalg)

  - [`SatakePolynomial(f, p): ModFrmAlgElt, RngIntElt → RngSerPowElt`](eigenforms.md#function-satakepolynomial-modfrmalgelt-rngintelt)

  - [`SatakePolynomial(f, p): ModFrmAlgElt, RngIntElt → RngUPolElt`](eigenforms.md#function-satakepolynomial-modfrmalgelt-rngintelt-2)

  - [`SatakePolynomialBallot(r, a): RngIntElt, RngIntElt → RngUPolElt`](eigenforms.md#function-satakepolynomialballot-rngintelt-rngintelt)

  - [`Example: Eigenform Examples`](eigenforms.md#example-ex-f209ed)

- [Relation to Other Modular Forms](cmf.md)

  - [`ModularForm(f): ModFrmAlgElt → ModFrmElt`](cmf.md#function-modularform-modfrmalgelt)

  - [`ThetaSeries(f): ModFrmAlgElt → RngSerPowElt`](cmf.md#function-thetaseries-modfrmalgelt)

  - [`Theta1(f): ModFrmAlgElt → RngSerPowElt`](cmf.md#function-theta1-modfrmalgelt)

  - [`ThetaSiegel(f, g): ModFrmAlgElt, RngIntElt → Assoc`](cmf.md#function-thetasiegel-modfrmalgelt-rngintelt)

  - [`Theta2(f): ModFrmAlgElt → Assoc`](cmf.md#function-theta2-modfrmalgelt)

  - [`ShimuraLift(f, k, N): RngSerPowElt, RngIntElt, RngIntElt → RngSerPowElt`](cmf.md#function-shimuralift-rngserpowelt-rngintelt-rngintelt)

  - [`Example: Shimura Lift`](cmf.md#example-ex-29956e)

- [Further Examples](further-examples.md)

  - [`Example: Orthogonal Rank4 Disc193`](further-examples.md#example-ex-5e47d7)

  - [`Example: Unitary Rank3 Discm7 Example`](further-examples.md#example-ex-623abe)
