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

Attention: Patch coverage is 19.35484% with 25 lines in your changes missing coverage. Please review.

Project coverage is 76.00%. Comparing base (3c87082) to head (207bedf).
Report is 217 commits behind head on master.

Files with missing lines Patch % Lines
src/interlace.jl 0.00% 23 Missing ⚠️
src/lazybroadcasting.jl 0.00% 1 Missing ⚠️
src/lazyconcat.jl 85.71% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master      #41      +/-   ##
==========================================
- Coverage   77.60%   76.00%   -1.60%     
==========================================
  Files          14       15       +1     
  Lines        1143     1167      +24     
==========================================
  Hits          887      887              
- Misses        256      280      +24     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@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