|
36 | 36 |
|
37 | 37 | getops(L) = () |
38 | 38 |
|
39 | | -need_self_cache(L) = false |
40 | | -need_self_cache(::Union{ |
41 | | - # LinearAlgebra |
42 | | - AbstractMatrix, |
43 | | - UniformScaling, |
44 | | - Factorization, |
45 | | - |
46 | | - # Base |
47 | | - Number, |
48 | | - |
49 | | - } |
50 | | - ) = false |
51 | | - |
52 | 39 | function iscached(L::AbstractSciMLOperator) |
53 | | - #if !need_self_cache(L) |
54 | | - # return false |
55 | | - #end |
56 | 40 |
|
57 | 41 | has_cache = hasfield(typeof(L), :cache) # TODO - confirm this is static |
58 | 42 | isset = has_cache ? L.cache !== nothing : true |
@@ -82,22 +66,22 @@ arguments: |
82 | 66 | in :: AbstractVecOrMat input prototype to L |
83 | 67 | out :: (optional) AbstractVecOrMat output prototype to L |
84 | 68 | """ |
85 | | -cache_operator |
| 69 | +function cache_operator end |
86 | 70 |
|
87 | 71 | cache_operator(L, u) = L |
88 | | -cache_operatro(L, u, v) = L |
89 | | -cache_self(L::AbstractSciMLOperator, uv::AbstractVecOrMat...) = L |
90 | | -cache_internals(L::AbstractSciMLOperator, uv::AbstractVecOrMat...) = L |
| 72 | +cache_operator(L, u, v) = L |
| 73 | +cache_self(L::AbstractSciMLOperator, ::AbstractVecOrMat...) = L |
| 74 | +cache_internals(L::AbstractSciMLOperator, ::AbstractVecOrMat...) = L |
| 75 | + |
| 76 | +function cache_operator(L::AbstractSciMLOperator, u::AbstractVecOrMat, v::AbstractVecOrMat) |
91 | 77 |
|
92 | | -function cache_operator(L::AbstractSciMLOperator, |
93 | | - u::AbstractVecOrMat, |
94 | | - v::AbstractVecOrMat) |
95 | 78 | L = cache_self(L, u, v) |
96 | 79 | L = cache_internals(L, u, v) |
97 | 80 | L |
98 | 81 | end |
99 | 82 |
|
100 | 83 | function cache_operator(L::AbstractSciMLOperator, u::AbstractVecOrMat) |
| 84 | + |
101 | 85 | L = cache_self(L, u) |
102 | 86 | L = cache_internals(L, u) |
103 | 87 | L |
|
0 commit comments