|
11 | 11 | from pytensor.configdefaults import config
|
12 | 12 | from pytensor.tensor.elemwise import DimShuffle
|
13 | 13 | from pytensor.tensor.math import _allclose
|
14 |
| -from pytensor.tensor.nlinalg import MatrixInverse, matrix_inverse |
| 14 | +from pytensor.tensor.nlinalg import Det, MatrixInverse, matrix_inverse |
15 | 15 | from pytensor.tensor.rewriting.linalg import inv_as_solve
|
16 | 16 | from pytensor.tensor.slinalg import Cholesky, Solve, SolveTriangular, solve
|
17 | 17 | from pytensor.tensor.type import dmatrix, matrix, vector
|
@@ -202,3 +202,19 @@ def test_cholesky_ldotlt(tag, cholesky_form, product):
|
202 | 202 | f(Av),
|
203 | 203 | )
|
204 | 204 | )
|
| 205 | + |
| 206 | + |
| 207 | +def test_local_det_chol(): |
| 208 | + X = matrix("X") |
| 209 | + L = at.linalg.cholesky(X) |
| 210 | + det_X = at.linalg.det(X) |
| 211 | + |
| 212 | + f = function([X], [L, det_X]) |
| 213 | + |
| 214 | + nodes = f.maker.fgraph.toposort() |
| 215 | + assert not any(isinstance(node, Det) for node in nodes) |
| 216 | + |
| 217 | + # This previously raised an error (issue #392) |
| 218 | + f = function([X], [L, det_X, X]) |
| 219 | + nodes = f.maker.fgraph.toposort() |
| 220 | + assert not any(isinstance(node, Det) for node in nodes) |
0 commit comments