Add vectorize method to quickly create functions to operate on matrices. Additionally, add a second vectorized (vectorize2) method that is specialized with speed-ups for our most common cases. Use it to generate our general purposed methods: add, subtract, multiply, etc.
Additionally, add a faster path in broadcast for simple cases, matrices below dimensions of 3 and broadcast of a single matrix.
Some small cleanups for performance were generally made in the algebra lib as well.
Test coverage needs updating to cover new edge cases that we now cover and to exercise both the simple broadcast path and the more general purpose broadcast path.
Add
vectorize
method to quickly create functions to operate on matrices. Additionally, add a second vectorized (vectorize2
) method that is specialized with speed-ups for our most common cases. Use it to generate our general purposed methods:add
,subtract
,multiply
, etc.Additionally, add a faster path in broadcast for simple cases, matrices below dimensions of 3 and broadcast of a single matrix.
Some small cleanups for performance were generally made in the algebra lib as well.