31
31
end
32
32
33
33
# LineSearches.jl doesn't have a supertype so default to that
34
- init_linesearch_cache (_, ls, f, u, p, fu, iip) = LineSearchesJLCache (ls, f, u, p, fu, iip)
34
+ function init_linesearch_cache (_, ls, f:: F , u, p, fu, iip) where {F <: Function }
35
+ return LineSearchesJLCache (ls, f, u, p, fu, iip)
36
+ end
35
37
36
38
# Wrapper over LineSearches.jl algorithms
37
39
@concrete mutable struct LineSearchesJLCache
@@ -43,7 +45,8 @@ init_linesearch_cache(_, ls, f, u, p, fu, iip) = LineSearchesJLCache(ls, f, u, p
43
45
ls
44
46
end
45
47
46
- function LineSearchesJLCache (ls:: LineSearch , f, u:: Number , p, _, :: Val{false} )
48
+ function LineSearchesJLCache (ls:: LineSearch , f:: F , u:: Number , p, _,
49
+ :: Val{false} ) where {F <: Function }
47
50
eval_f (u, du, α) = eval_f (u - α * du)
48
51
eval_f (u) = f (u, p)
49
52
@@ -84,7 +87,8 @@ function LineSearchesJLCache(ls::LineSearch, f, u::Number, p, _, ::Val{false})
84
87
return LineSearchesJLCache (eval_f, ϕ, dϕ, ϕdϕ, convert (eltype (u), ls. α), ls)
85
88
end
86
89
87
- function LineSearchesJLCache (ls:: LineSearch , f, u, p, fu1, IIP:: Val{iip} ) where {iip}
90
+ function LineSearchesJLCache (ls:: LineSearch , f:: F , u, p, fu1,
91
+ IIP:: Val{iip} ) where {iip, F <: Function }
88
92
fu = iip ? deepcopy (fu1) : nothing
89
93
u_ = _mutable_zero (u)
90
94
200
204
α
201
205
end
202
206
203
- function init_linesearch_cache (alg:: LiFukushimaLineSearch , ls:: LineSearch , f, _u, p, _fu,
204
- :: Val{iip} ) where {iip}
207
+ function init_linesearch_cache (alg:: LiFukushimaLineSearch , ls:: LineSearch , f:: F , _u, p, _fu,
208
+ :: Val{iip} ) where {iip, F <: Function }
205
209
fu = iip ? deepcopy (_fu) : nothing
206
210
u = iip ? deepcopy (_u) : nothing
207
211
return LiFukushimaLineSearchCache {iip} (f, p, u, fu, alg, ls. α)
0 commit comments