nalgebra v0.30.0 Release Notes
Release Date: 2022-01-02 // over 2 years ago-
π₯ Breaking changes
- The
Dim
trait is now marked as unsafe. - The
Matrix::pow
andMatrix::pow_mut
methods only allow positive integer exponents now. To compute negative exponents, the user is free to invert the matrix before callingpow
with the exponentβs absolute value. - β Remove the
Bounded
requirement fromRealField
. Replace it by methods returningOption<Self>
so that they can still be implemented by unbounded types (by returningNone
). - The
ComplexField
trait derives fromFromPrimitive
again. We can actually keep this because all its methods returnOption<Self>
, meaning that it could be implemented by any type.
Modified
- π Use more concise debug impls for matrices and geometric transformation types.
- 0οΈβ£ The singular values computed by the SVD are now sorted in increasing order by default. Use
SVD::new_unordered
instead to reproduce the older behavior without the sorting overhead. - The
UnitDualQuaternion::sclerp
method will no longer panic when given two equal rotations. - The
Matrix::select_rows
andMatrix::select_columns
methods no longer require the matrix components to implement the traitZero
. - The
Matrix::pow
andMatrix::pow_mut
methods will now also work with integer matrices.
β Added
- Added the conversion trait
From<Vec<T>>
and methodfrom_vec_storage
forRowDVector
. - β Added implementation of
From
andInto
for converting betweennalgebra
types and types fromglam 0.18
. These can be enabled by enabling theconvert-glam018
cargo features. - Added the methods
Matrix::product
,::row_product
,::row_product_tr
, and::column_product
to compute the product of the components, rows, or columns, of a single matrix or vector. - 0οΈβ£ The
Default
trait is now implemented for most geometric types:Point
,Isometry
,Rotation
,Similarity
,Transform
,UnitComplex
, andUnitQuaternion
. - β Added the
Scale
geometric type for representing non-uniform scaling. - Added
Cholesky::new_with_substitute
that will replace diagonal elements by a given constant wheneverCholesky
meets a non-definite-positiveness. - Re-added the conversion from a vector/matrix slice to a static array.
- β Added the
cuda
feature that enables the support of rust-cuda for usingnalgebra
features with CUDA kernels written in Rust. - β Added special-cases implementations for the 2x2 and 3x3 SVDs for better accuracy and performances.
- Added the methods
Matrix::polar
,Matrix::try_polar
, andSVD::to_polar
to compute the polar decomposition of a matrix, based on its SVD. - π
nalgebra-sparse
: provide constructors for unsorted but otherwise valid data using the CSR format. - π
nalgebra-sparse
: added reading MatrixMarked data files to a sparseCooMatrix
.
π Fixed
- π Fixed a potential unsoundness with
matrix.get(i)
andmatrix.get_mut(i)
wherei
is anusize
, andmatrix
is a matrix slice with non-default strides. - π Fixed potential unsoundness with
vector.perp
wherevector
isnβt actually a 2D vector as expected. - π Fixed linkage issue with
nalgebra-lapack
: the user ofnalgebra-lapack
no longer have to addextern crate lapack-src
to theirmain.rs
. - π Fixed the
no-std
build ofnalgebra-glm
. - π Fix the
pow
andpow_mut
functions (the result was incorrect for some exponent values).
- The