Skip to content

tbeason/EnvelopedArrays.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EnvelopedArrays

Build Status Build Status CodeCov

I built this because I was doing vcat(::Number,::AbstractArray) an insane amount of times in my code. That operation requires a copy of the data, this package sidesteps that unnecessary allocation.

In terms of usability, in the example below x_env should match x_vcat in behavior.

a = rand(5,5)
x_vcat = vcat(0.0,a)
x_env = EnvelopedArray(0.0,a)

EnvelopedArrays are immutable, but creating a new instance is quick. So, if you wanted to change the parent array in x_env (from above) from a to a2 , you can just do x_env = EnvelopedArray(0.0,a2). Doing it this way just creates a reference, there is no copying of the underlying array.

Thanks

Thanks to the helpful people on Julia Slack for answering my questions. Additional feedback or suggested improvements are welcome!