I threw together a first draft of the concept I'm looking for: 
https://github.com/tbreloff/Blox.jl.  I only implemented the 1D case so far 
as I'm just playing around to figure out what I want the interface to look 
like.  This is very similar to ChainedVectors in the 1D case I think.

I plan on adding "views" to this as well, which will probably just check to 
see if the indices are contained within a sub-array to return an 
ArrayViews::view, otherwise a light wrapper around a "BlockView"

Comments welcome!

Matt:  I still need to review your gist a little more closely... thanks for 
that!

On Monday, July 6, 2015 at 1:36:00 PM UTC-4, Scott Jones wrote:
>
> That also sounds a lot like RopeStrings, although like the ChainedVectors, 
> it doesn't do multi-dimensional arrays, just vectors (strings).
>
> On Friday, July 3, 2015 at 4:06:31 PM UTC-4, Tom Breloff wrote:
>>
>> I'm interested in being able to do zero-copy concatenation of 
>> AbstractArrays, with something similar to ArrayViews, but in reverse:
>>
>> x = rand(4,2)
>> y = rand(4,2)
>> z = hcatview(x,y)  # "view" that is able to index into hcat(x,y) without 
>> creating the temporary matrix
>> x[1,1] = 10.0
>> @assert z[1,1] == x[1,1]
>>
>> Does this exist already somewhere?  If I was to build it, should I submit 
>> a PR to somewhere (ArrayViews?) or start a new package?
>>
>> One of many uses is to generate a large block matrix, potentially 
>> composed of both dense and sparse matrices.  Bonus points if I can get a 
>> ContiguousView when "view(z, 1:3, 4:5)" refers to a range that is totally 
>> encapsulated by a dense child matrix.
>>
>

Reply via email to