Function: mfcuspval
Section: modular_forms
C-Name: mfcuspval
Prototype: GGGb
Help: mfcuspval(mf,F,cusp): valuation of modular form F in the space mf at
 cusp, which can be either oo or any rational number, and the result is
 either a rational number or oo if F is zero. If Q(F) != Q(chi), return
 the vector of valuations attached to the [Q(F):Q(chi)] complex embeddings
 of F.
Doc:  valuation of modular form $F$ in the space \kbd{mf} at
 \kbd{cusp}, which can be either $\infty$ or any rational number, and the
 result is either a rational number or $\infty$ if $F$ is zero. If $\Q(F)
 \neq \Q(\chi)$, return the vector of valuations attached to the
 $[\Q(F):\Q(chi)]$ complex embeddings of $F$.
 \bprog
 ? T=mfTheta();mf=mfinit([12,1/2]);mfcusps(12)
 %1 = [0, 1/2, 1/3, 1/4, 1/6, 1/12]
 ? apply(x->mfcuspval(mf,T,x),%1)
 %2 = [0, 1/4, 0, 0, 1/4, 0]
 ? mf=mfinit([12,6,12],1);F=mfbasis(mf)[5];
 ? apply(x->mfcuspval(mf,F,x),%1)
 %4 = [1/12, 1/6, 1/2, 2/3, 1/2, 2]
 ? mf=mfinit([12,3,-4],1);F=mfbasis(mf)[1];
 ? apply(x->mfcuspval(mf,F,x),%1)
 %6 = [1/12, 1/6, 1/4, 2/3, 1/2, 1]

 ? mf = mfinit([625,2],0); [F] = mfeigenbasis(mf); mfparams(F)
 %7 = [625, 2, 1, y^2 - y - 1] \\ [Q(F):Q(chi)] = poldegree(y^2-y-1)
 ? mfcuspval(mf, F, 1/25)
 %8 = [1, 2] \\ one conjugate has valuation 1, and the other is 2
 ? mfcuspval(mf, F, 1/5)
 %9 = [1/25, 1/25]
 @eprog
