JuliaDynamics / JuliaDynamics/RecurrenceAnalysis.jl
Specialized type for Boolean sparse arrays
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 50
- Forks
- 16
- PR merge metrics
- No merged PRs in 30d
Description
Recurrence matrices are wrappers of SparseMatrixCSC{Bool,Int}, which are useful to make some operations. However it is inefficient to create them (cf. #76), and also take more memory than what is needed (all nonzero values are true, so they don't add any information at all).
It would be useful to have a special type of sparse matrices for these cases, which only store row indices and the last index of each column - but not the values, with optimized methods. This might come in handy even for other applications, not only for recurrence analysis, so in my opinion it is worth to be in a separate package (outside JuliaDynamics).
I feel like investigating if such a package exists, and otherwise draft it. When it is working, we could use it to improve performance in this package.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Contributor guide
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 by reviewing the Boolean SparseMatrixCSC usage described here and issue #76, then investigate whether an existing Julia package provides a value-free sparse matrix type. If none exists, draft a separate package storing row indices and column endpoints, with optimized methods. Done means the package works and can be used to improve performance in RecurrenceAnalysis.jl.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- data, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100