Function: mfspace
Section: modular_forms
C-Name: mfspace
Prototype: lGDG
Help: mfspace(mf,{f}): identify the modular space mf, resp. the modular form f
 in mf. Returns 0 (newspace), 1 (cuspidal space), 2 (old space),
 3 (Eisenstein space) or 4 (full space). Return -1 when the form does not
 belong to the space.
Doc: identify the modular space \var{mf}, resp.~the modular form $f$ in
 \var{mf} if present, as the flag given to \kbd{mfinit}.
 Returns 0 (newspace), 1 (cuspidal space), 2 (old space),
 3 (Eisenstein space) or 4 (full space).
 \bprog
 ? mf = mfinit([1,12],1); mfspace(mf)
 %1 = 1
 ? mfspace(mf, mfDelta())
 %2 = 0 \\ new space
 @eprog\noindent This function returns $-1$ when the form $f$ is modular
 but does not belong to the space.
 \bprog
 ? mf = mfinit([1,2]; mfspace(mf, mfEk(2))
 %3 = -1
 @eprog When $f$ is not modular and is for instance only quasi-modular, the
 function returns nonsense:
 \bprog
 ? M6 = mfinit([1,6]);
 ? dE4 = mfderiv(mfEk(4)); \\ not modular !
 ? mfspace(M6,dE4)  \\ asserts (wrongly) that E4' belongs to new space
 %3 = 0
 @eprog
