@@ -7,31 +7,45 @@ using ForwardDiff: Dual, Partials
7
7
using SciMLBase
8
8
using RecursiveArrayTools
9
9
10
- const DualLinearProblem = LinearProblem{
10
+
11
+ # Define type for non-nested dual numbers
12
+ const SingleDual{T, V, P} = Dual{T, V, P} where {T, V <: Float64 , P}
13
+
14
+ # Define type for nested dual numbers
15
+ const NestedDual{T, V, P} = Dual{T, V, P} where {T, V <: Dual , P}
16
+
17
+ const SingleDualLinearProblem = LinearProblem{
18
+ <: Union{Number, <:AbstractArray, Nothing} , iip,
19
+ <: Union{<:SingleDual, <:AbstractArray{<:SingleDual}} ,
20
+ <: Union{<:SingleDual, <:AbstractArray{<:SingleDual}} ,
21
+ <: Any
22
+ } where {iip}
23
+
24
+ const NestedDualLinearProblem = LinearProblem{
11
25
<: Union{Number, <:AbstractArray, Nothing} , iip,
12
- <: Union{<:Dual{T, V, P}, <:AbstractArray{<:Dual{T, V, P} }} ,
13
- <: Union{<:Dual{T, V, P}, <:AbstractArray{<:Dual{T, V, P} }} ,
26
+ <: Union{<:NestedDual, <:AbstractArray{<:NestedDual }} ,
27
+ <: Union{<:NestedDual, <:AbstractArray{<:NestedDual }} ,
14
28
<: Any
15
- } where {iip, T, V, P }
29
+ } where {iip}
16
30
17
31
const DualALinearProblem = LinearProblem{
18
32
<: Union{Number, <:AbstractArray, Nothing} ,
19
33
iip,
20
- <: Union{<:Dual{T, V, P}, <:AbstractArray{<:Dual{T, V, P} }} ,
34
+ <: Union{<:SingleDual, <:AbstractArray{<:SingleDual }} ,
21
35
<: Union{Number, <:AbstractArray} ,
22
36
<: Any
23
- } where {iip, T, V, P }
37
+ } where {iip}
24
38
25
39
const DualBLinearProblem = LinearProblem{
26
40
<: Union{Number, <:AbstractArray, Nothing} ,
27
41
iip,
28
42
<: Union{Number, <:AbstractArray} ,
29
- <: Union{<:Dual{T, V, P}, <:AbstractArray{<:Dual{T, V, P} }} ,
43
+ <: Union{<:SingleDual, <:AbstractArray{<:SingleDual }} ,
30
44
<: Any
31
- } where {iip, T, V, P }
45
+ } where {iip}
32
46
33
47
const DualAbstractLinearProblem = Union{
34
- DualLinearProblem , DualALinearProblem, DualBLinearProblem}
48
+ SingleDualLinearProblem , DualALinearProblem, DualBLinearProblem}
35
49
36
50
LinearSolve. @concrete mutable struct DualLinearCache
37
51
linear_cache
0 commit comments