# Standard Functions and Forms

This section contains intrinsics that return the $j$-invariant as a rational function and normalised Eisenstein forms as meromorphic $k$-differentials on the small database models of $X_0(N)$. Standard variants of these can be obtained by pulling back by Atkin-Lehner involutions or pulling back the corresponding objects from lower level curves by the projection or $r$-projection maps.

The database actually only contains precomputed expressions for $E_2^{(N)}$ (see below), $E_4$ and $E_6$ for prime levels $N$ and reconstructs everything else from these objects using projection maps.

## `jInvariant(CN, N): Crv, RngIntElt -> FldFunRatMElt`

## `jFunction(CN, N): Crv, RngIntElt -> FldFunFracSchElt`

The curve $CN$ should be a base change of the small modular database curve of level $N$ to a field of characteristic 0. These intrinsics return the $j$-invariant $j(z)$ as a rational function on $CN$. The second returns it as an element of the function field of $CN$. The first returns it as an element in the field of fractions of the coordinate ring of the ambient of $CN$, which is sometimes more convenient to use.

## `jInvariant(p, N): Pt, RngIntElt -> RngElt`

## `jInvariant(p, N): PlcCrvElt, RngIntElt -> RngElt`

The point or place $p$ is a non-cuspidal point or a non-cuspidal place on a base change $CN$ of the small modular database curve of level $N$ to a field of characteristic 0. Returns the value of $j(z)$ at $p$, the value lying in $L$ if $p$ is a point in $CN(L)$ or in the residue class field of $p$ if $p$ is a place of $CN$. If $p$ is a point, it should be non-singular. However, if the $j$ function is defined at $p$, the intrinsic will still return a value.

## `jNInvariant(p, N): Pt, RngIntElt -> RngElt`

## `jNInvariant(p, N): PlcCrvElt, RngIntElt -> RngElt`

Exactly as `jInvariant` above, except that the intrinsic gives the value of rational function $j(Nz)$ at the point or place. This is equivalent to computing the $j$-invariant value on the image of $p$ under the Fricke involution $w_N$.

## `E2NForm(CN, N): Crv, RngIntElt -> DiffCrvElt`

The curve $CN$ should be a base change of the small modular database curve of level $N$ to a field of characteristic 0. $E_2^{(N)}(z)=NE_2(Nz)-E_2(z)$ is a weight 2 integral form for $\Gamma_0(N)$ where $E_2(z)=1-24e^{2\pi iz}+\ldots$ is the normalised weight 2 Eisenstein series. $E_2^{(N)}(z)$ corresponds to a meromorphic differential (defined over **Q**) on $X_0(N)$. The intrinsic returns $E_2^{(N)}(z)$ as a meromorphic differential in the function field of $CN$.

## `E4Form(CN, N): Crv, RngIntElt -> FldFunFracSchElt, DiffCrvElt`

The curve $CN$ should be a base change of the small modular database curve of level $N$ to a field of characteristic 0. Returns a rational function $f$ and a differential form $\omega$ in the function field of $CN$ such that the Eisenstein series $E_4(z)=1+240e^{2\pi iz}+\ldots$ as a meromorphic 2-differential on $CN$ is given by $f\omega^2$.

## `E6Form(CN, N): Crv, RngIntElt -> FldFunFracSchElt, DiffCrvElt`

The curve $CN$ should be a base change of the small modular database curve of level $N$ to a field of characteristic 0. Returns a rational function $f$ and a differential form $\omega$ in the function field of $CN$ such that the Eisenstein series $E_6(z)=1-504e^{2\pi iz}+\ldots$ as a meromorphic 3-differential on $CN$ is given by $f\omega^3$. Note that the same differential $\omega$ is returned by the `E4Form` intrinsic.
