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))
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()])
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() ff_x12 = x12.change_ring(ffld) ff_qsrx12 = qsrx12.change_ring(ffld) ff_dzx12 = dzx12.change_ring(ffld) x35 = x35_with_prec(global_prec) ff_x35 = x35.change_ring(ffld) dct_of_forms = {"es4": es4, "qsres4": qsres4, "es6": es6, "qsres6": qsres6,
def test_x12(self): x12 = x12_with_prec(global_prec) self.assertTrue(self.sub_dct(x12) == fc_dct12)