|
The theta series of an integral lattice L is (the q-expansion of)
a modular form whose weight is half the dimension of the lattice,
and whose level and nebentypus are determined by the quotient L^# /L.
The space of forms with given weight, level and character is finite dimensional,
which means the theta series is uniquely characterised as an element
of that space from knowledge of finitely many of its coefficients.
The routine described below carries this out explicitly: given an
integral lattice, it returns an element of a Magma space of modular forms,
Moreover this is done with the least possible effort spent determining
coefficients via lattice enumeration. Several ideas are used here,
the most important of which is that linear constraints can be obtained
from knowing coefficients of the theta series of L and of its
partial dual lattices; in practice, one needs a certain number of
coefficients in total, and the EnumerationCost functionality
is useful for balancing how many to compute for each of the duals.
We say L is q-modular if it is isomorphic to its
qth partial dual Lq.
Knowledge that modularities exist is of some use in the algorithm,
because q-modularity clearly implies that L and Lq have
the same theta series.
Normalisation of theta series:
We use a normalisation that is most natural in this context,
in order that the theta series is a modular form on Γ0(N)
with the level N as small as possible.
In this section, the theta series of an even integral lattice L
will mean
Σv ∈L q1/2 |v|2,
while the theta series of an odd integral lattice L will mean
Σv ∈L q|v|2,
where q = e2 i π z.
Given an integral lattice L, this returns the space of modular forms
which contains the theta series of L.
Note: the theta series is normalised as described above.
KnownTheta: RngSerPowElt Default:
KnownDualThetas: SeqEnum[Tup] Default:
KnownModularities: Set[RngIntElt] Default:
ComputeModularities: Set[RngIntElt] Default:
Given an integral lattice L, this returns the theta series of L
as a modular form in the appropriate space: more precisely,
in ThetaSeriesModularFormSpace(L).
Note: the theta series is normalised as described above.
If some coefficients of the theta series of L are already known,
this information may be specified by setting the optional argument
KnownTheta to be a power series f, indicating that L has
theta series equal to f up to the precision of f.
More generally, if coefficients are known for any partial dual lattices,
these may be specified by setting KnownDualThetas. This argument
must be a sequence of tuples of the form <q, fq>, indicating that
the qth partial dual Lq has theta series equal to fq up to the
precision of fq. (Warning: care must be taken to use the
expected normalisation of the partial duals here.)
If L is known to possess modularities, the optional argument
KnownModularities may be set equal to any set of integers q
such that L is q-modular (as defined above).
In addition, ComputeModularities may be specified to control
whether the function checks for q-modularities (for possible q,
that are not listed as KnownModularities); its value may be a
boolean, or a set of integers.
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|