Skip to content

Commit c8988ca

Browse files
Add RecursiveFactorization options
Requires JuliaLinearAlgebra/RecursiveFactorization.jl#39
1 parent 3a1c60e commit c8988ca

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ IterativeSolvers = "0.9.2"
2727
KLU = "0.2.3"
2828
Krylov = "0.7.9"
2929
KrylovKit = "0.5"
30-
RecursiveFactorization = "0.2"
30+
RecursiveFactorization = "0.2.8"
3131
Reexport = "1"
3232
Requires = "1"
3333
SciMLBase = "1.25"

src/factorization.jl

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,12 @@ end
224224

225225
## RFLUFactorization
226226

227-
RFLUFactorization() = GenericFactorization(;fact_alg=RecursiveFactorization.lu!)
227+
struct RFWrapper{P,T}
228+
RFWrapper(::Val{P},::Val{T}) where {P,T} = new{P,T}()
229+
end
230+
(::RFWrapper{P,T})(A) where {P,T} = RecursiveFactorization.lu!(A,val(P),val(T))
231+
232+
RFLUFactorization(;pivot = Val(true), thread = Val(true)) = GenericFactorization(;fact_alg=RFWrapper(pivot,thread))
233+
228234
init_cacheval(alg::GenericFactorization{typeof(RecursiveFactorization.lu!)}, A, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterface.lu_instance(convert(AbstractMatrix,A))
229235
init_cacheval(alg::GenericFactorization{typeof(RecursiveFactorization.lu!)}, A::StridedMatrix{<:LinearAlgebra.BlasFloat}, b, u, Pl, Pr, maxiters, abstol, reltol, verbose) = ArrayInterface.lu_instance(convert(AbstractMatrix,A))

0 commit comments

Comments
 (0)