def check_sym8_odd(prec=sym8_odd_prec): det_sym8_odd(prec=sym8_odd_prec) f187 = Deg2ModularFormQseries.load_from(fname_sym8_odd("f187", prec)) es4, es6, _, _, x35 = degree2_modular_forms_ring_level1_gens(prec) g187 = (es4**3 - es6**2) * x35**5 g187 = g187.normalize((12, -1, 14)) f187 = f187.normalize((12, -1, 14)) assert f187 == g187
def test_scalar_calc_form(self): '''Test SMFC.calc_form. ''' prec = 5 es4, es6, x10, x12, _ = degree2_modular_forms_ring_level1_gens(prec) c = SMFC([4, 6]) self.assertTrue(c.calc_form(prec), es4 * es6) c = SMFC({(4, 6): 1}) self.assertTrue(c.calc_form(prec), es4 * es6) c = SMFC([4, 4, 10, 12]) self.assertTrue(c.calc_form(prec), es4 ** 2 * x10 * x12) c = SMFC({(4, 4, 6): 1, (4, 10): -1}) self.assertTrue(c.calc_form(prec), es4 ** 2 * es6 - es4 * x10)
def test_division_multiplication(self): '''Test the method calc_form of ConstDivision and ConstMul.''' prec = 5 es4, es6, _, _, _ = degree2_modular_forms_ring_level1_gens(prec) sccs = [SMFC([4, 6]), SMFC([10, 12])] cvc = ConstVectValued(2, sccs, 0, None) cd = ConstDivision([cvc], [1], SMFC([4, 6]), 0) cm = ConstMul(cvc, SMFC([4, 6])) F = cvc.calc_form(prec) G = cd.calc_form(prec) H = cm.calc_form(prec) self.assertNotEqual(F, 0) self.assertEqual(G.wt, 22) self.assertEqual(G * es4 * es6, F) self.assertEqual(H.wt, 42) self.assertEqual(H, F * es4 * es6)
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)
def calc_form(self, prec): es4, es6, x10, x12, x35 = degree2_modular_forms_ring_level1_gens(prec) x5 = x5__with_prec(prec) d = {4: es4, 6: es6, 10: x10, 12: x12, 5: x5, 35: x35} return self._calc_from_gens_dict(d)