rulinalg v0.4.0 Release Notes

Release Date: 2016-12-27 // over 7 years ago
  • ๐Ÿš€ This release includes mostly quality of life changes for users of rulinalg. We do some work to conform more to community standards with naming, for example iter_rows becoming row_iter. Additionally several Matrix functions now consume self ๐Ÿ‘ฏ where before they took a reference and immediately cloned self.

    Another noticable change is the addition of new Row and Column types. These types are returned by functions which access single rows or columns in a matrix. With these new types we aim to make it easy for users to do matrix operations on single ๐ŸŽ rows and columns while maintaining performance where necessary.

    ๐Ÿš€ This release also welcomes an overhaul of the Metric trait. This trait didn't really make sense and only allowed computation of the euclidean norm. We have created new Norm and Metric traits for both Vector and matrix types (we would like a single pair of traits but this is not possible without specialization). These new traits allow users to write code which is generic over norms and specify their own norms. We also provide Metric implementations for all Norm implementors by computing the norm of the difference between the objects.

    ๐Ÿš€ The full release notes are below.

    ๐Ÿ†• New Contributors

    ๐Ÿ’ฅ Breaking Changes

    • The reslice function for MatrixSlice and MatrixSliceMut has been depreciated.
    • Rename iterator functions to *_iter(_mut). Affected functions are: iter_diag, iter_diag_mut, iter_rows, iter_rows_mut.
    • The BaseMatrix diag function now returns an iterator.
    • โœ‚ Removed the Metric trait and all implementations.
    • Some functions now consume self instead of cloning internally: eigenvalues, eigendecomp, lup_decomp, solve, inverse and det.
    • The get_row no longer returns a &[T]. Instead it returns the new Row type.
    • Row iterator no longer has a &[T] item. Instead if uses the new Row type.
    • ๐Ÿšš Moved the BaseMatrix and BaseMatrixMut traits to a new matrix/base module.

    ๐Ÿ”‹ Features

    • Implemented FromIterator for Vector.
    • Implemented from_fn for Vector.
    • Implemented get_unchecked for Vector.
    • Implemented try_into function using num's NumCast for Matrix.
    • โž• Added new traits to replace Metric; MatrixNorm and VectorNorm. These come with MatrixMetric and VectorMetric traits too.
    • โž• Added new Euclidean and Lp norms.
    • The get_row functions now return the new Row type.
    • โž• Added a new get_col function which returns the new Column type.
    • The row_iter function uses the new Row type as the iterator Item.

    ๐Ÿ› Bug Fixes

    • ๐Ÿ›  Fixed a bug in the ULP comparator where only exact matches were allowed.

    Minor Changes

    • The swap_rows and swap_cols functions are now no-ops if given two identical indices.
    • Splitting out the slice module for developer QOL.