StaticArrays v0.4.0
This is a rewrite of StaticArrays to conform with Julia's v0.6 compiler. Along with this rewrite comes the following changes:
Improvements:
- Full multidimensional APL indexing should now be implemented.
- Similarly,
broadcast
,broadcast!
,map
andmap!
now support arbitrary many static array inputs. - Universal use of the
Size
trait for dispatch - A
Length
trait and related pure functions - Reorganized files a little, tried to upgrade most code to the new v0.6 syntax and be more consistent with formatting and expression munging.
- Started some work on static ranges - the eventual goal here is to have better literal syntax and upgrade from talking about sizes to talking about indices, so we can have static arrays with index ranges other than 1:n. (However, this wasn't exported.)
Breaking change:
similar_type
defaults toSVector
, etc - it does not preserve immutability. This helps e.g. with things likem[i, SVector(1,2,3)]
wherem::Matrix
, and should generally be beneficial for speed.
Regression:
- Optimized methods for mixed static array - standard array operations like
SMatrix * Vector
have been removed. We can add these back in, if they are popular, but until we have inlined non-isbits immutables, we shouldn't do the simple thing here and wrap them in aSizedArray
(well, we could, but it might cost more to allocate a pointer to the heap + gc, than to perform the actual operation).