JuliaArrays / JuliaArrays/FixedSizeArrays.jl
ensure `FixedSizeArray` is performant with LinearSolve.jl
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 99
- Forks
- 8
- PR merge metrics
- No merged PRs in 30d
Description
TODO for once FixedSizeArrays.jl gets registered: ensure performance with LinearSolve.jl.
I suppose LinearSolve would ideally treat FixedSizeArray like it treats Array. An example where this is not so:
julia> using LinearSolve, FixedSizeArrays
julia> let A = FixedSizeArrayDefault{Float32}
LinearSolve.defaultalg(A(undef, 3, 3), A(undef, 3))
end
LinearSolve.DefaultLinearSolver(LinearSolve.DefaultAlgorithmChoice.KrylovJL_GMRES)
julia> let A = Array{Float32}
LinearSolve.defaultalg(A(undef, 3, 3), A(undef, 3))
end
LinearSolve.DefaultLinearSolver(LinearSolve.DefaultAlgorithmChoice.GenericLUFactorization)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the LinearSolve.defaultalg examples in the issue, comparing FixedSizeArrayDefault{Float32} and Array inputs. Trace why the FixedSizeArray selects KrylovJL_GMRES instead of GenericLUFactorization; done means its default solver choice is appropriately performant and matches the intended Array behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- performance
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100