queryverse / queryverse/IterableTables.jl
Forcing the most specialized iterator
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 79
- Forks
- 9
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 2
Description
For the DifferentialEquations.jl iterator, it seems that
using OrdinaryDiffEq
f_2dlinear = (du,u,p,t) -> du.=1.01u
prob = ODEProblem(f_2dlinear,rand(2,2),(0.0,1.0))
sol1 =solve(prob,Tsit5())
using IterableTables, DataFrames
df = DataFrame(sol1)
works, but
using OrdinaryDiffEq
f_2dlinear = (du,u,p,t) -> du.=1.01u
prob = ODEProblem(f_2dlinear,rand(2),(0.0,1.0))
sol1 =solve(prob,Tsit5())
using IterableTables, DataFrames
df = DataFrame(sol1)
doesn't go through the iterator in DiffEqBase, but instead uses a generic one for a matrix (since the solution is a VectorOfArray{Vector} and is thus 2 dimensional, while the first case is 3 dimensional). This seems odd because I would've assumed it would pick the more specialized iterator that's only for DESolution, and I'm not sure where the dispatch logic on this is taking place.
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
Reproduce both DataFrame(sol1) examples and compare the iterator selected for the 2D and 3D solutions. Trace the DiffEqBase DESolution iterator and the generic matrix iterator to locate the dispatch decision; done means the cause of the differing selection is identified and the intended specialized path is verified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- data
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100