Exemple #1
0
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)) )
Exemple #2
0
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
Exemple #3
0
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) )
Exemple #4
0
def SiegelModularFormG2VVFourierExpansionRing(K):
    R = EquivariantMonoidPowerSeriesRing(
        SiegelModularFormG2Indices_discriminant_xreduce(),
        TrivialCharacterMonoid("GL(2,ZZ)", ZZ),
        SiegelModularFormG2VVRepresentation(K))

    return R
Exemple #5
0
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
Exemple #6
0
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