예제 #1
0
 def test_det(self):
     prec = 10
     l = [eisenstein_series_degree2(k, prec) for k in [4, 6, 10, 12]]
     m = [[a.wt * a for a in l],
          [a.differentiate_wrt_tau() for a in l],
          [a.differentiate_wrt_w() for a in l],
          [a.differentiate_wrt_z() for a in l]]
     d = det_deg2(m, wt=35)
     d = d * d[(2, -1, 3)] ** (-1)
     self.assertEqual(d, x35_with_prec(prec))
예제 #2
0
 def test_interpolate(self):
     prec = 15
     es4 = eisenstein_series_degree2(4, prec)
     x35 = x35_with_prec(prec)
     f = es4.differentiate_wrt_tau()
     self.assertEqual(calc_forms(lambda fs: fs[0] ** 2, [es4], prec, wt=8),
                      es4 ** 2)
     self.assertEqual(calc_forms(lambda fs: fs[0] * fs[1],
                                 [es4, x35], prec, wt=39), es4 * x35)
     self.assertEqual(calc_forms(lambda fs: fs[0] ** 2,
                                 [f], prec, autom=False), f ** 2)
예제 #3
0
from degree2.all import (
    rankin_cohen_pair_sym, eisenstein_series_degree2,
    x10_with_prec, x12_with_prec, x35_with_prec,
    rankin_cohen_pair_det2_sym,
    rankin_cohen_triple_det_sym4)

from degree2.interpolate import det_deg2

prec_ev = 7

phi4 = eisenstein_series_degree2(4, prec_ev)
phi6 = eisenstein_series_degree2(6, prec_ev)
x10 = x10_with_prec(prec_ev)
x12 = x12_with_prec(prec_ev)
x35 = x35_with_prec(prec_ev)

f1 = rankin_cohen_pair_sym(4, phi4, phi4)
f2 = rankin_cohen_pair_sym(4, phi4, phi6)
f3 = rankin_cohen_pair_det2_sym(4, phi4, phi6)
f4 = rankin_cohen_pair_sym(4, phi4, x10)
f5 = rankin_cohen_pair_sym(4, phi6, x10)

x70 = det_deg2([f.forms for f in [f1, f2, f3, f4, f5]],
               wt=sum([f.wt for f in [f1, f2, f3, f4, f5]]) + 10)
y70 = x70 * QQ(-19945421021123916595200000)**(-1)
assert y70 == x35**2


prec_od = 10