def test_differential_operator(self):

        def load_cache(f):
            return SymWtModFmElt.load_from(opath.join(
                data_dir("vector_valued_differential"), f))

        p_e4_e4 = load_cache("pair_sym4_e4_e4_prec7.sobj")
        p_e4_x10 = load_cache("pair_sym4_e4_x10_prec7.sobj")
        p_det2_e4_e6 = load_cache("pair_sym4_det2_e4_e6_prec7.sobj")
        t_det_sym4_e4_e4_e6 = load_cache(
            "triple_det_sym4_e4_e4_e6_prec10.sobj")
        t_det_sym4_e4_e6_x12 = load_cache(
            "triple_det_sym4_e4_e6_x12_prec10.sobj")

        # prec 7
        es4, es6, x10, x12, _ = degree2_modular_forms_ring_level1_gens(7)
        self.assertEqual(rankin_cohen_pair_sym(4, es4, es4), p_e4_e4)
        self.assertEqual(rankin_cohen_pair_sym(4, es4, x10), p_e4_x10)
        self.assertEqual(rankin_cohen_pair_det2_sym(4, es4, es6),
                         p_det2_e4_e6)
        # prec 10
        es4, es6, x10, x12, _ = degree2_modular_forms_ring_level1_gens(10)
        self.assertEqual(rankin_cohen_triple_det_sym4(es4, es4, es6),
                         t_det_sym4_e4_e4_e6)
        self.assertEqual(rankin_cohen_triple_det_sym4(es4, es6, x12),
                         t_det_sym4_e4_e6_x12)
Beispiel #2
0
 def test_hecke_operator(self):
     es4, es6, _, _, _ = degree2_modular_forms_ring_level1_gens(10)
     self.assertEqual(es4.hecke_operator_acted(2, 5),
                      45 * es4._down_prec(5))
     f10 = rankin_cohen_pair_sym(2, es4, es6)
     self.assertEqual(f10.hecke_operator_acted(2, 5),
                      -6168 * f10._down_prec(5))
 def test_det_sym2_odd(self):
     prec = 7
     es4, es6, x10, x12, x35 = degree2_modular_forms_ring_level1_gens(prec)
     f21 = rankin_cohen_triple_det_sym2(es4, es6, x10)
     f23 = rankin_cohen_triple_det_sym2(es4, es6, x12)
     f27 = rankin_cohen_triple_det_sym2(es4, x10, x12)
     fs = [f21, f23, f27]
     det_form = det([f.forms for f in fs])
     det_form = det_form[(4, -2, 6)] ** (-1) * det_form
     self.assertEqual(det_form, es4 * x35 ** 2)
    def test_vector_valued_rankin_cohen(self):
        prec = 5
        M4_10 = vvld_smfs(4, 10, prec)
        f4_10 = M4_10.basis()[0]
        f4_15 = vvld_smfs(4, 15, prec).basis()[0]
        e4 = eisenstein_series_degree2(4, prec)
        g4_15 = vector_valued_rankin_cohen(e4, f4_10)
        t = ((1, 1, 1), 0)
        self.assertEqual(f4_15 * g4_15[t], g4_15 * f4_15[t])

        es4, es6, _, _, _ = degree2_modular_forms_ring_level1_gens(5)
        f = es6
        x5 = x5__with_prec(5)
        f_even_sym2 = rankin_cohen_pair_sym(2, f, x5)
        f_odd_sym2 = vector_valued_rankin_cohen(es4 * x5, f_even_sym2)
        a = f_odd_sym2[(1, 0, 2)].vec[1]
        g_sym2_21 = vvld_smfs(2, 21, 4).basis()[0]
        b = g_sym2_21[(1, 0, 2)].vec[1]
        self.assertEqual(f_odd_sym2 * b, g_sym2_21 * a)