code / alex / psage / psage / modform / paramodularforms / siegelmodularformg2vv_fegenerators_cython.pyx
241818 viewsr"""1The diffential operator involved in the definition of the Satoh bracket.23AUTHORS:45- Martin Raum (2010 - 03 - 16) Initial version.6"""78#===============================================================================9#10# Copyright (C) 2010 Martin Raum11#12# This program is free software; you can redistribute it and/or13# modify it under the terms of the GNU General Public License14# as published by the Free Software Foundation; either version 315# of the License, or (at your option) any later version.16#17# This program is distributed in the hope that it will be useful,18# but WITHOUT ANY WARRANTY; without even the implied warranty of19# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU20# General Public License for more details.21#22# You should have received a copy of the GNU General Public License23# along with this program; if not, see <http://www.gnu.org/licenses/>.24#25#===============================================================================2627include "interrupt.pxi"28include "stdsage.pxi"29include "cdefs.pxi"3031cpdef satoh_dz(f, R) :32## Satoh's definition of the operation on Siegel modular forms yields33## a polynomial substitution x -> dx - cy, y -> -b + ay.34## We will need x -> ax + by, y -> cx + dy.35## We hence calculate the operator matrix(2, [d z_2, -d z_3 / 2, *, d z_1])3637x = R.gen(0)38y = R.gen(1)39xsq = x*x40xy = x*y41ysq = y*y4243res = PY_NEW(dict)44res2 = PY_NEW(dict)45res3 = PY_NEW(dict)46for k in f :47res[k] = xsq * (k[2] * f[k]) + xy * (k[1] * f[k]) + ysq * (k[0] * f[k])4849return res505152