Example #1
0
 def test_division_generators(self):
     prec = 6
     div_consts = [c for c in gens_consts if isinstance(c, ConstDivision)]
     consts = (even_gen_consts() + odd_gen_consts() +
               [CVH(_wt18_consts[0], 2), CVH(sym10_19_consts[0], 2)])
     calculator = CalculatorVectValued(consts, data_dir)
     calculator.calc_forms_and_save(prec, verbose=True, force=True)
     gens_dct = calculator.forms_dict(prec)
     for c in div_consts:
         k = c.weight()
         print "checking when k = %s" % (str(k), )
         if k % 2 == 0:
             sccst = _find_const_of_e4_e6_of_same_wt(18 - k)
             M = Sym10EvenDiv(sccst, prec)
         else:
             sccst = _find_const_of_e4_e6_of_same_wt(19 - k)
             M = Sym10OddDiv(sccst, prec)
         pl = _anihilate_pol(k, M)
         hol_basis = M.basis_of_subsp_annihilated_by(pl)
         N = Sym10GivenWtBase(prec, k, hol_basis)
         # Check this prec is sufficient.
         mt = matrix(QQ, [[b[t] for b in N.basis()]
                          for t in N.linearly_indep_tuples()])
         self.assertTrue(
             mt.is_invertible(), "False when k = %s" % (str(k),))
         # Check our construction gives a holomorphic modular form
         self.assertTrue(N.contains(gens_dct[c]),
                         "False when k = %s" % (str(k),))
Example #2
0
 def test_known_eigenforms(self):
     '''Test Hecke polynomial of degree 4 for Klingen-Eisenstein series
     and a KRS-lift.
     '''
     klingen_consts = [c for c in even_gen_consts() if c.weight() in (6, 8)]
     klingen_consts.append(_wt10_klingen_const())
     krs_const = [c for c in odd_gen_consts() if c.weight() == 13][0]
     clc = CalculatorVectValued(klingen_consts + [krs_const], data_dir)
     forms_dct = clc.forms_dict(6)
     for c in klingen_consts:
         self.assertEqual(forms_dct[c].euler_factor_of_spinor_l(2),
                          _hecke_pol_klingen(c.weight()))
     self.assertEqual(forms_dct[krs_const].euler_factor_of_spinor_l(2),
                      _hecke_pol_krs_lift())
Example #3
0
class Sym10GivenWtHeckeConstBase(VectorValuedSiegelModularForms):

    '''A parent class of Sym10Wt18HeckeConst and Sym10Wt19HeckeConst.
    '''

    def __init__(self, prec, wt, basis_consts):
        self._basis_consts = basis_consts
        self._calculator = CalculatorVectValued(self._basis_consts, data_dir)
        super(Sym10GivenWtHeckeConstBase, self).__init__(wt, 10, prec)

    @cached_method
    def basis(self):
        d = self._calculator.forms_dict(self.prec)
        return [d[c] for c in self._basis_consts]

    def dimension(self):
        return hilbert_series_maybe(10)[self.wt]