Ejemplo n.º 1
0
def save_sym8_odd_form(key, prec=sym8_odd_prec):
    fname = fname_sym8_odd(key, prec)
    if os.path.exists(fname):
        return None
    es4, es6, x10, x12, x35 = degree2_modular_forms_ring_level1_gens(prec)
    if key in sym8_odd_dct:
        wt_dcts = sym8_odd_dct[key]
        gens_dct = {4: es4, 6: es6, 10: x10, 12: x12, 35: x35}
        fs = [mul([gens_dct[k]**i for k, i in d.items()]) for d in wt_dcts]
        f = rankin_cohen_triple_det_sym8(*fs)
    elif key == "h15":
        f10 = rankin_cohen_pair_x5(_rankin_cohen_pair_sym_pol(8, 5, 5), prec)
        f = vector_valued_rankin_cohen(es4, f10)
    elif key == "h17":
        f12 = rankin_cohen_pair_det2_sym(8, es4, es6)
        f = vector_valued_rankin_cohen(es4, f12)
    f.save_as_binary(fname)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
def rankin_cohen_quadruple_det3_sym_1(j, f1, f2, f3, f4):
    """
    Returns a modular form of wt sym(j) det^(sum + 3).
    """
    F = rankin_cohen_pair_det2_sym(j, f1, f2) * f3
    return vector_valued_rankin_cohen(f4, F)