@@ -42,6 +42,7 @@ function set_cacheval(cache::LinearCache,alg)
42
42
@set! cache. cacheval = alg
43
43
@set! cache. isfresh = false
44
44
end
45
+ return cache
45
46
end
46
47
47
48
function SciMLBase. init (prob:: LinearProblem , alg; kwargs... )
@@ -71,7 +72,7 @@ LUFactorization() = LUFactorization(Val(true))
71
72
72
73
function SciMLBase. solve (cache:: LinearCache , alg:: LUFactorization )
73
74
cache. A isa Union{AbstractMatrix, AbstractDiffEqOperator} || error (" LU is not defined for $(typeof (prob. A)) " )
74
- set_cacheval (cache,lu! (cache. A, alg. pivot))
75
+ cache = set_cacheval (cache,lu! (cache. A, alg. pivot))
75
76
ldiv! (cache. cacheval, cache. b)
76
77
end
77
78
@@ -83,7 +84,7 @@ QRFactorization() = QRFactorization(Val(false), 16)
83
84
84
85
function SciMLBase. solve (cache:: LinearCache , alg:: QRFactorization )
85
86
cache. A isa Union{AbstractMatrix, AbstractDiffEqOperator} || error (" QR is not defined for $(typeof (prob. A)) " )
86
- set_cacheval (cache,qr! (cache. A. A, alg. pivot; blocksize= alg. blocksize))
87
+ cache = set_cacheval (cache,qr! (cache. A. A, alg. pivot; blocksize= alg. blocksize))
87
88
ldiv! (cache. cacheval, cache. b)
88
89
end
89
90
@@ -95,7 +96,7 @@ SVDFactorization() = SVDFactorization(false, LinearAlgebra.DivideAndConquer())
95
96
96
97
function SciMLBase. solve (cache:: LinearCache , alg:: SVDFactorization )
97
98
cache. A isa Union{AbstractMatrix, AbstractDiffEqOperator} || error (" SVD is not defined for $(typeof (prob. A)) " )
98
- set_cacheval (cache,svd! (cache. A; full= alg. full, alg= alg. alg))
99
+ cache = set_cacheval (cache,svd! (cache. A; full= alg. full, alg= alg. alg))
99
100
ldiv! (cache. cacheval, cache. b)
100
101
end
101
102
0 commit comments