Skip to content

Commit e8b9c40

Browse files
committed
Release v0.30.0
1 parent c0f8530 commit e8b9c40

File tree

12 files changed

+52
-38
lines changed

12 files changed

+52
-38
lines changed

CHANGELOG.md

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,21 @@ documented here.
44

55
This project adheres to [Semantic Versioning](https://semver.org/).
66

7-
## [0.30.0]
7+
## [0.30.0] (02 Jan. 2022)
88

99
### Breaking changes
1010
- The `Dim` trait is now marked as unsafe.
11+
- The `Matrix::pow` and `Matrix::pow_mut` methods only allow positive integer exponents now. To compute negative
12+
exponents, the user is free to invert the matrix before calling `pow` with the exponent’s absolute value.
1113

1214
### Modified
1315
- Use more concise debug impls for matrices and geometric transformation types.
16+
- The singular values computed by the SVD are now sorted in increasing order by default. Use `SVD::new_unordered`
17+
instead to reproduce the older behavior without the sorting overhead.
18+
- The `UnitDualQuaternion::sclerp` method will no longer panic when given two equal rotations.
19+
- The `Matrix::select_rows` and `Matrix::select_columns` methods no longer require the matrix components to implement
20+
the trait `Zero`.
21+
- The `Matrix::pow` and `Matrix::pow_mut` methods will now also work with integer matrices.
1422

1523
### Added
1624
- Added the conversion trait `From<Vec<T>>` and method `from_vec_storage` for `RowDVector`.
@@ -21,14 +29,26 @@ This project adheres to [Semantic Versioning](https://semver.org/).
2129
- The `Default` trait is now implemented for most geometric types: `Point`, `Isometry`, `Rotation`, `Similarity`,
2230
`Transform`, `UnitComplex`, and `UnitQuaternion`.
2331
- Added the `Scale` geometric type for representing non-uniform scaling.
24-
- `nalgebra-sparse`: provide constructors for unsorted but otherwise valid data using the CSR format.
2532
- Added `Cholesky::new_with_substitute` that will replace diagonal elements by a given constant whenever `Cholesky`
2633
meets a non-definite-positiveness.
34+
- Re-added the conversion from a vector/matrix slice to a static array.
35+
- Added the `cuda` feature that enables the support of [rust-cuda](https://github.com/Rust-GPU/Rust-CUDA) for using
36+
`nalgebra` features with CUDA kernels written in Rust.
37+
- Added special-cases implementations for the 2x2 and 3x3 SVDs for better accuracy and performances.
38+
- Added the methods `Matrix::polar`, `Matrix::try_polar`, and `SVD::to_polar` to compute the polar decomposition of
39+
a matrix, based on its SVD.
40+
- `nalgebra-sparse`: provide constructors for unsorted but otherwise valid data using the CSR format.
41+
- `nalgebra-sparse`: added reading MatrixMarked data files to a sparse `CooMatrix`.
2742

2843
### Fixed
2944
- Fixed a potential unsoundness with `matrix.get(i)` and `matrix.get_mut(i)` where `i` is an `usize`, and `matrix`
3045
is a matrix slice with non-default strides.
3146
- Fixed potential unsoundness with `vector.perp` where `vector` isn’t actually a 2D vector as expected.
47+
- Fixed linkage issue with `nalgebra-lapack`: the user of `nalgebra-lapack` no longer have to add
48+
`extern crate lapack-src` to their `main.rs`.
49+
- Fixed the `no-std` build of `nalgebra-glm`.
50+
- Fix the `pow` and `pow_mut` functions (the result was incorrect for some exponent values).
51+
3252

3353
## [0.29.0]
3454
### Breaking changes

Cargo.toml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "nalgebra"
3-
version = "0.29.0"
3+
version = "0.30.0"
44
authors = [ "Sébastien Crozet <developer@crozet.re>" ]
55

66
description = "General-purpose linear algebra library with transformations and statically-sized or dynamically-sized matrices."
@@ -74,7 +74,7 @@ num-traits = { version = "0.2", default-features = false }
7474
num-complex = { version = "0.4", default-features = false }
7575
num-rational = { version = "0.4", default-features = false }
7676
approx = { version = "0.5", default-features = false }
77-
simba = { version = "0.6", default-features = false }
77+
simba = { version = "0.7", default-features = false }
7878
alga = { version = "0.9", default-features = false, optional = true }
7979
rand_distr = { version = "0.4", default-features = false, optional = true }
8080
matrixmultiply = { version = "0.3", optional = true }
@@ -134,5 +134,3 @@ lto = true
134134
# Enable certain features when building docs for docs.rs
135135
features = [ "proptest-support", "compare", "macros", "rand" ]
136136

137-
[patch.crates-io]
138-
simba = { git = "https://github.com/dimforge/simba"}

Makefile

Lines changed: 0 additions & 12 deletions
This file was deleted.

README.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,18 @@
3030

3131
-----
3232

33-
## Platinum sponsors
34-
Rapier is supported by:
33+
## Acknowledgements
34+
nalgebra is supported by our **platinum** sponsors:
3535
<p>
3636
<a href="https://embark-studios.com">
37-
<img src="https://www.embark.dev/img/logo_black.png" width="401px">
37+
<img src="https://www.embark.dev/img/logo_black.png" width="301px">
3838
</a>
3939
</p>
40+
41+
And our gold sponsors:
42+
43+
<p>
44+
<a href="https://fragcolor.com">
45+
<img src="https://dimforge.com/img/fragcolor_logo1_color_black.svg" width="151px">
46+
</a>
47+
</p>

examples/cargo/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ version = "0.0.0"
44
authors = [ "You" ]
55

66
[dependencies]
7-
nalgebra = "0.29.0"
7+
nalgebra = "0.30.0"
88

99
[[bin]]
1010
name = "example"

nalgebra-glm/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "nalgebra-glm"
3-
version = "0.15.0"
3+
version = "0.16.0"
44
authors = ["sebcrozet <developer@crozet.re>"]
55

66
description = "A computer-graphics oriented API for nalgebra, inspired by the C++ GLM library."
@@ -37,5 +37,5 @@ convert-glam018 = [ "nalgebra/glam018" ]
3737
[dependencies]
3838
num-traits = { version = "0.2", default-features = false }
3939
approx = { version = "0.5", default-features = false }
40-
simba = { version = "0.6", default-features = false }
41-
nalgebra = { path = "..", version = "0.29", default-features = false }
40+
simba = { version = "0.7", default-features = false }
41+
nalgebra = { path = "..", version = "0.30", default-features = false }

nalgebra-lapack/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "nalgebra-lapack"
3-
version = "0.20.0"
3+
version = "0.21.0"
44
authors = [ "Sébastien Crozet <developer@crozet.re>", "Andrew Straw <strawman@astraw.com>" ]
55

66
description = "Matrix decompositions using nalgebra matrices and Lapack bindings."
@@ -29,17 +29,17 @@ accelerate = ["lapack-src/accelerate"]
2929
intel-mkl = ["lapack-src/intel-mkl"]
3030

3131
[dependencies]
32-
nalgebra = { version = "0.29", path = ".." }
32+
nalgebra = { version = "0.30", path = ".." }
3333
num-traits = "0.2"
3434
num-complex = { version = "0.4", default-features = false }
35-
simba = "0.5"
35+
simba = "0.7"
3636
serde = { version = "1.0", features = [ "derive" ], optional = true }
3737
lapack = { version = "0.19", default-features = false }
3838
lapack-src = { version = "0.8", default-features = false }
3939
# clippy = "*"
4040

4141
[dev-dependencies]
42-
nalgebra = { version = "0.29", features = [ "arbitrary", "rand" ], path = ".." }
42+
nalgebra = { version = "0.30", features = [ "arbitrary", "rand" ], path = ".." }
4343
proptest = { version = "1", default-features = false, features = ["std"] }
4444
quickcheck = "1"
4545
approx = "0.5"

nalgebra-lapack/src/eigen.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ where
294294
let mut res = Matrix::zeros_generic(nrows, Const::<1>);
295295

296296
for i in 0..res.len() {
297-
res[i] = Complex::new(wr[i], wi[i]);
297+
res[i] = Complex::new(wr[i].clone(), wi[i].clone());
298298
}
299299

300300
res
@@ -306,7 +306,7 @@ where
306306
pub fn determinant(&self) -> T {
307307
let mut det = T::one();
308308
for e in self.eigenvalues.iter() {
309-
det *= *e;
309+
det *= e.clone();
310310
}
311311

312312
det

nalgebra-lapack/src/schur.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ where
155155
let mut out = Matrix::zeros_generic(self.t.shape_generic().0, Const::<1>);
156156

157157
for i in 0..out.len() {
158-
out[i] = Complex::new(self.re[i], self.im[i])
158+
out[i] = Complex::new(self.re[i].clone(), self.im[i].clone())
159159
}
160160

161161
out

nalgebra-lapack/src/symmetric_eigen.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ where
140140
pub fn determinant(&self) -> T {
141141
let mut det = T::one();
142142
for e in self.eigenvalues.iter() {
143-
det *= *e;
143+
det *= e.clone();
144144
}
145145

146146
det
@@ -153,7 +153,7 @@ where
153153
pub fn recompose(&self) -> OMatrix<T, D, D> {
154154
let mut u_t = self.eigenvectors.clone();
155155
for i in 0..self.eigenvalues.len() {
156-
let val = self.eigenvalues[i];
156+
let val = self.eigenvalues[i].clone();
157157
u_t.column_mut(i).mul_assign(val);
158158
}
159159
u_t.transpose_mut();

nalgebra-macros/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ quote = "1.0"
2121
proc-macro2 = "1.0"
2222

2323
[dev-dependencies]
24-
nalgebra = { version = "0.29.0", path = ".." }
24+
nalgebra = { version = "0.30.0", path = ".." }
2525
trybuild = "1.0.42"

nalgebra-sparse/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "nalgebra-sparse"
3-
version = "0.5.0"
3+
version = "0.6.0"
44
authors = [ "Andreas Longva", "Sébastien Crozet <developer@crozet.re>" ]
55
edition = "2018"
66
description = "Sparse matrix computation based on nalgebra."
@@ -23,7 +23,7 @@ io = [ "pest", "pest_derive" ]
2323
slow-tests = []
2424

2525
[dependencies]
26-
nalgebra = { version="0.29", path = "../" }
26+
nalgebra = { version="0.30", path = "../" }
2727
num-traits = { version = "0.2", default-features = false }
2828
proptest = { version = "1.0", optional = true }
2929
matrixcompare-core = { version = "0.1.0", optional = true }
@@ -33,7 +33,7 @@ pest_derive = { version = "2", optional = true }
3333
[dev-dependencies]
3434
itertools = "0.10"
3535
matrixcompare = { version = "0.3.0", features = [ "proptest-support" ] }
36-
nalgebra = { version="0.29", path = "../", features = ["compare"] }
36+
nalgebra = { version="0.30", path = "../", features = ["compare"] }
3737

3838
[package.metadata.docs.rs]
3939
# Enable certain features when building docs for docs.rs

0 commit comments

Comments
 (0)