# 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
|
|
| 11527 | 11527 | sage: a.change_ring(RDF).exp() |
| 11528 | 11528 | [42748127.3153 7368259.24416] |
| 11529 | 11529 | [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] |
| 11530 | 11542 | """ |
| 11531 | 11543 | 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() |
| 11533 | 11547 | |
| 11534 | 11548 | def elementary_divisors(self): |
| 11535 | 11549 | r""" |