As far as I have measured it sub in 0.4 is still not cheap, as it provides the 
flexibility to deal with all kinds of strides and offsets, and the view object 
itself thus has a certain size. See 
https://github.com/rened/FunctionalData.jl#efficiency for a simple analysis, 
where the speed is mostly dominated by the speed of the "sub-view" mechanism.

To get faster views which require strides etc you can try 
https://github.com/JuliaLang/ArrayViews.jl 

What do you mean by semi-dim agnostic? In case you only need indexing along the 
last dimension (like a[:,:,i] and a[:,:,:,i]) you can use
  https://github.com/rened/FunctionalData.jl#efficient-views-details 
which uses normal DenseArrays and simple pointer updates internally. It can 
also update a view in-place, by just incrementing the pointer.



Am 17.04.2015 um 21:48 schrieb Peter Brady <[email protected]>:

> Inorder to write some differencing algorithms in a semi-dimensional agnostic 
> manner the code I've written makes heavy use of subarrays which turn out to 
> be rather costly. I've noticed some posts on the cost of subarrays here and 
> that things will be better in 0.4.  Can someone comment on how much better?  
> Would subarray (or anything like it) be on par with simply passing an offset 
> and stride (constant) and computing the index myself? I'm currently using the 
> 0.3 release branch.

Reply via email to