def trace_jacobi_cusp_forms(k, m, l, n, kind="holomorphic"): r""" OUTPUT Trace of $T(l) \circ W_n$ on the space of holomorphic or skew-holomorphic Jacobi cusp forms of weight $k$, index $m$ on $\mathoperator{SL}(2,Z)$. INPUT k -- weight m -- index l -- a Hecke operator index (rel. prime to the index $m$) n -- an Atkin-Lehner involution index (i.e. exact divisor of $m$) kind -- the string 'holomorphic' or 'skew-holomorphic' NOTE EXAMPLES """ k, m, eps = __check_jac_params(k, m, kind) k, m, l, n = __check(k, m, l, n) if 1 == k == eps: raise NotImplementedError, "dimensions for skew-holomorphic cusp forms wt 1: not implemented" if k < 1: return 0 return (_sz_s(k, m, l, n) - eps * (-1) ** (k % 2) * _sz_s(k, m, l, m // n)) / 2
def trace_jacobi_eienstein_series(k, m, l, n, kind="holomorphic"): r""" OUTPUT Trace of $T(l) \circ W_n$ on the space of holomorphic or skew-holomorphic Jacobi Eisenstein series of weight $k$, index $m$ on $\mathoperator{SL}(2,Z)$. INPUT k -- weight m -- index l -- a Hecke operator index (rel. prime to the index $m$) n -- an Atkin-Lehner involution index (i.e. exact divisor of $m$) kind -- the string 'holomorphic' or 'skew-holomorphic' NOTE EXAMPLES """ k, m, eps = __check_jac_params(k, m, kind) k, m, l, n = __check(k, m, l, n) raise NotImplementedError()