All Versions
Latest Version
Avg Release Cycle
61 days
Latest Release

Changelog History
Page 2

  • v0.25.2 Changes

    โž• Added

    • A convert-glam cargo feature to enable implementations of From traits to convert between glam types and nalgebra types.
    • A convert-glam-unchecked cargo feature to enable some extra glam/nalgebra conversions that may lead to unexpected results if used improperly. For example, this enables the conversion from a glam::Mat4 to a na::Isometry3. This conversion will be cheap (without any check) but willlead to unexpected results if the glam matrix contains non-isometric components (like scaling for example).
    • A cast method has been added to most types. This can be used to change the type of the components of a given entity. Example: vector.cast::<f32>().
  • v0.25.1 Changes

    ๐Ÿš€ This release replaces the version 0.25.0 which has been yanked. The 0.25.0 version โž• added significant complication to build nalgebra targeting a #[no-std] platform ๐Ÿ‘ not supported by rand.

    0๏ธโƒฃ The rand dependency is now optional (and disabled by default). You may enable it with:

    • The rand-no-std cargo feature when targeting a #[no-std] environment.
    • The rand cargo feature when targeting a std environment.
  • v0.25.0 Changes

    โšก๏ธ This updates all the dependencies of nalgebra to their latest version, including:

    • rand 0.8
    • โœ… proptest 1.0
    • simba 0.4

    ๐Ÿ†• New crate: nalgebra-sparse

    ๐Ÿš€ Alongside this release of nalgebra, we are releasing nalgebra-sparse: a crate dedicated to sparse matrix ๐Ÿ“œ computation with nalgebra. The sparse module of nalgebraitself still exists for backward compatibility, ๐Ÿ—„ but it will be deprecated soon in favor of the nalgebra-sparse crate.

    โž• Added

    • โž• Add UnitDualQuaternion, a dual-quaternion with unit magnitude which can be used as an isometry transformation.
    • โž• Add UDU::new() and matrix.udu() to compute the UDU factorization of a matrix.
    • Add ColPivQR::new() and matrix.col_piv_qr() to compute the QR decomposition with column pivoting of a matrix.
    • Add from_basis_unchecked to all the rotation types. This builds a rotation from a set of basis vectors (representing the columns of the corresponding rotation matrix).
    • โž• Add Matrix::cap_magnitude to cap the magnitude of a vector.
    • Add UnitQuaternion::append_axisangle_linearized to approximately append a rotation represented as an axis-angle to a rotation represented as an unit quaternion.
    • Mark the iterators on matrix components as DoubleEndedIter.
    • Re-export simba::simd::SimdValue at the root of the nalgebra crate.
  • v0.24.0 Changes

    โž• Added

    • The DualQuaternion type. It is still work-in-progress but the basics are here: creation from its real and dual part, multiplication of two dual quaternions, and normalization.

    โœ‚ Removed

    • There is no blanket impl<T> PartialEq for Unit<T> any more. Instead, it is implemented specifically for UnitComplex, UnitQuaternion and Unit<Vector>.
  • v0.23.2 Changes

    ๐Ÿ“š In this release, we improved the documentation of some of the geometric types by applying changes similar to what we did in the version 0.23.1 for matrices.

    โž• Added

    • The Isometry::inv_mul method which is a more efficient way of doing isometry1.inverse() * isometry2.
  • v0.23.1 Changes

    ๐Ÿ“š In this release we improved the documentation of the matrix and vector types by:

    • Grouping impl bocks logically, adding a title comment to these impl blocks.
    • ๐Ÿ“š Reference these impl blocks docs at the top of the documentation page for Matrix.
    • โฌ‡๏ธ Reduce the depth of type aliasing. Now all vector and matrix types are aliases of Matrix directly (instead of being aliases for other aliases).
  • v0.23.0 Changes

    โž• Added

    • The .inverse_transform_unit_vector(v) was added to Rotation2/3, Isometry2/3, UnitQuaternion, and UnitComplex. It applies the corresponding rotation to a unit vector Unit<Vector2/3>.
    • The and Point.apply(f) to apply a function to each component of the point, similarly to and Vector.apply(f).
    • The Quaternion::from([N; 4]) conversion to build a quaternion from an array of four elements.
    • The Isometry::from(Translation) conversion to build an isometry from a translation.
    • The Vector::ith_axis(i) which build a unit vector, e.g., Unit<Vector3<f32>> with its i-th component set to 1.0, and the others set to zero.
    • The Isometry.lerp_slerp and Isometry.try_lerp_slerp methods to interpolate between two isometries using linear interpolation for the translational part, and spherical interpolation for the rotational part.
    • The Rotation2.slerp, Rotation3.slerp, and UnitQuaternion.slerp method for spherical interpolation.
  • v0.22.0 Changes

    ๐Ÿš€ In this release, we are using the new version 0.2 of simba. One major change of that version is that the ๐Ÿ— use of libm is now opt-in when building targetting no-std environment. If you are using floating-point operations with nalgebra in a no-std environment, you will need to enable the new libm feature of nalgebra for your code to compile again.

    โž• Added

    • The libm feature that enables libm when building for no-std environment.
    • The libm-force feature that enables libm even when building for a not no-std environment.
    • Cholesky::new_unchecked which build a Cholesky decomposition without checking that its input is positive-definite. It can be use with SIMD types.
    • The Default trait is now implemented for matrices, and quaternions. They are all filled with zeros, except for UnitQuaternion which is initialized with the identity.
    • Matrix exponential matrix.exp().
    • The Vector::ith(i, x) that builds a vector filled with zeros except for the i-th component set to x.
  • v0.21.1

    June 07, 2020
  • v0.21.0 Changes

    April 05, 2020

    In this release, we are no longer relying on traits from the alga crate for our generic code. Instead, we use traits from the new simba crate which are both simpler, and allow for significant optimizations like AoSoA SIMD.

    Refer to the monthly dimforge blogpost for details about this switch and its benefits.

    โž• Added

    • It is now possible to use SIMD types like simba::f32x4 as scalar types for nalgebra's matrices and geometric types. ### Modified
    • Use of traits like alga::general::{RealField, ComplexField} have now been replaced by simba::scalar::{RealField, ComplexField}.
    • The implementation of traits from the alga crate (and well as the dependency to alga_) are now omitted unless the alga cargo feature is activated. ### โœ‚ Removed
    • The Neg unary operator is no longer implemented for UnitComplex and UnitQuaternion. This caused hard-to-track errors when we mistakenly write, e.g., -q * v instead of -(q * v).
    • The na::convert_unchecked is no longer marked as unsafe.