Skip to content

Commit 6cc1e23

Browse files
jClugstorChrisRackauckas
authored andcommitted
use aliasing API for alias_A and alias_b
1 parent 378f67f commit 6cc1e23

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

src/common.jl

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ function SciMLBase.init(prob::LinearProblem, alg::SciMLLinearSolveAlgorithm,
141141
args...;
142142
alias_A = default_alias_A(alg, prob.A, prob.b),
143143
alias_b = default_alias_b(alg, prob.A, prob.b),
144+
alias = LinearAliasSpecifier(),
144145
abstol = default_tol(real(eltype(prob.b))),
145146
reltol = default_tol(real(eltype(prob.b))),
146147
maxiters::Int = length(prob.b),
@@ -152,6 +153,47 @@ function SciMLBase.init(prob::LinearProblem, alg::SciMLLinearSolveAlgorithm,
152153
kwargs...)
153154
(; A, b, u0, p) = prob
154155

156+
aliases = alias
157+
158+
if haskey(kwargs,:alias_A) || haskey(kwargs,:alias_b)
159+
aliases = LinearAliasSpecifier()
160+
161+
if haskey(kwargs, :alias_A)
162+
message = "`alias_A` keyword argument is deprecated, to set `alias_A`,
163+
please use an ODEAliasSpecifier, e.g. `solve(prob, alias = LinearAliasSpecifier(alias_A = true))"
164+
Base.depwarn(message, :init)
165+
Base.depwarn(message, :solve)
166+
aliases = LinearAliasSpecifier(alias_A = values(kwargs).alias_A)
167+
end
168+
169+
if haskey(kwargs, :alias_b)
170+
message = "`alias_b` keyword argument is deprecated, to set `alias_b`,
171+
please use an ODEAliasSpecifier, e.g. `solve(prob, alias = LinearAliasSpecifier(alias_b = true))"
172+
Base.depwarn(message, :init)
173+
Base.depwarn(message, :solve)
174+
aliases = LinearAliasSpecifier(alias_A = aliases.alias_A, alias_b = values(kwargs).alias_b)
175+
end
176+
else
177+
if alias isa Bool
178+
aliases = LinearAliasSpecifier(alias = alias)
179+
else
180+
aliases = alias
181+
end
182+
end
183+
184+
if isnothing(aliases.alias_A)
185+
alias_A = default_alias_A(alg, prob.A, prob.b)
186+
else
187+
alias_A = aliases.alias_A
188+
end
189+
190+
if isnothing(aliases.alias_b)
191+
alias_b = default_alias_b(alg, prob.A, prob.b)
192+
else
193+
alias_b = aliases.alias_b
194+
end
195+
196+
155197
A = if alias_A || A isa SMatrix
156198
A
157199
elseif A isa Array

0 commit comments

Comments
 (0)