def TestExpansionAmbient_vv(A) : """ TESTS:: sage: from psage.modform.fourier_expansion_framework.modularforms.modularform_testtype import * sage: ea = TestExpansionAmbient_vv(QQ) """ return EquivariantMonoidPowerSeriesModule( NNMonoid(), TrivialCharacterMonoid("1", ZZ), TrivialRepresentation("1", FreeModule(A, ModularFormTestType_vectorvalued.rank)) )
def JacobiD1NNFourierExpansionModule(K, m, weak_forms = False) : r""" INPUT: - `m` -- The index of the associated Jacobi forms. - `weak_forms` -- If True the weak condition `r^2 \le 4 m n`n will be imposed on the indices. """ R = EquivariantMonoidPowerSeriesModule( JacobiFormD1NNIndices(m, weak_forms = weak_forms), TrivialCharacterMonoid("L^1_2(ZZ)", ZZ), TrivialRepresentation("L^1_2(ZZ)", K) ) if K is ZZ : R._set_multiply_function( lambda k, d1,d2, ch1,ch2, res : mult_coeff_int(k, d1, d2, ch1, ch2, res, m) if not weak_forms else lambda k, d1,d2, ch1,ch2, res : mult_coeff_int_weak(k, d1, d2, ch1, ch2, res, m) ) else : R._set_multiply_function( lambda k, d1,d2, ch1,ch2, res : mult_coeff_generic(k, d1, d2, ch1, ch2, res, m) if not weak_forms else lambda k, d1,d2, ch1,ch2, res : mult_coeff_generic_weak(k, d1, d2, ch1, ch2, res, m) ) return R
def TestExpansionAmbient(A) : """ TESTS:: sage: from psage.modform.fourier_expansion_framework.modularforms.modularform_testtype import * sage: ea = TestExpansionAmbient(QQ) """ return EquivariantMonoidPowerSeriesRing( NNMonoid(), TrivialCharacterMonoid("1", ZZ), TrivialRepresentation("1", A) )
def SiegelModularFormG2VVFourierExpansionRing(K): R = EquivariantMonoidPowerSeriesRing( SiegelModularFormG2Indices_discriminant_xreduce(), TrivialCharacterMonoid("GL(2,ZZ)", ZZ), SiegelModularFormG2VVRepresentation(K)) return R
def SiegelModularFormG2FourierExpansionRing(K, with_character=False): if with_character: raise NotImplementedError #R = EquivariantMonoidPowerSeriesRing( # SiegelModularFormG2Indices_discriminant_xreduce(), # GL2CharacterMonoid(K), # TrivialRepresentation("GL(2,ZZ)", K) ) # Characters in GL2CharacterMonoid should accept (det, sgn) #R._set_reduction_function(sreduce_GL) #if K is ZZ : # R._set_multiply_function(mult_coeff_int_character) #else : # R._set_multiply_function(mult_coeff_generic_character) else: R = EquivariantMonoidPowerSeriesRing( SiegelModularFormG2Indices_discriminant_xreduce(), TrivialCharacterMonoid("GL(2,ZZ)", ZZ), TrivialRepresentation("GL(2,ZZ)", K)) R._set_reduction_function(reduce_GL) if K is ZZ: R._set_multiply_function(mult_coeff_int_without_character) else: R._set_multiply_function(mult_coeff_generic_without_character) return R
def SiegelModularFormG4FourierExpansionRing(K, genus): R = EquivariantMonoidPowerSeriesRing( SiegelModularFormG4Indices_diagonal_lll(genus), TrivialCharacterMonoid("GL(%s,ZZ)" % (genus, ), ZZ), TrivialRepresentation("GL(%s,ZZ)" % (genus, ), K)) return R
def ParamodularFormD2FourierExpansionRing(K, level) : R = EquivariantMonoidPowerSeriesRing( ParamodularFormD2Indices_discriminant(level), TrivialCharacterMonoid("GL(2,ZZ)_0 (%s)" % (level,), ZZ), TrivialRepresentation("GL(2,ZZ)_0 (%s)" % (level,), K) ) # R._set_reduction_function(reduce_GL) # if K is ZZ : # R._set_multiply_function(mult_coeff_int) # else : # R._set_multiply_function(mult_coeff_generic) return R