def divide(self, f, prec, parallel=False): if parallel: res_forms = pmap(lambda x: x.divide(f, prec), self.forms) else: res_forms = [a.divide(f, prec) for a in self.forms] res_br = common_base_ring(res_forms) return SymWtGenElt(res_forms, prec, base_ring=res_br)
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
def _rankin_cohen_gen(Q, flist): forms = _rankin_cohen_bracket_func(Q)(flist) prec = common_prec(forms) base_ring = common_base_ring(flist) a = _inc_weight(Q) return SWMFE(forms, sum([f.wt for f in flist]) + a, prec, base_ring)