def test_wt_20_eigen(self): N20 = KlingenEisensteinAndCuspForms(20) pl = N20.hecke_charpoly(2) x = pl.parent().gens()[0] pl1 = ((x + Integer(840960)) * (x ** Integer(2) - Integer(1378464) * x + Integer(328189501440))) self.assertTrue(pl == (x - Integer(119538120)) * pl1) x = var("x") f20_1 = N20.eigenform_with_eigenvalue_t2(alpha20_1) f20_2 = N20.eigenform_with_eigenvalue_t2(alpha20_2) f20_3 = N20.eigenform_with_eigenvalue_t2(alpha20_3) l = [f20_1, f20_2, f20_3] l = [f.normalize(f[(1, 1, 1)]) for f in l] cons20[-1] = coerce_pol(cons20[-1], alpha20_3.parent()) self.assertTrue(cons20 == [f._construction for f in l]) self.assertTrue(all(polynomial_to_form(c, 4) == f for c, f in zip(cons20, l))) dcts = [f20_1_dct, f20_2_dct, f20_3_dct] self.assertTrue(all(coerce_dict(d, f.base_ring) == f.fc_dct for d, f in zip(dcts, l)))
def save_load_basis(self, wt): KS = KlingenEisensteinAndCuspForms(wt, 10) basis = KS.basis() KS.save_basis_as_binary("/tmp/basis_test.sobj") KS = KlingenEisensteinAndCuspForms(wt, 10) KS.load_basis_from("/tmp/basis_test.sobj") lbasis = KS.basis() dim = KS.dimension() self.assertTrue(all([lbasis[i].fc_dct == basis[i].fc_dct for i in range(dim)]))
def test_wt_47_eigen(self): KS47 = KlingenEisensteinAndCuspForms(47) lambda2 = (-ZZ(957874176) / ZZ(13) * a47 ** 2 - ZZ(818321817600) / ZZ(13) * a47 - ZZ(34324755775488)) x47 = KS47.eigenform_with_eigenvalue_t2(lambda2) x47 = x47.normalize(x47[(2, -1, 3)]) _const47 = coerce_pol(cons47[0], a47.parent()) self.assertTrue(_const47 == x47._construction) self.assertTrue(polynomial_to_form(_const47, x47.prec) == x47) _x47_fc_dct = coerce_dict(x47_fc_dct, a47.parent()) self.assertTrue(x47.fc_dct == _x47_fc_dct) S47 = CuspFormsDegree2(47) x47 = S47.eigenform_with_eigenvalue_t2(lambda2) x47 = x47.normalize(x47[(2, -1, 3)]) self.assertTrue(_const47 == x47._construction) self.assertTrue(x47.fc_dct == _x47_fc_dct)