@@ -4,19 +4,47 @@ documented here.
44
55This project adheres to [ Semantic Versioning] ( http://semver.org/ ) .
66
7- ## [ 0.18.0] - WIP
7+ ## [ 0.18.0]
88This release adds full complex number support to nalgebra. This includes all common vector/matrix operations as well
99as matrix decomposition. This excludes geometric type (like ` Isometry ` , ` Rotation ` , ` Translation ` , etc.) from the
1010` geometry ` module.
1111
1212### Added
13+ #### Quaternion and geometric operations
14+ * Add trigonometric functions for quaternions: ` .cos, .sin, .tan, .acos, .asin, .atan, .cosh, .sinh, .tanh, .acosh, .asinh, .atanh ` .
15+ * Add geometric algebra operations for quaternions: ` .inner, .outer, .project, .rejection `
1316 * Add ` .renormalize ` to ` Unit<...> ` and ` Rotation3 ` to correct potential drift due to repeated operations.
14- Those drifts can cause them not to be pure rotations anymore.
17+ Those drifts could cause them not to be pure rotations anymore.
18+
19+ #### Convolution
20+ * ` .convolve_full(kernel) ` returns the convolution of ` self ` by ` kernel ` .
21+ * ` .convolve_valid(kernel) ` returns the convolution of ` self ` by ` kernel ` after removal of all the elements relying on zero-padding.
22+ * ` .convolve_same(kernel) ` returns the convolution of ` self ` by ` kernel ` with a result of the same size as ` self ` .
23+
24+ #### Complex number support
1525 * Add the ` ::from_matrix ` constructor too all rotation types to extract a rotation from a raw matrix.
1626 * Add the ` ::from_matrix_eps ` constructor too all rotation types to extract a rotation from a raw matrix. This takes
1727 more argument than ` ::from_matrix ` to control the convergence of the underlying optimization algorithm.
18- * Add trigonometric functions for quaternions: ` .cos, .sin, .tan, .acos, .asin, .atan, .cosh, .sinh, .tanh, .acosh, .asinh, .atanh ` .
19- * Add geometric algebra operations for quaternions: ` .inner, .outer, .project, .rejection `
28+ * Add ` .camax() ` which returns the matrix component with the greatest L1-norm.
29+ * Add ` .camin() ` which returns the matrix component with the smallest L1-norm.
30+ * Add ` .ad_mul(b) ` for matrix-multiplication of ` self.adjoint() * b ` .
31+ * Add ` .ad_mul_to(b) ` which is the same as ` .ad_mul ` but with a provided matrix to be filled with the result of the multiplication.
32+ * Add BLAS operations involving complex conjugation (following similar names as the original BLAS spec):
33+ * ` .dotc(rhs) ` equal to ` self.adjoint() * rhs ` .
34+ * ` .gerc(alpha, x, y, beta) ` equivalent to ` self = alpha * x * y.adjoint() + beta * self `
35+ * ` .hegerc ` which is like ` gerc ` but for Hermitian matrices.
36+ * ` .syger ` which is the new name of ` .ger_symm ` which is equivalent to ` self = alpha * x * y.transpose() + beta * self ` .
37+ * ` .sygemv ` which is the new name of ` .gemv_symm ` which is equivalent to ` self = alpha * a * x + beta * self ` with ` a ` symmetric.
38+ * ` .hegemv(alpha, a, x, beta) ` which is like ` .sygemv ` but with ` a ` Hermitian.
39+ * ` .gemv_ad(alpha, a, x, beta) ` which is equivalent to ` self = alpha * a.adjoint() * x + beta * self ` .
40+ * ` .gemm_ad(alpha, a, b, beta) ` which is equivalent to ` self = alpha * a.adjoint() * b + beta * self ` .
41+ * ` .icamax() ` which returns the index of the complex vector component with the greatest L1-norm.
42+
43+ Note that all the existing BLAS operation will still work for all fields, including floats and complex numbers.
44+
45+ ### Renamed
46+ * ` RealSchur ` has been renamed ` Schur ` because it can now work with complex matrices.
47+
2048
2149## [ 0.17.0]
2250
0 commit comments