#[cfg(any(feature = "alloc", feature = "std"))] use crate::base::dimension::Dynamic; use crate::base::dimension::{U1, U2, U3, U4, U5, U6}; use crate::base::storage::Owned; #[cfg(any(feature = "std", feature = "alloc"))] use crate::base::vec_storage::VecStorage; use crate::base::{ArrayStorage, Const, Matrix, Unit}; /* * * * Column-major matrices. * * */ /// An owned matrix column-major matrix with `R` rows and `C` columns. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type OMatrix = Matrix>; /// An owned matrix column-major matrix with `R` rows and `C` columns. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** #[deprecated( note = "use SMatrix for a statically-sized matrix using integer dimensions, or OMatrix for an owned matrix using types as dimensions." )] pub type MatrixMN = Matrix>; /// An owned matrix column-major matrix with `D` columns. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** #[deprecated(note = "use OMatrix or SMatrix instead.")] pub type MatrixN = Matrix>; /// A statically sized column-major matrix with `R` rows and `C` columns. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type SMatrix = Matrix, Const, ArrayStorage>; /// A dynamically sized column-major matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** #[cfg(any(feature = "std", feature = "alloc"))] pub type DMatrix = Matrix>; /// A heap-allocated, column-major, matrix with a dynamic number of rows and 1 columns. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** #[cfg(any(feature = "std", feature = "alloc"))] pub type MatrixXx1 = Matrix>; /// A heap-allocated, column-major, matrix with a dynamic number of rows and 2 columns. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** #[cfg(any(feature = "std", feature = "alloc"))] pub type MatrixXx2 = Matrix>; /// A heap-allocated, column-major, matrix with a dynamic number of rows and 3 columns. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** #[cfg(any(feature = "std", feature = "alloc"))] pub type MatrixXx3 = Matrix>; /// A heap-allocated, column-major, matrix with a dynamic number of rows and 4 columns. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** #[cfg(any(feature = "std", feature = "alloc"))] pub type MatrixXx4 = Matrix>; /// A heap-allocated, column-major, matrix with a dynamic number of rows and 5 columns. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** #[cfg(any(feature = "std", feature = "alloc"))] pub type MatrixXx5 = Matrix>; /// A heap-allocated, column-major, matrix with a dynamic number of rows and 6 columns. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** #[cfg(any(feature = "std", feature = "alloc"))] pub type MatrixXx6 = Matrix>; /// A heap-allocated, row-major, matrix with 1 rows and a dynamic number of columns. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** #[cfg(any(feature = "std", feature = "alloc"))] pub type Matrix1xX = Matrix>; /// A heap-allocated, row-major, matrix with 2 rows and a dynamic number of columns. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** #[cfg(any(feature = "std", feature = "alloc"))] pub type Matrix2xX = Matrix>; /// A heap-allocated, row-major, matrix with 3 rows and a dynamic number of columns. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** #[cfg(any(feature = "std", feature = "alloc"))] pub type Matrix3xX = Matrix>; /// A heap-allocated, row-major, matrix with 4 rows and a dynamic number of columns. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** #[cfg(any(feature = "std", feature = "alloc"))] pub type Matrix4xX = Matrix>; /// A heap-allocated, row-major, matrix with 5 rows and a dynamic number of columns. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** #[cfg(any(feature = "std", feature = "alloc"))] pub type Matrix5xX = Matrix>; /// A heap-allocated, row-major, matrix with 6 rows and a dynamic number of columns. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** #[cfg(any(feature = "std", feature = "alloc"))] pub type Matrix6xX = Matrix>; /// A stack-allocated, column-major, 1x1 square matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix1 = Matrix>; /// A stack-allocated, column-major, 2x2 square matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix2 = Matrix>; /// A stack-allocated, column-major, 3x3 square matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix3 = Matrix>; /// A stack-allocated, column-major, 4x4 square matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix4 = Matrix>; /// A stack-allocated, column-major, 5x5 square matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix5 = Matrix>; /// A stack-allocated, column-major, 6x6 square matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix6 = Matrix>; /// A stack-allocated, column-major, 1x2 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix1x2 = Matrix>; /// A stack-allocated, column-major, 1x3 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix1x3 = Matrix>; /// A stack-allocated, column-major, 1x4 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix1x4 = Matrix>; /// A stack-allocated, column-major, 1x5 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix1x5 = Matrix>; /// A stack-allocated, column-major, 1x6 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix1x6 = Matrix>; /// A stack-allocated, column-major, 2x3 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix2x3 = Matrix>; /// A stack-allocated, column-major, 2x4 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix2x4 = Matrix>; /// A stack-allocated, column-major, 2x5 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix2x5 = Matrix>; /// A stack-allocated, column-major, 2x6 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix2x6 = Matrix>; /// A stack-allocated, column-major, 3x4 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix3x4 = Matrix>; /// A stack-allocated, column-major, 3x5 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix3x5 = Matrix>; /// A stack-allocated, column-major, 3x6 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix3x6 = Matrix>; /// A stack-allocated, column-major, 4x5 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix4x5 = Matrix>; /// A stack-allocated, column-major, 4x6 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix4x6 = Matrix>; /// A stack-allocated, column-major, 5x6 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix5x6 = Matrix>; /// A stack-allocated, column-major, 2x1 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix2x1 = Matrix>; /// A stack-allocated, column-major, 3x1 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix3x1 = Matrix>; /// A stack-allocated, column-major, 4x1 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix4x1 = Matrix>; /// A stack-allocated, column-major, 5x1 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix5x1 = Matrix>; /// A stack-allocated, column-major, 6x1 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix6x1 = Matrix>; /// A stack-allocated, column-major, 3x2 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix3x2 = Matrix>; /// A stack-allocated, column-major, 4x2 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix4x2 = Matrix>; /// A stack-allocated, column-major, 5x2 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix5x2 = Matrix>; /// A stack-allocated, column-major, 6x2 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix6x2 = Matrix>; /// A stack-allocated, column-major, 4x3 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix4x3 = Matrix>; /// A stack-allocated, column-major, 5x3 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix5x3 = Matrix>; /// A stack-allocated, column-major, 6x3 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix6x3 = Matrix>; /// A stack-allocated, column-major, 5x4 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix5x4 = Matrix>; /// A stack-allocated, column-major, 6x4 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix6x4 = Matrix>; /// A stack-allocated, column-major, 6x5 matrix. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** pub type Matrix6x5 = Matrix>; /* * * * Column vectors. * * */ /// A dynamically sized column vector. #[cfg(any(feature = "std", feature = "alloc"))] pub type DVector = Matrix>; /// An owned D-dimensional column vector. pub type OVector = Matrix>; /// A statically sized D-dimensional column vector. pub type SVector = Matrix, U1, ArrayStorage>; // Owned, U1>>; /// An owned matrix column-major matrix with `R` rows and `C` columns. /// /// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.** #[deprecated( note = "use SVector for a statically-sized matrix using integer dimensions, or OVector for an owned matrix using types as dimensions." )] pub type VectorN = Matrix>; /// A stack-allocated, 1-dimensional column vector. pub type Vector1 = Matrix>; /// A stack-allocated, 2-dimensional column vector. pub type Vector2 = Matrix>; /// A stack-allocated, 3-dimensional column vector. pub type Vector3 = Matrix>; /// A stack-allocated, 4-dimensional column vector. pub type Vector4 = Matrix>; /// A stack-allocated, 5-dimensional column vector. pub type Vector5 = Matrix>; /// A stack-allocated, 6-dimensional column vector. pub type Vector6 = Matrix>; /* * * * Row vectors. * * */ /// A dynamically sized row vector. #[cfg(any(feature = "std", feature = "alloc"))] pub type RowDVector = Matrix>; /// An owned D-dimensional row vector. pub type RowOVector = Matrix>; /// A statically sized D-dimensional row vector. pub type RowSVector = Matrix, ArrayStorage>; /// A stack-allocated, 1-dimensional row vector. pub type RowVector1 = Matrix>; /// A stack-allocated, 2-dimensional row vector. pub type RowVector2 = Matrix>; /// A stack-allocated, 3-dimensional row vector. pub type RowVector3 = Matrix>; /// A stack-allocated, 4-dimensional row vector. pub type RowVector4 = Matrix>; /// A stack-allocated, 5-dimensional row vector. pub type RowVector5 = Matrix>; /// A stack-allocated, 6-dimensional row vector. pub type RowVector6 = Matrix>; /* * * * Unit Vector. * * */ /// A stack-allocated, 1-dimensional unit vector. pub type UnitVector1 = Unit>>; /// A stack-allocated, 2-dimensional unit vector. pub type UnitVector2 = Unit>>; /// A stack-allocated, 3-dimensional unit vector. pub type UnitVector3 = Unit>>; /// A stack-allocated, 4-dimensional unit vector. pub type UnitVector4 = Unit>>; /// A stack-allocated, 5-dimensional unit vector. pub type UnitVector5 = Unit>>; /// A stack-allocated, 6-dimensional unit vector. pub type UnitVector6 = Unit>>;