Testing latest pari + WASM + node.js... and it works?! Wow.
License: GPL3
ubuntu2004
Function: _header_modular_forms Class: header Section: modular_forms Doc: \section{Modular forms} This section describes routines for working with modular forms and modular form spaces. \subsec{Modular form spaces} %GPHELPskip These structures are initialized by the \kbd{mfinit} command; supported modular form \emph{spaces} with corresponding flags are the following: \item The full modular form space $M_k(\Gamma_0(N),\chi)$, where $k$ is an integer or a half-integer and $\chi$ a Dirichlet character modulo $N$ (flag $4$, the default). \item The cuspidal space $S_k(\Gamma_0(N),\chi)$ (flag $1$). \item The Eisenstein space ${\cal E}_k(\Gamma_0(N),\chi)$ (flag $3$), so that $M_k={\cal E}_k\oplus S_k$. \item The new space $S_k^{\text{new}}(\Gamma_0(N),\chi)$ (flag $0$). \item The old space $S_k^{\text{old}}(\Gamma_0(N),\chi)$ (flag $2$), so that $S_k=S_k^{\text{new}}\oplus S_k^{\text{old}}$. These resulting \kbd{mf} structure contains a basis of modular forms, which is accessed by the function \kbd{mfbasis}; the elements of this basis have Fourier coefficients in the cyclotomic field $\Q(\chi)$. These coefficients are given algebraically, as rational numbers or \typ{POLMOD}s. The member function \kbd{mf.mod} recovers the modulus used to define $\Q(\chi)$, which is a cyclotomic polynomial $\Phi_n(t)$. When needed, the elements of $\Q(\chi)$ are considered to be canonically embedded into $\C$ via $\kbd{Mod}(t,\Phi_n(t)) \mapsto \exp(2i\pi/n)$. The basis of eigenforms for the new space is obtained by the function \kbd{mfeigenbasis}: the elements of this basis now have Fourier coefficients in a relative field extension of $\Q(\chi)$. Note that if the space is larger than the new space (i.e. is the cuspidal or full space) we nevertheless obtain only the eigenbasis for the new space. \subsec{Generalized modular forms} %GPHELPskip A modular form is represented in a special internal format giving the possibility to compute an arbitrary number of terms of its Fourier coefficients at infinity $[a(0),a(1),...,a(n)]$ using the function \kbd{mfcoefs}. These coefficients are given algebraically, as rational numbers or \typ{POLMOD}s. The member function \kbd{f.mod} recovers the modulus used in the coefficients of $f$, which will be the same as for $k = \Q(\chi)$ (a cyclotomic polynomial), or define a number field extension $K/k$. Modular forms are obtained either directly from other mathematical objects, e.g., elliptic curves, or by a specific formula, e.g., Eisenstein series or Ramanujan's Delta function, or by applying standard operators to existing forms (Hecke operators, Rankin--Cohen brackets, \dots). A function \kbd{mfparams} is provided so that one can recover the level, weight, character and field of definition corresponding to a given modular form. A number of creation functions and operations are provided. It is however important to note that strictly speaking some of these operations create objects which are \emph{not} modular forms: typical examples are derivation or integration of modular forms, the Eisenstein series $E_2$, eta quotients, or quotients of modular forms. These objects are nonetheless very important in the theory, so are not considered as errors; however the user must be aware that no attempt is made to check that the objects that he handles are really modular. When the documentation of a function does not state that it applies to generalized modular forms, then the output is undefined if the input is not a true modular form.