JuliaDynamics / JuliaDynamics/RecurrenceAnalysis.jl
Source code clarity of `recurrence_matrix`
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 50
- Forks
- 16
- PR merge metrics
- No merged PRs in 30d
Description
At the moment the source code of recurrence_matrix, which is where the central computations of a recurrence matrix take place, is full of duplication. There version complexity scales as 2 x 2 x 2 = 8, with a multiplicity of 2 for (recurrences vs cross-recurence), (parallel vs non parallel), (dataset vs vector).
I do not believe that having 8 different methods is necessary. In fact, it may even be that we could do everything with 1 or 2 methods, by defining smaller helper functions.
In any case, a multiplicity of 8 is certainly not necessary and the source code can be simplified to remove duplication and thus make long term maintanance also easier.
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 at the recurrence_matrix implementation and map the eight variants described in the issue: recurrences versus cross-recurrence, parallel versus non-parallel, and dataset versus vector. Review how these methods duplicate their central computations; the work is done when the supported variants retain their behavior with substantially less duplicated source code.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- data
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100