def det_of_gens(prec): d = calculator.forms_dict(prec) cs = gen_consts()[:11] wt = sum([c.weight() for c in cs]) + (10 * 11) // 2 mat = [d[c].forms for c in cs] f = det_deg2(mat, wt=wt) f.save_as_binary(os.path.join(data_dir, "gens_even_det.sobj"))
def det_sym8_odd(prec=sym8_odd_prec): fname = fname_sym8_odd("f187", prec) if os.path.exists(fname): return None keys = ["f13", "f15", "g15", "f17", "g17", "f19", "f23", "h15", "h17"] lst = [SWMFE.load_from(fname_sym8_odd(key, prec)) for key in keys] f187 = det_deg2([f.forms for f in lst], autom=True, wt=sum([f.wt for f in lst]) + 36) f187.save_as_binary(fname)
def test_det(self): prec = 10 l = [eisenstein_series_degree2(k, prec) for k in [4, 6, 10, 12]] m = [[a.wt * a for a in l], [a.differentiate_wrt_tau() for a in l], [a.differentiate_wrt_w() for a in l], [a.differentiate_wrt_z() for a in l]] d = det_deg2(m, wt=35) d = d * d[(2, -1, 3)] ** (-1) self.assertEqual(d, x35_with_prec(prec))
def check_det_with_prec(prec): es4 = eisenstein_series_degree2(4, prec) es6 = eisenstein_series_degree2(6, prec) x35 = x35_with_prec(prec) f = (es4**3 - es6**2) * x35**6 t = f._none_zero_tpl() d = calculator.forms_dict(prec) # Constructions of the first 11 generators. cs = list(sorted(calculator._const_vecs, key=lambda x: x.weight()))[:11] wt = sum(c.weight() for c in cs) + (10 * 11)//2 mat = [d[c].forms for c in cs] det = det_deg2(mat, wt=wt) assert f[t] * det == det[t] * f
def diff_opetator_4(f1, f2, f3, f4): l = [f1, f2, f3, f4] wt_s = [f.wt for f in l] prec_res = common_prec(l) base_ring = common_base_ring(l) m = [[a.wt * a for a in l], pmap(lambda a: a.differentiate_wrt_tau(), l), pmap(lambda a: a.differentiate_wrt_w(), l), pmap(lambda a: a.differentiate_wrt_z(), l)] res = det_deg2(m, wt=sum((f.wt for f in l)) + 1) res = ModFormQexpLevel1( sum(wt_s) + 3, res.fc_dct, prec_res, base_ring=base_ring) return res
prec_ev = 7 phi4 = eisenstein_series_degree2(4, prec_ev) phi6 = eisenstein_series_degree2(6, prec_ev) x10 = x10_with_prec(prec_ev) x12 = x12_with_prec(prec_ev) x35 = x35_with_prec(prec_ev) f1 = rankin_cohen_pair_sym(4, phi4, phi4) f2 = rankin_cohen_pair_sym(4, phi4, phi6) f3 = rankin_cohen_pair_det2_sym(4, phi4, phi6) f4 = rankin_cohen_pair_sym(4, phi4, x10) f5 = rankin_cohen_pair_sym(4, phi6, x10) x70 = det_deg2([f.forms for f in [f1, f2, f3, f4, f5]], wt=sum([f.wt for f in [f1, f2, f3, f4, f5]]) + 10) y70 = x70 * QQ(-19945421021123916595200000)**(-1) assert y70 == x35**2 prec_od = 10 e4 = eisenstein_series_degree2(4, prec_od) e6 = eisenstein_series_degree2(6, prec_od) x10 = x10_with_prec(prec_od) x12 = x12_with_prec(prec_od) x35 = x35_with_prec(prec_od) g0 = rankin_cohen_triple_det_sym4(e4, e4, e6) g1 = rankin_cohen_triple_det_sym4(e4, e6, e6) g2 = rankin_cohen_triple_det_sym4(e4, e4, x10)