Skip to content

Commit 752edd3

Browse files
Change to ArrayInterfaceCore
1 parent 9cf1981 commit 752edd3

File tree

5 files changed

+20
-20
lines changed

5 files changed

+20
-20
lines changed

Project.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ authors = ["SciML"]
44
version = "1.16.3"
55

66
[deps]
7-
ArrayInterface = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9"
7+
ArrayInterfaceCore = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9"
88
DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
99
GPUArrays = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7"
1010
IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153"
@@ -21,7 +21,7 @@ SuiteSparse = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9"
2121
UnPack = "3a884ed6-31ef-47d7-9d2a-63182c4928ed"
2222

2323
[compat]
24-
ArrayInterface = "3, 4, 5"
24+
ArrayInterfaceCore = "0.1.1"
2525
DocStringExtensions = "0.8"
2626
GPUArrays = "8"
2727
IterativeSolvers = "0.9.2"

docs/src/advanced/developing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ is what is called at `init` time to create the first `cacheval`. Note that this
4343
should match the type of the cache later used in `solve` as many algorithms, like
4444
those in OrdinaryDiffEq.jl, expect type-groundedness in the linear solver definitions.
4545
While there are cheaper ways to obtain this type for LU factorizations (specifically,
46-
`ArrayInterface.lu_instance(A)`), for a demonstration this just performs an
46+
`ArrayInterfaceCore.lu_instance(A)`), for a demonstration this just performs an
4747
LU-factorization to get an `LU{T, Matrix{T}}` which it puts into the `cacheval`
4848
so its typed for future use.
4949

src/LinearSolve.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module LinearSolve
22

3-
using ArrayInterface
3+
using ArrayInterfaceCore
44
using RecursiveFactorization
55
using Base: cache_dependencies, Bool
66
import Base: eltype, adjoint, inv

src/default.jl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ function defaultalg(A,b)
1111
# whether MKL or OpenBLAS is being used
1212
if (A === nothing && !(b isa GPUArrays.AbstractGPUArray)) || A isa Matrix
1313
if (A === nothing || eltype(A) <: Union{Float32,Float64,ComplexF32,ComplexF64}) &&
14-
ArrayInterface.can_setindex(b)
14+
ArrayInterfaceCore.can_setindex(b)
1515
if length(b) <= 10
1616
alg = GenericLUFactorization()
1717
elseif (length(b) <= 100 || (isopenblas() && length(b) <= 500))
@@ -34,7 +34,7 @@ function defaultalg(A,b)
3434

3535
# This catches the cases where a factorization overload could exist
3636
# For example, BlockBandedMatrix
37-
elseif A !== nothing && ArrayInterface.isstructured(A)
37+
elseif A !== nothing && ArrayInterfaceCore.isstructured(A)
3838
alg = GenericFactorization()
3939

4040
# This catches the case where A is a CuMatrix
@@ -64,7 +64,7 @@ function SciMLBase.solve(cache::LinearCache, alg::Nothing,
6464
if A isa Matrix
6565
b = cache.b
6666
if (A === nothing || eltype(A) <: Union{Float32,Float64,ComplexF32,ComplexF64}) &&
67-
ArrayInterface.can_setindex(b)
67+
ArrayInterfaceCore.can_setindex(b)
6868
if length(b) <= 10
6969
alg = GenericLUFactorization()
7070
SciMLBase.solve(cache, alg, args...; kwargs...)
@@ -94,7 +94,7 @@ function SciMLBase.solve(cache::LinearCache, alg::Nothing,
9494

9595
# This catches the cases where a factorization overload could exist
9696
# For example, BlockBandedMatrix
97-
elseif ArrayInterface.isstructured(A)
97+
elseif ArrayInterfaceCore.isstructured(A)
9898
alg = GenericFactorization()
9999
SciMLBase.solve(cache, alg, args...; kwargs...)
100100

@@ -122,7 +122,7 @@ function init_cacheval(alg::Nothing, A, b, u, Pl, Pr, maxiters, abstol, reltol,
122122
# whether MKL or OpenBLAS is being used
123123
if A isa Matrix
124124
if (A === nothing || eltype(A) <: Union{Float32,Float64,ComplexF32,ComplexF64}) &&
125-
ArrayInterface.can_setindex(b)
125+
ArrayInterfaceCore.can_setindex(b)
126126
if length(b) <= 10
127127
alg = GenericLUFactorization()
128128
init_cacheval(alg, A, b, u, Pl, Pr, maxiters, abstol, reltol, verbose)
@@ -152,7 +152,7 @@ function init_cacheval(alg::Nothing, A, b, u, Pl, Pr, maxiters, abstol, reltol,
152152

153153
# This catches the cases where a factorization overload could exist
154154
# For example, BlockBandedMatrix
155-
elseif ArrayInterface.isstructured(A)
155+
elseif ArrayInterfaceCore.isstructured(A)
156156
alg = GenericFactorization()
157157
init_cacheval(alg, A, b, u, Pl, Pr, maxiters, abstol, reltol, verbose)
158158

src/factorization.jl

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ function do_factorization(alg::GenericLUFactorization, A, b, u)
6363
return fact
6464
end
6565

66-
init_cacheval(alg::Union{LUFactorization,GenericLUFactorization}, A, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterface.lu_instance(convert(AbstractMatrix,A))
66+
init_cacheval(alg::Union{LUFactorization,GenericLUFactorization}, A, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterfaceCore.lu_instance(convert(AbstractMatrix,A))
6767

6868
# This could be a GenericFactorization perhaps?
6969
Base.@kwdef struct UMFPACKFactorization <: AbstractFactorization
@@ -205,18 +205,18 @@ function do_factorization(alg::GenericFactorization, A, b, u)
205205
return fact
206206
end
207207

208-
init_cacheval(alg::GenericFactorization{typeof(lu)}, A, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterface.lu_instance(convert(AbstractMatrix,A))
209-
init_cacheval(alg::GenericFactorization{typeof(lu!)}, A, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterface.lu_instance(convert(AbstractMatrix,A))
208+
init_cacheval(alg::GenericFactorization{typeof(lu)}, A, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterfaceCore.lu_instance(convert(AbstractMatrix,A))
209+
init_cacheval(alg::GenericFactorization{typeof(lu!)}, A, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterfaceCore.lu_instance(convert(AbstractMatrix,A))
210210

211-
init_cacheval(alg::GenericFactorization{typeof(lu)}, A::StridedMatrix{<:LinearAlgebra.BlasFloat}, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterface.lu_instance(A)
212-
init_cacheval(alg::GenericFactorization{typeof(lu!)}, A::StridedMatrix{<:LinearAlgebra.BlasFloat}, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterface.lu_instance(A)
211+
init_cacheval(alg::GenericFactorization{typeof(lu)}, A::StridedMatrix{<:LinearAlgebra.BlasFloat}, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterfaceCore.lu_instance(A)
212+
init_cacheval(alg::GenericFactorization{typeof(lu!)}, A::StridedMatrix{<:LinearAlgebra.BlasFloat}, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterfaceCore.lu_instance(A)
213213
init_cacheval(alg::GenericFactorization{typeof(lu)}, A::Diagonal, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = Diagonal(inv.(A.diag))
214-
init_cacheval(alg::GenericFactorization{typeof(lu)}, A::Tridiagonal, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterface.lu_instance(A)
214+
init_cacheval(alg::GenericFactorization{typeof(lu)}, A::Tridiagonal, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterfaceCore.lu_instance(A)
215215
init_cacheval(alg::GenericFactorization{typeof(lu!)}, A::Diagonal, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = Diagonal(inv.(A.diag))
216-
init_cacheval(alg::GenericFactorization{typeof(lu!)}, A::Tridiagonal, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterface.lu_instance(A)
216+
init_cacheval(alg::GenericFactorization{typeof(lu!)}, A::Tridiagonal, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterfaceCore.lu_instance(A)
217217

218218
init_cacheval(alg::GenericFactorization, A::Diagonal, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = Diagonal(inv.(A.diag))
219-
init_cacheval(alg::GenericFactorization, A::Tridiagonal, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterface.lu_instance(A)
219+
init_cacheval(alg::GenericFactorization, A::Tridiagonal, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterfaceCore.lu_instance(A)
220220
init_cacheval(alg::GenericFactorization, A::SymTridiagonal{T,V}, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) where {T,V} = LinearAlgebra.LDLt{T,SymTridiagonal{T,V}}(A)
221221

222222
function init_cacheval(alg::Union{GenericFactorization,GenericFactorization{typeof(bunchkaufman!)},GenericFactorization{typeof(bunchkaufman)}},
@@ -277,5 +277,5 @@ end
277277

278278
RFLUFactorization(;pivot = Val(true), thread = Val(true)) = GenericFactorization(;fact_alg=RFWrapper(pivot,thread))
279279

280-
init_cacheval(alg::GenericFactorization{<:RFWrapper}, A, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterface.lu_instance(convert(AbstractMatrix,A))
281-
init_cacheval(alg::GenericFactorization{<:RFWrapper}, A::StridedMatrix{<:LinearAlgebra.BlasFloat}, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterface.lu_instance(convert(AbstractMatrix,A))
280+
init_cacheval(alg::GenericFactorization{<:RFWrapper}, A, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterfaceCore.lu_instance(convert(AbstractMatrix,A))
281+
init_cacheval(alg::GenericFactorization{<:RFWrapper}, A::StridedMatrix{<:LinearAlgebra.BlasFloat}, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterfaceCore.lu_instance(convert(AbstractMatrix,A))

0 commit comments

Comments
 (0)