Of very worthy note is StaticArrays.jl. This package allows for small, statically sized arrays. Because their size is known at compile time all sorts of optimisations and efficiencies kick in. Linear algebra operations, for example, are customised at compile time for the specific size of your matrix or array. For me, however, the biggest win is that static arrays are isbits
, meaning these will be allocated on the stack not the heap, so these are ideal for cases where you’re working with small arrays of a known size in hot loops. And since they’re isbits
they can also be assigned as elements of much larger arrays (arrays of arrays). Finally, special mention of the FieldArray type for adding static arrays magic to your own data types.
2 Likes