Skip to content

Commit 373b98b

Browse files
committed
fix: move the BandedArrays extension
1 parent 798c966 commit 373b98b

7 files changed

+24
-16
lines changed

Project.toml

-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ SymbolicIndexingInterface = "2efcf032-c050-4f8e-a9bb-153293bab1f5"
3535
TimerOutputs = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f"
3636

3737
[weakdeps]
38-
BandedMatrices = "aae01518-5342-5314-be14-df237901396f"
3938
FastLevenbergMarquardt = "7a0df574-e128-4d35-8cbd-3d84502bf7ce"
4039
FixedPointAcceleration = "817d07cb-a79a-5c30-9a31-890123675176"
4140
LeastSquaresOptim = "0fc2ff8b-aaa3-5acd-a817-1944a5e08891"
@@ -48,7 +47,6 @@ SpeedMapping = "f1835b91-879b-4a3f-a438-e4baacf14412"
4847
Sundials = "c3572dad-4567-51f8-b174-8c6c989267f4"
4948

5049
[extensions]
51-
NonlinearSolveBandedMatricesExt = "BandedMatrices"
5250
NonlinearSolveFastLevenbergMarquardtExt = "FastLevenbergMarquardt"
5351
NonlinearSolveFixedPointAccelerationExt = "FixedPointAcceleration"
5452
NonlinearSolveLeastSquaresOptimExt = "LeastSquaresOptim"

ext/NonlinearSolveBandedMatricesExt.jl

-11
This file was deleted.

lib/NonlinearSolveBase/Project.toml

+3
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,15 @@ SymbolicIndexingInterface = "2efcf032-c050-4f8e-a9bb-153293bab1f5"
2727
TimerOutputs = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f"
2828

2929
[weakdeps]
30+
BandedMatrices = "aae01518-5342-5314-be14-df237901396f"
3031
DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e"
3132
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
3233
LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae"
3334
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
3435
SparseMatrixColorings = "0a514795-09f3-496d-8182-132a7b665d35"
3536

3637
[extensions]
38+
NonlinearSolveBaseBandedMatricesExt = "BandedMatrices"
3739
NonlinearSolveBaseDiffEqBaseExt = "DiffEqBase"
3840
NonlinearSolveBaseForwardDiffExt = "ForwardDiff"
3941
NonlinearSolveBaseLinearSolveExt = "LinearSolve"
@@ -45,6 +47,7 @@ ADTypes = "1.9"
4547
Adapt = "4.1.0"
4648
Aqua = "0.8.7"
4749
ArrayInterface = "7.9"
50+
BandedMatrices = "1.5"
4851
CommonSolve = "0.2.4"
4952
Compat = "4.15"
5053
ConcreteStructs = "0.2.3"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
module NonlinearSolveBaseBandedMatricesExt
2+
3+
using BandedMatrices: BandedMatrix
4+
using LinearAlgebra: Diagonal
5+
using NonlinearSolveBase: NonlinearSolveBase, Utils
6+
7+
# This is used if we vcat a Banded Jacobian with a Diagonal Matrix in Levenberg
8+
@inline function Utils.faster_vcat(B::BandedMatrix, D::Diagonal)
9+
if Utils.is_extension_loaded(Val(:SparseArrays))
10+
@warn "Load `SparseArrays` for an optimized vcat for BandedMatrices."
11+
return vcat(B, D)
12+
end
13+
return vcat(Utils.make_sparse(B), D)
14+
end
15+
16+
end

lib/NonlinearSolveBase/ext/NonlinearSolveBaseSparseArraysExt.jl

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module NonlinearSolveBaseSparseArraysExt
22

33
using NonlinearSolveBase: NonlinearSolveBase, Utils
4-
using SparseArrays: AbstractSparseMatrix, AbstractSparseMatrixCSC, nonzeros
4+
using SparseArrays: AbstractSparseMatrix, AbstractSparseMatrixCSC, nonzeros, sparse
55

66
function NonlinearSolveBase.NAN_CHECK(x::AbstractSparseMatrixCSC)
77
return any(NonlinearSolveBase.NAN_CHECK, nonzeros(x))
@@ -11,4 +11,6 @@ NonlinearSolveBase.sparse_or_structured_prototype(::AbstractSparseMatrix) = true
1111

1212
Utils.maybe_symmetric(x::AbstractSparseMatrix) = x
1313

14+
Utils.make_sparse(x) = sparse(x)
15+
1416
end

lib/NonlinearSolveBase/src/abstract_types.jl

-2
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,6 @@ for fname in (:preinverted_jacobian, :normal_form)
135135
end
136136
end
137137

138-
139-
140138
"""
141139
AbstractDampingFunction
142140

lib/NonlinearSolveBase/src/utils.jl

+2
Original file line numberDiff line numberDiff line change
@@ -144,4 +144,6 @@ function evaluate_f!!(f::NonlinearFunction, fu, u, p)
144144
return f(u, p)
145145
end
146146

147+
function make_sparse end
148+
147149
end

0 commit comments

Comments
 (0)