You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, first of all let me say thank you for developing this excellent package. It sped up the LU factorization in my project Jadex.jl considerably. I've started to update the aforementioned project to newer dependencies and have run into an issue on Julia 1.8 and the versions of RecursiveFactorization.jl of 0.2.15 and later.
The issue comes up when using lu! without pivoting, and strides function complains that the NotIPIV type has no method. It seems that part of the issue is that the LU factorization type stores the ipiv vector not as a Vector{Int} but as NotIPIV (which is an instance of AbstractArray so I guess it works). When calling ldiv! using the LU instance, it runs into several method errors
Version information below and running latest v2.18 of RecursiveFactorization:
julia>versioninfo()
Julia Version 1.8.5
Commit 17cfb8e65ea (2023-01-0806:45 UTC)
Platform Info:
OS: macOS (x86_64-apple-darwin21.4.0)
CPU:8×Intel(R) Core(TM) i5-1038NG7 CPU @ 2.00GHz
WORD_SIZE:64
LIBM: libopenlibm
LLVM: libLLVM-13.0.1 (ORCJIT, icelake-client)
Threads:1 on 8 virtual cores
A minimum working example:
using LinearAlgebra
using RecursiveFactorization
A =rand(5,5)
a =rand(5)
b =rand(5)
Q = RecursiveFactorization.lu!(A, NoPivot())
ldiv!(a, Q, b)
I tried hacking the stride method to return (1,), but it seems that there are other functions in LinearAlgebra that complain. I'm not a hundred percent sure if the solution is appropriate, but I think that the fix could be as simple as converting the ipiv vector into a Vector{BlasInt} before constructing the LU instance at the end of lu!here. So changing:
LU(A, ipiv, info)
to LU(A, convert(Vector{BlasInt}, ipiv), info)
or probably ideally something that didn't allocate.
I've found that Julia 1.8.5 and RecursiveFactorization v0.2.14 work, although there is a deprecation warning issued that LU{T, S, typeof(ipiv)}(fatcors, ipiv, info) is the preferred constructor.
The text was updated successfully, but these errors were encountered:
Great! Thank you very much for taking a look into this. :) Do you have a guess when the next release will be? My package is currently pinned to v0.2.14.
Hi, first of all let me say thank you for developing this excellent package. It sped up the LU factorization in my project Jadex.jl considerably. I've started to update the aforementioned project to newer dependencies and have run into an issue on Julia 1.8 and the versions of
RecursiveFactorization.jl
of 0.2.15 and later.The issue comes up when using
lu!
without pivoting, andstrides
function complains that theNotIPIV
type has no method. It seems that part of the issue is that theLU
factorization type stores theipiv
vector not as aVector{Int}
but asNotIPIV
(which is an instance ofAbstractArray
so I guess it works). When callingldiv!
using theLU
instance, it runs into several method errorsVersion information below and running latest v2.18 of
RecursiveFactorization
:A minimum working example:
gives the results for
Q
, note the type signature:which results in an error when passing to
ldiv!(a, Q, b)
:I tried hacking the
stride
method to return(1,)
, but it seems that there are other functions inLinearAlgebra
that complain. I'm not a hundred percent sure if the solution is appropriate, but I think that the fix could be as simple as converting theipiv
vector into aVector{BlasInt}
before constructing theLU
instance at the end oflu!
here. So changing:LU(A, ipiv, info)
to
LU(A, convert(Vector{BlasInt}, ipiv), info)
or probably ideally something that didn't allocate.
I've found that Julia 1.8.5 and
RecursiveFactorization
v0.2.14 work, although there is a deprecation warning issued thatLU{T, S, typeof(ipiv)}(fatcors, ipiv, info)
is the preferred constructor.The text was updated successfully, but these errors were encountered: