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.