Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Interlace #41

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open

Add Interlace #41

wants to merge 8 commits into from

Conversation

dlfivefifty
Copy link
Member

No description provided.

@codecov
Copy link

codecov bot commented Nov 24, 2019

Codecov Report

Merging #41 into master will decrease coverage by 1.59%.
The diff coverage is 19.35%.

Impacted file tree graph

@@           Coverage Diff           @@
##           master    #41     +/-   ##
=======================================
- Coverage    77.6%    76%   -1.6%     
=======================================
  Files          14     15      +1     
  Lines        1143   1167     +24     
=======================================
  Hits          887    887             
- Misses        256    280     +24
Impacted Files Coverage Δ
src/LazyArrays.jl 100% <ø> (ø) ⬆️
src/lazybroadcasting.jl 83.54% <0%> (-1.08%) ⬇️
src/interlace.jl 0% <0%> (ø)
src/lazyconcat.jl 83.72% <85.71%> (ø) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 3c87082...207bedf. Read the comment docs.

@DanielVandH
Copy link
Contributor

Was there any particular reason this stalled if you remember @dlfivefifty? I can see a version of this for infinite arrays here

https://github.com/JuliaApproximation/AlgebraicCurveOrthogonalPolynomials.jl/blob/5bf062d232194069b4d41a35a35b86950c3ed533/src/twoband.jl#L83-L93

but a LazyInterlace could be more broadly useful here, right?

@dlfivefifty
Copy link
Member Author

The whole interlace business is just in a state of mess because I wasn't entirely sure the design.

The first question is: is there a need for Interlace? Here are two synonyms:

julia> a = [1,2,3]; b = [4,5,6]; LazyBandedMatrices.BlockVec(Hcat(a,b)')
blockvec(vcat(1×3 adjoint(::Vector{Int64}) with eltype Int64, 1×3 adjoint(::Vector{Int64}) with eltype Int64)) with indices BlockedOneTo(2:2:6):
 1
 42
 53
 6

julia> BlockBroadcastArray(vcat, unitblocks(a), unitblocks(b))
3-blocked 6-element BlockBroadcastArray{Int64, 1, typeof(vcat), Tuple{BlockedVector{Int64, Vector{Int64}, Tuple{BlockedOneTo{Int64, Base.OneTo{Int64}}}}, BlockedVector{Int64, Vector{Int64}, Tuple{BlockedOneTo{Int64, Base.OneTo{Int64}}}}}}:
 1
 42
 53
 6

The second question: how to unify the different version of concatentation in ContinuumArrays.jl? See:

  1. https://github.com/JuliaApproximation/ContinuumArrays.jl/blob/master/src/bases/basisconcat.jl
  2. https://github.com/JuliaApproximation/ClassicalOrthogonalPolynomials.jl/blob/main/src/interlace.jl

The types defined in the latter are more thoroughly developed but I don't remember why its in ClassicalOrthogonalPolynomials.jl. It should probably be moved to ContinuumArrays.jl and unified with the types in basisconcat.jl.

We can probably discuss this in more detail at the next meeting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants