Skip to content

Commit a5c2176

Browse files
Revert ODEFunction convenience constructors to FullSpecialize
Only reverts ODEFunction, SplitFunction, and DynamicalODEFunction back to FullSpecialize. Other function types (NonlinearFunction, SDEFunction, DiscreteFunction, etc.) keep DEFAULT_SPECIALIZATION from #1298. The ODEFunction change exposed multiple issues in OrdinaryDiffEq.jl: - BigFloat tableau c promotes t past FunctionWrapper signatures - GradientTracer types not in wrapper signatures (AutoSparse) - MatrixOperator jac_prototype causes promote_op → Union{} - Hard DAE numerical accuracy regression Deferring ODEFunction AutoSpecialize default to v4. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 30b1106 commit a5c2176

2 files changed

Lines changed: 5 additions & 5 deletions

File tree

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "SciMLBase"
22
uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
3-
version = "2.153.0"
3+
version = "2.153.1"
44
authors = ["Chris Rackauckas <accounts@chrisrackauckas.com> and contributors"]
55

66
[deps]

src/scimlfunctions.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2896,10 +2896,10 @@ function ODEFunction{iip, specialize}(
28962896
end
28972897

28982898
function ODEFunction{iip}(f; kwargs...) where {iip}
2899-
return ODEFunction{iip, DEFAULT_SPECIALIZATION}(f; kwargs...)
2899+
return ODEFunction{iip, FullSpecialize}(f; kwargs...)
29002900
end
29012901
ODEFunction{iip}(f::ODEFunction; kwargs...) where {iip} = f
2902-
ODEFunction(f; kwargs...) = ODEFunction{isinplace(f, 4), DEFAULT_SPECIALIZATION}(f; kwargs...)
2902+
ODEFunction(f; kwargs...) = ODEFunction{isinplace(f, 4), FullSpecialize}(f; kwargs...)
29032903
ODEFunction(f::ODEFunction; kwargs...) = f
29042904

29052905
function unwrapped_f(f::ODEFunction, newf = unwrapped_f(f.f))
@@ -3206,7 +3206,7 @@ end
32063206

32073207
SplitFunction(f1, f2; kwargs...) = SplitFunction{isinplace(f2, 4)}(f1, f2; kwargs...)
32083208
function SplitFunction{iip}(f1, f2; kwargs...) where {iip}
3209-
return SplitFunction{iip, DEFAULT_SPECIALIZATION}(
3209+
return SplitFunction{iip, FullSpecialize}(
32103210
ODEFunction(f1), ODEFunction{iip}(f2);
32113211
kwargs...
32123212
)
@@ -3313,7 +3313,7 @@ function DynamicalODEFunction(f1, f2 = nothing; kwargs...)
33133313
return DynamicalODEFunction{isinplace(f1, 5)}(f1, f2; kwargs...)
33143314
end
33153315
function DynamicalODEFunction{iip}(f1, f2; kwargs...) where {iip}
3316-
return DynamicalODEFunction{iip, DEFAULT_SPECIALIZATION}(
3316+
return DynamicalODEFunction{iip, FullSpecialize}(
33173317
ODEFunction{iip}(f1),
33183318
ODEFunction{iip}(f2); kwargs...
33193319
)

0 commit comments

Comments
 (0)