|
1 | | -package_name(b::AbstractADType) = package_name(typeof(b)) |
| 1 | +required_packages(b::AbstractADType) = required_packages(typeof(b)) |
2 | 2 |
|
3 | | -function package_name(::Type{B}) where {B<:AbstractADType} |
| 3 | +function required_packages(::Type{B}) where {B<:AbstractADType} |
4 | 4 | s = string(B) |
5 | 5 | s = chopprefix(s, "ADTypes.") |
6 | 6 | s = chopprefix(s, "Auto") |
7 | 7 | k = findfirst('{', s) |
8 | 8 | if isnothing(k) |
9 | | - return s |
| 9 | + return [s] |
10 | 10 | else |
11 | | - return s[begin:(k - 1)] |
| 11 | + return [s[begin:(k - 1)]] |
12 | 12 | end |
13 | 13 | end |
14 | 14 |
|
15 | | -function package_name(::Type{SecondOrder{O,I}}) where {O,I} |
16 | | - p1 = package_name(O) |
17 | | - p2 = package_name(I) |
18 | | - return p1 == p2 ? p1 : "$p1, $p2" |
| 15 | +function required_packages(::Type{SecondOrder{O,I}}) where {O,I} |
| 16 | + p1 = required_packages(O) |
| 17 | + p2 = required_packages(I) |
| 18 | + return unique(vcat(p1, p2)) |
19 | 19 | end |
20 | 20 |
|
21 | | -package_name(::Type{<:AutoSparse{D}}) where {D} = package_name(D) |
| 21 | +function required_packages(::Type{MixedMode{F,R}}) where {F,R} |
| 22 | + p1 = required_packages(F) |
| 23 | + p2 = required_packages(R) |
| 24 | + return unique(vcat(p1, p2)) |
| 25 | +end |
| 26 | + |
| 27 | +function required_packages(::Type{<:AutoSparse{D}}) where {D} |
| 28 | + return unique(vcat(required_packages(D), "SparseMatrixColorings")) |
| 29 | +end |
22 | 30 |
|
23 | 31 | function document_preparation(operator_name::AbstractString; same_point=false) |
24 | 32 | if same_point |
|
0 commit comments