コード例 #1
0
    def degeneracy_matrix(self, p=None):
        """
        Map from self to QuaterniocModule of level self/p.
        
        EXAMPLES::

            sage: from sage.modular.hilbert.sqrt5_hmf import F, QuaternionicModule
            sage: H = QuaternionicModule(2*F.prime_above(31)); H
            Quaternionic module of dimension 4, level 10*a-4 (of norm 124=2^2*31) over QQ(sqrt(5))
            sage: H.degeneracy_matrix(2)
            [1 0]
            [0 1]
            [0 1]
            [0 1]
            sage: H.degeneracy_matrix(F.prime_above(31))
            [1]
            [1]
            [1]
            [1]
            sage: H.degeneracy_matrix()
            [1 0 1]
            [0 1 1]
            [0 1 1]
            [0 1 1]
            sage: H.degeneracy_matrix() is H.degeneracy_matrix()
            False
            sage: H.degeneracy_matrix(2) is H.degeneracy_matrix(2)
            True        
        """
        if self.level().is_prime():
            return matrix(QQ, self.dimension(), 0, sparse=True)
        if self._degeneracy_matrices.has_key(p):
            return self._degeneracy_matrices[p]
        if p is None:
            A = None
            for p in prime_divisors(self._level):
                A = self.degeneracy_matrix(p) if A is None else A.augment(self.degeneracy_matrix(p))
            A.set_immutable()
            self._degeneracy_matrices[None] = A
            return A
        p = sqrt5_ideal(p)
        if self._degeneracy_matrices.has_key(p):
            return self._degeneracy_matrices[p]
        d = self._icosians_mod_p1.degeneracy_matrix(p)
        d.set_immutable()
        self._degeneracy_matrices[p] = d
        return d
コード例 #2
0
ファイル: hmf.py プロジェクト: bubonic/psage
 def degeneracy_matrix(self, p=None):
     if self.level().is_prime():
         return matrix(QQ, self.dimension(), 0, sparse=True)
     if p is None:
         A = None
         for p in prime_divisors(self._level):
             if A is None:
                 A = self.degeneracy_matrix(p)
             else:
                 A = A.augment(self.degeneracy_matrix(p))
         return A
     p = ideal(p)
     if self._degeneracy_matrices.has_key(p):
         return self._degeneracy_matrices[p]
     d = self._icosians_mod_p1.degeneracy_matrix(p)
     d.set_immutable()
     self._degeneracy_matrices[p] = d
     return d
コード例 #3
0
 def degeneracy_matrix(self, p=None):
     if self.level().is_prime():
         return matrix(QQ, self.dimension(), 0, sparse=True)
     if p is None:
         A = None
         for p in prime_divisors(self._level):
             if A is None:
                 A = self.degeneracy_matrix(p)
             else:
                 A = A.augment(self.degeneracy_matrix(p))
         return A
     p = ideal(p)
     if self._degeneracy_matrices.has_key(p):
         return self._degeneracy_matrices[p]
     d = self._icosians_mod_p1.degeneracy_matrix(p)
     d.set_immutable()
     self._degeneracy_matrices[p] = d
     return d