Skip to content

Commit a24f20e

Browse files
committed
Specialize on functions
1 parent 1caff10 commit a24f20e

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/jacobian.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ end
4949
jacobian!!(::Number, cache) = last(value_derivative(cache.uf, cache.u))
5050

5151
# Build Jacobian Caches
52-
function jacobian_caches(alg::AbstractNonlinearSolveAlgorithm, f, u, p, ::Val{iip};
52+
function jacobian_caches(alg::AbstractNonlinearSolveAlgorithm, f::F, u, p, ::Val{iip};
5353
linsolve_kwargs = (;), lininit::Val{linsolve_init} = Val(true),
54-
linsolve_with_JᵀJ::Val{needsJᵀJ} = Val(false)) where {iip, needsJᵀJ, linsolve_init}
54+
linsolve_with_JᵀJ::Val{needsJᵀJ} = Val(false)) where {iip, needsJᵀJ, linsolve_init, F}
5555
uf = JacobianWrapper{iip}(f, p)
5656

5757
haslinsolve = hasfield(typeof(alg), :linsolve)
@@ -135,9 +135,9 @@ __maybe_symmetric(x::StaticArray) = x
135135
__maybe_symmetric(x::SparseArrays.AbstractSparseMatrix) = x
136136

137137
## Special Handling for Scalars
138-
function jacobian_caches(alg::AbstractNonlinearSolveAlgorithm, f, u::Number, p,
138+
function jacobian_caches(alg::AbstractNonlinearSolveAlgorithm, f::F, u::Number, p,
139139
::Val{false}; linsolve_with_JᵀJ::Val{needsJᵀJ} = Val(false),
140-
kwargs...) where {needsJᵀJ}
140+
kwargs...) where {needsJᵀJ, F}
141141
# NOTE: Scalar `u` assumes scalar output from `f`
142142
uf = JacobianWrapper{false}(f, p)
143143
needsJᵀJ && return uf, nothing, u, nothing, nothing, u, u, u

0 commit comments

Comments
 (0)