Skip to content

Commit 7c90c9b

Browse files
ArmavicaricardoV94
authored andcommitted
Fix solve_{lower,upper}_triangular deprecation
Replaced with solve_triangular
1 parent 4ca3414 commit 7c90c9b

File tree

5 files changed

+15
-15
lines changed

5 files changed

+15
-15
lines changed

pymc/distributions/dist_math.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,14 @@
3434
from aesara.scalar import UnaryScalarOp, upgrade_to_float_no_complex
3535
from aesara.tensor import gammaln
3636
from aesara.tensor.elemwise import Elemwise
37-
from aesara.tensor.slinalg import Cholesky
38-
from aesara.tensor.slinalg import solve_lower_triangular as solve_lower
39-
from aesara.tensor.slinalg import solve_upper_triangular as solve_upper
37+
from aesara.tensor.slinalg import Cholesky, SolveTriangular
4038

4139
from pymc.aesaraf import floatX
4240
from pymc.distributions.shape_utils import to_tuple
4341

42+
solve_lower = SolveTriangular(lower=True)
43+
solve_upper = SolveTriangular(lower=False)
44+
4445
f = floatX
4546
c = -0.5 * np.log(2.0 * np.pi)
4647
_beta_clip_values = {

pymc/distributions/multivariate.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,7 @@
3333
from aesara.tensor.random.basic import dirichlet, multinomial, multivariate_normal
3434
from aesara.tensor.random.op import RandomVariable, default_supp_shape_from_params
3535
from aesara.tensor.random.utils import broadcast_params, normalize_size_param
36-
from aesara.tensor.slinalg import Cholesky
37-
from aesara.tensor.slinalg import solve_lower_triangular as solve_lower
38-
from aesara.tensor.slinalg import solve_upper_triangular as solve_upper
36+
from aesara.tensor.slinalg import Cholesky, SolveTriangular
3937
from aesara.tensor.type import TensorType
4038
from scipy import linalg, stats
4139

@@ -79,6 +77,9 @@
7977
"StickBreakingWeights",
8078
]
8179

80+
solve_lower = SolveTriangular(lower=True)
81+
solve_upper = SolveTriangular(lower=False)
82+
8283

8384
class SimplexContinuous(Continuous):
8485
"""Base class for simplex continuous distributions"""

pymc/gp/util.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,10 @@
1919

2020
from aesara.compile import SharedVariable
2121
from aesara.tensor.slinalg import ( # noqa: W0611; pylint: disable=unused-import
22+
SolveTriangular,
2223
cholesky,
2324
solve,
2425
)
25-
from aesara.tensor.slinalg import ( # noqa: W0611; pylint: disable=unused-import
26-
solve_lower_triangular as solve_lower,
27-
)
28-
from aesara.tensor.slinalg import ( # noqa: W0611; pylint: disable=unused-import
29-
solve_upper_triangular as solve_upper,
30-
)
3126
from aesara.tensor.var import TensorConstant
3227
from scipy.cluster.vq import kmeans
3328

@@ -41,6 +36,9 @@
4136

4237
JITTER_DEFAULT = 1e-6
4338

39+
solve_lower = SolveTriangular(lower=True)
40+
solve_upper = SolveTriangular(lower=False)
41+
4442

4543
def replace_with_values(vars_needed, replacements=None, model=None):
4644
R"""

pymc/math.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,8 +230,8 @@ def kron_vector_op(v):
230230

231231
# Define kronecker functions that work on 1D and 2D arrays
232232
kron_dot = partial(kron_matrix_op, op=at.dot)
233-
kron_solve_lower = partial(kron_matrix_op, op=at.slinalg.solve_lower_triangular)
234-
kron_solve_upper = partial(kron_matrix_op, op=at.slinalg.solve_upper_triangular)
233+
kron_solve_lower = partial(kron_matrix_op, op=at.slinalg.SolveTriangular(lower=True))
234+
kron_solve_upper = partial(kron_matrix_op, op=at.slinalg.SolveTriangular(lower=False))
235235

236236

237237
def flat_outer(a, b):

pymc/tests/test_math.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ def test_kron_solve_lower():
116116
x = np.random.rand(tot_size).reshape((tot_size, 1))
117117
# Construct entire kronecker product then solve
118118
big = kronecker(*Ls)
119-
slow_ans = at.slinalg.solve_lower_triangular(big, x)
119+
slow_ans = at.slinalg.solve_triangular(big, x, lower=True)
120120
# Use tricks to avoid construction of entire kronecker product
121121
fast_ans = kron_solve_lower(Ls, x)
122122
np.testing.assert_array_almost_equal(slow_ans.eval(), fast_ans.eval())

0 commit comments

Comments
 (0)