Esempio n. 1
0
 def test_x5_mul(self):
     x5 = x5__with_prec(5)
     x10 = x10_with_prec(4)
     es4 = eisenstein_series_degree2(4, 5)
     self.assertEqual(x10, x5 ** 2)
     self.assertEqual(x10 * x5, x5 ** 3)
     self.assertEqual(x5 * es4, es4 * x5)
     self.assertEqual((x5 + x5 * es4) * x5, x10 + x10 * es4)
Esempio n. 2
0
 def test_divide_vector_valued(self):
     prec = 6
     x10 = x10_with_prec(prec + 1)
     es4 = eisenstein_series_degree2(4, prec + 1)
     es6 = eisenstein_series_degree2(6, prec + 1)
     f = rankin_cohen_pair_sym(2, es4, es6)
     g = f * x10
     self.assertEqual(f._down_prec(prec),
                      g.divide(x10, prec, parallel=True))
Esempio n. 3
0
 def test_eisenstein(self):
     prec = 10
     es4, es6, es10, es12 = [eisenstein_series_degree2(k, prec) for
                             k in [4, 6, 10, 12]]
     f10 = es4 * es6 - es10
     f12 = 3 ** 2 * 7 ** 2 * es4 ** 3 + 2 * 5 ** 3 * es6 ** 2 - 691 * es12
     f10 = f10 * (f10[(1, 1, 1)]) ** (-1)
     f12 = f12 * (f12[(1, 1, 1)]) ** (-1)
     self.assertTrue(f10 == x10_with_prec(prec))
     self.assertTrue(f12 == x12_with_prec(prec))
Esempio n. 4
0
def polynomial_to_form(f, prec):
    es4 = eisenstein_series_degree2(4, prec)
    es6 = eisenstein_series_degree2(6, prec)
    x10 = x10_with_prec(prec)
    x12 = x12_with_prec(prec)
    x35 = x35_with_prec(prec)
    gens = [es4, es6, x10, x12, x35]

    def monom(t):
        return reduce(operator.mul, [f ** a for f, a in zip(gens, t)])
    return sum([a * monom(t) for t, a in f.dict().iteritems()])
Esempio n. 5
0
 def test_division_cusp(self):
     '''Test the method calc_form of ConstDivision in the case when
     division by a cusp form.
     '''
     prec = 5
     x10 = x10_with_prec(prec)
     sccs = [SMFC([4, 10]), SMFC([6, 10])]
     cvc = ConstVectValued(2, sccs, 0, None)
     cd = ConstDivision([cvc], [1], SMFC([10]), 1)
     F = cvc.calc_form(prec)
     G = cd.calc_form(prec)
     self.assertNotEqual(F, 0)
     self.assertEqual(G.prec.value, prec)
     self.assertEqual(G * x10, F)
Esempio n. 6
0
es4 = eisenstein_series_degree2(4, global_prec)
qsres4 = QexpLevel1(es4.fc_dct, global_prec, base_ring=ZZ)

ffld = FiniteField(5)

ff_es4 = es4.change_ring(ffld)
ff_qsres4 = qsres4.change_ring(ffld)

es6 = eisenstein_series_degree2(6, global_prec)
qsres6 = QexpLevel1(es6.fc_dct, global_prec, base_ring=ZZ)

ff_es6 = es6.change_ring(ffld)
ff_qsres6 = qsres6.change_ring(ffld)

x10 = x10_with_prec(global_prec)
qsrx10 = QexpLevel1(x10.fc_dct, global_prec, base_ring=ZZ,
                    is_cuspidal=True)

ff_x10 = x10.change_ring(ffld)
ff_qsrx10 = qsrx10.change_ring(ffld)

dzx10 = x10.differentiate_wrt_z()

ff_dzx10 = dzx10.change_ring(ffld)

x12 = x12_with_prec(global_prec)
qsrx12 = QexpLevel1(x12.fc_dct, global_prec, is_cuspidal=True,
                    base_ring=ZZ)
dzx12 = x12.differentiate_wrt_z()
Esempio n. 7
0
 def testdivide(self):
     prec = 10
     x10 = x10_with_prec(prec + 1)
     es4 = eisenstein_series_degree2(4, prec + 1)
     self.assertEqual((es4 * x10).divide(x10, prec), es4)
     self.assertEqual((x10 * x10).divide(x10, prec), x10)
Esempio n. 8
0
 def test_x10(self):
     x10 = x10_with_prec(global_prec)
     self.assertTrue(self.sub_dct(x10) == fc_dct10)