Ticket #12101: trac_12101-sparse-matrix-exp.patch

File trac_12101-sparse-matrix-exp.patch, 1.1 KB (added by kcrisman, 9 years ago)
  • sage/matrix/matrix2.pyx

    # HG changeset patch
    # User Karl-Dieter Crisman <kcrisman@gmail.com>
    # Date 1340380591 14400
    # Node ID 89dd04b06fd4b7944033d7d1289845ed4eb91730
    # Parent  ef777986e8a5aa5ff04d778cf96746fbe8989aae
    Trac 12101 - make exponential work with sparse matrices
    
    diff --git a/sage/matrix/matrix2.pyx b/sage/matrix/matrix2.pyx
    a b  
    1152711527            sage: a.change_ring(RDF).exp()
    1152811528            [42748127.3153 7368259.24416]
    1152911529            [234538976.138 40426191.4516]
     11530
     11531        This works for sparse matrices, too; see :trac:`12101`::
     11532
     11533            sage: D = matrix(SR,[1],sparse=True)
     11534            sage: D.exp()
     11535            [e]
     11536            sage: D
     11537            [1]
     11538            sage: exp(diagonal_matrix([1, 2, 3]))
     11539            [  e   0   0]
     11540            [  0 e^2   0]
     11541            [  0   0 e^3]
    1153011542        """
    1153111543        from sage.symbolic.ring import SR
    11532         return self.change_ring(SR).exp()
     11544        if not self.is_sparse():
     11545            return self.change_ring(SR).exp()
     11546        return self.change_ring(SR).dense_matrix().exp()
    1153311547
    1153411548    def elementary_divisors(self):
    1153511549        r"""