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

File trac_12101-sparse-matrix-exp.patch, 1.1 KB (added by kcrisman, 11 months 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"""