Testing latest pari + WASM + node.js... and it works?! Wow.
License: GPL3
ubuntu2004
Function: mfkohnenbijection
Section: modular_forms
C-Name: mfkohnenbijection
Prototype: G
Help: mfkohnenbijection(mf): mf being a cuspidal space of half-integral weight
returns [mf2,M,K,shi], where M is a matrix giving a Hecke-module
isomorphism from S_{2k-1}(N,CHI^2) given by mf2 to the Kohnen + space
S_k+(4N,CHI), K is a basis of the Kohnen + space, and shi gives
the linear combination of Shimura lifts giving M^(-1).
Doc: \kbd{mf} being a cuspidal space of half-integral weight, returns
\kbd{[mf2,M,K,shi]}, where $M$ is a matrix giving a Hecke-module
isomorphism from the cuspidal space \kbd{mf2} giving
$S_{2k-1}(\Gamma_0(N),\chi^2)$ to the
Kohnen $+$-space $S_k^+(\Gamma_0(4N),\chi)$, \kbd{K} represents a basis $B$
of the Kohnen $+$-space as a matrix whose columns are the coefficients of $B$
on the basis of \kbd{mf}; \kbd{shi} is a vector of pairs $(t_i,n_i)$
gives the linear combination of Shimura lifts giving $M^{-1}$: $t_i$ is a
squarefree positive integer and $n_i$ is a small nonzero integer.
\bprog
? mf=mfinit([60,5/2],1); [mf2,M,K,shi]=mfkohnenbijection(mf); M
%2 =
[-3 0 5/2 7/2]
[ 1 -1/2 -7 -7]
[ 1 1/2 0 -3]
[ 0 0 5/2 5/2]
? shi
%2 = [[1, 1], [2, 1]]
@eprog
This last command shows that the map giving the bijection is the sum of the
Shimura lift with $t=1$ and the one with $t=2$.
Since it gives a bijection of Hecke modules, this matrix can be used to
transport modular form data from the easily computed space of level $N$
and weight $2k-1$ to the more difficult space of level $4N$ and weight
$k$: matrices of Hecke operators, new space, splitting into eigenspaces and
eigenforms. Examples:
\bprog
? K^(-1)*mfheckemat(mf,121)*K /* matrix of T_11^2 on K. Slowish. */
time = 1,280 ms.
%1 =
[ 48 24 24 24]
[ 0 32 0 -20]
[-48 -72 -40 -72]
[ 0 0 0 52]
? M*mfheckemat(mf2,11)*M^(-1) /* instantaneous via T_11 on S_{2k-1} */
time = 0 ms.
%2 =
[ 48 24 24 24]
[ 0 32 0 -20]
[-48 -72 -40 -72]
[ 0 0 0 52]
? mf20=mfinit(mf2,0); [mftobasis(mf2,b) | b<-mfbasis(mf20)]
%3 = [[0, 0, 1, 0]~, [0, 0, 0, 1]~]
? F1=M*[0,0,1,0]~
%4 = [1/2, 1/2, -3/2, -1/2]~
? F2=M*[0,0,0,1]~
%5 = [3/2, 1/2, -9/2, -1/2]
? K*F1
%6 = [1, 0, 0, 1, 1, 0, 0, 1, -3, 0, 0, -3, 0, 0]~
? K*F2
%7 = [3, 0, 0, 3, 1, 0, 0, 1, -9, 0, 0, -3, 0, 0]~
@eprog
This gives a basis of the new space of $S_{5/2}^+(\Gamma_0(60))$ expressed
on the initial basis of $S_{5/2}(\Gamma_0(60))$. If we want the eigenforms, we
write instead:
\bprog
? BE=mfeigenbasis(mf20);[E1,E2]=apply(x->K*M*mftobasis(mf2,x),BE)
%1 = [[1, 0, 0, 1, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0]~,\
[0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, -3, 0, 0]~
? EI1 = mflinear(mf, E1); EI2=mflinear(mf, E2);
@eprog\noindent
These are the two eigenfunctions in the space \kbd{mf}, the first (resp.,
second) will have Shimura image a multiple of $BE[1]$ (resp., $BE[2]$).
The function \kbd{mfkohneneigenbasis} does this directly.