nalgebra/base/alias_slice.rs
1use crate::base::dimension::{Dynamic, U1, U2, U3, U4, U5, U6};
2use crate::base::matrix_slice::{SliceStorage, SliceStorageMut};
3use crate::base::{Const, Matrix};
4
5/*
6 *
7 *
8 * Matrix slice aliases.
9 *
10 *
11 */
12// NOTE: we can't provide defaults for the strides because it's not supported yet by min_const_generics.
13/// A column-major matrix slice with dimensions known at compile-time.
14///
15/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
16pub type SMatrixSlice<'a, T, const R: usize, const C: usize> =
17 Matrix<T, Const<R>, Const<C>, SliceStorage<'a, T, Const<R>, Const<C>, Const<1>, Const<R>>>;
18
19/// A column-major matrix slice dynamic numbers of rows and columns.
20///
21/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
22pub type DMatrixSlice<'a, T, RStride = U1, CStride = Dynamic> =
23 Matrix<T, Dynamic, Dynamic, SliceStorage<'a, T, Dynamic, Dynamic, RStride, CStride>>;
24
25/// A column-major 1x1 matrix slice.
26///
27/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
28pub type MatrixSlice1<'a, T, RStride = U1, CStride = U1> =
29 Matrix<T, U1, U1, SliceStorage<'a, T, U1, U1, RStride, CStride>>;
30/// A column-major 2x2 matrix slice.
31///
32/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
33pub type MatrixSlice2<'a, T, RStride = U1, CStride = U2> =
34 Matrix<T, U2, U2, SliceStorage<'a, T, U2, U2, RStride, CStride>>;
35/// A column-major 3x3 matrix slice.
36///
37/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
38pub type MatrixSlice3<'a, T, RStride = U1, CStride = U3> =
39 Matrix<T, U3, U3, SliceStorage<'a, T, U3, U3, RStride, CStride>>;
40/// A column-major 4x4 matrix slice.
41///
42/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
43pub type MatrixSlice4<'a, T, RStride = U1, CStride = U4> =
44 Matrix<T, U4, U4, SliceStorage<'a, T, U4, U4, RStride, CStride>>;
45/// A column-major 5x5 matrix slice.
46///
47/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
48pub type MatrixSlice5<'a, T, RStride = U1, CStride = U5> =
49 Matrix<T, U5, U5, SliceStorage<'a, T, U5, U5, RStride, CStride>>;
50/// A column-major 6x6 matrix slice.
51///
52/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
53pub type MatrixSlice6<'a, T, RStride = U1, CStride = U6> =
54 Matrix<T, U6, U6, SliceStorage<'a, T, U6, U6, RStride, CStride>>;
55
56/// A column-major 1x2 matrix slice.
57///
58/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
59pub type MatrixSlice1x2<'a, T, RStride = U1, CStride = U1> =
60 Matrix<T, U1, U2, SliceStorage<'a, T, U1, U2, RStride, CStride>>;
61/// A column-major 1x3 matrix slice.
62///
63/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
64pub type MatrixSlice1x3<'a, T, RStride = U1, CStride = U1> =
65 Matrix<T, U1, U3, SliceStorage<'a, T, U1, U3, RStride, CStride>>;
66/// A column-major 1x4 matrix slice.
67///
68/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
69pub type MatrixSlice1x4<'a, T, RStride = U1, CStride = U1> =
70 Matrix<T, U1, U4, SliceStorage<'a, T, U1, U4, RStride, CStride>>;
71/// A column-major 1x5 matrix slice.
72///
73/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
74pub type MatrixSlice1x5<'a, T, RStride = U1, CStride = U1> =
75 Matrix<T, U1, U5, SliceStorage<'a, T, U1, U5, RStride, CStride>>;
76/// A column-major 1x6 matrix slice.
77///
78/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
79pub type MatrixSlice1x6<'a, T, RStride = U1, CStride = U1> =
80 Matrix<T, U1, U6, SliceStorage<'a, T, U1, U6, RStride, CStride>>;
81
82/// A column-major 2x1 matrix slice.
83///
84/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
85pub type MatrixSlice2x1<'a, T, RStride = U1, CStride = U2> =
86 Matrix<T, U2, U1, SliceStorage<'a, T, U2, U1, RStride, CStride>>;
87/// A column-major 2x3 matrix slice.
88///
89/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
90pub type MatrixSlice2x3<'a, T, RStride = U1, CStride = U2> =
91 Matrix<T, U2, U3, SliceStorage<'a, T, U2, U3, RStride, CStride>>;
92/// A column-major 2x4 matrix slice.
93///
94/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
95pub type MatrixSlice2x4<'a, T, RStride = U1, CStride = U2> =
96 Matrix<T, U2, U4, SliceStorage<'a, T, U2, U4, RStride, CStride>>;
97/// A column-major 2x5 matrix slice.
98///
99/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
100pub type MatrixSlice2x5<'a, T, RStride = U1, CStride = U2> =
101 Matrix<T, U2, U5, SliceStorage<'a, T, U2, U5, RStride, CStride>>;
102/// A column-major 2x6 matrix slice.
103///
104/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
105pub type MatrixSlice2x6<'a, T, RStride = U1, CStride = U2> =
106 Matrix<T, U2, U6, SliceStorage<'a, T, U2, U6, RStride, CStride>>;
107
108/// A column-major 3x1 matrix slice.
109///
110/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
111pub type MatrixSlice3x1<'a, T, RStride = U1, CStride = U3> =
112 Matrix<T, U3, U1, SliceStorage<'a, T, U3, U1, RStride, CStride>>;
113/// A column-major 3x2 matrix slice.
114///
115/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
116pub type MatrixSlice3x2<'a, T, RStride = U1, CStride = U3> =
117 Matrix<T, U3, U2, SliceStorage<'a, T, U3, U2, RStride, CStride>>;
118/// A column-major 3x4 matrix slice.
119///
120/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
121pub type MatrixSlice3x4<'a, T, RStride = U1, CStride = U3> =
122 Matrix<T, U3, U4, SliceStorage<'a, T, U3, U4, RStride, CStride>>;
123/// A column-major 3x5 matrix slice.
124///
125/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
126pub type MatrixSlice3x5<'a, T, RStride = U1, CStride = U3> =
127 Matrix<T, U3, U5, SliceStorage<'a, T, U3, U5, RStride, CStride>>;
128/// A column-major 3x6 matrix slice.
129///
130/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
131pub type MatrixSlice3x6<'a, T, RStride = U1, CStride = U3> =
132 Matrix<T, U3, U6, SliceStorage<'a, T, U3, U6, RStride, CStride>>;
133
134/// A column-major 4x1 matrix slice.
135///
136/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
137pub type MatrixSlice4x1<'a, T, RStride = U1, CStride = U4> =
138 Matrix<T, U4, U1, SliceStorage<'a, T, U4, U1, RStride, CStride>>;
139/// A column-major 4x2 matrix slice.
140///
141/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
142pub type MatrixSlice4x2<'a, T, RStride = U1, CStride = U4> =
143 Matrix<T, U4, U2, SliceStorage<'a, T, U4, U2, RStride, CStride>>;
144/// A column-major 4x3 matrix slice.
145///
146/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
147pub type MatrixSlice4x3<'a, T, RStride = U1, CStride = U4> =
148 Matrix<T, U4, U3, SliceStorage<'a, T, U4, U3, RStride, CStride>>;
149/// A column-major 4x5 matrix slice.
150///
151/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
152pub type MatrixSlice4x5<'a, T, RStride = U1, CStride = U4> =
153 Matrix<T, U4, U5, SliceStorage<'a, T, U4, U5, RStride, CStride>>;
154/// A column-major 4x6 matrix slice.
155///
156/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
157pub type MatrixSlice4x6<'a, T, RStride = U1, CStride = U4> =
158 Matrix<T, U4, U6, SliceStorage<'a, T, U4, U6, RStride, CStride>>;
159
160/// A column-major 5x1 matrix slice.
161///
162/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
163pub type MatrixSlice5x1<'a, T, RStride = U1, CStride = U5> =
164 Matrix<T, U5, U1, SliceStorage<'a, T, U5, U1, RStride, CStride>>;
165/// A column-major 5x2 matrix slice.
166///
167/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
168pub type MatrixSlice5x2<'a, T, RStride = U1, CStride = U5> =
169 Matrix<T, U5, U2, SliceStorage<'a, T, U5, U2, RStride, CStride>>;
170/// A column-major 5x3 matrix slice.
171///
172/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
173pub type MatrixSlice5x3<'a, T, RStride = U1, CStride = U5> =
174 Matrix<T, U5, U3, SliceStorage<'a, T, U5, U3, RStride, CStride>>;
175/// A column-major 5x4 matrix slice.
176///
177/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
178pub type MatrixSlice5x4<'a, T, RStride = U1, CStride = U5> =
179 Matrix<T, U5, U4, SliceStorage<'a, T, U5, U4, RStride, CStride>>;
180/// A column-major 5x6 matrix slice.
181///
182/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
183pub type MatrixSlice5x6<'a, T, RStride = U1, CStride = U5> =
184 Matrix<T, U5, U6, SliceStorage<'a, T, U5, U6, RStride, CStride>>;
185
186/// A column-major 6x1 matrix slice.
187///
188/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
189pub type MatrixSlice6x1<'a, T, RStride = U1, CStride = U6> =
190 Matrix<T, U6, U1, SliceStorage<'a, T, U6, U1, RStride, CStride>>;
191/// A column-major 6x2 matrix slice.
192///
193/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
194pub type MatrixSlice6x2<'a, T, RStride = U1, CStride = U6> =
195 Matrix<T, U6, U2, SliceStorage<'a, T, U6, U2, RStride, CStride>>;
196/// A column-major 6x3 matrix slice.
197///
198/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
199pub type MatrixSlice6x3<'a, T, RStride = U1, CStride = U6> =
200 Matrix<T, U6, U3, SliceStorage<'a, T, U6, U3, RStride, CStride>>;
201/// A column-major 6x4 matrix slice.
202///
203/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
204pub type MatrixSlice6x4<'a, T, RStride = U1, CStride = U6> =
205 Matrix<T, U6, U4, SliceStorage<'a, T, U6, U4, RStride, CStride>>;
206/// A column-major 6x5 matrix slice.
207///
208/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
209pub type MatrixSlice6x5<'a, T, RStride = U1, CStride = U6> =
210 Matrix<T, U6, U5, SliceStorage<'a, T, U6, U5, RStride, CStride>>;
211
212/// A column-major matrix slice with 1 row and a number of columns chosen at runtime.
213pub type MatrixSlice1xX<'a, T, RStride = U1, CStride = U1> =
214 Matrix<T, U1, Dynamic, SliceStorage<'a, T, U1, Dynamic, RStride, CStride>>;
215/// A column-major matrix slice with 2 rows and a number of columns chosen at runtime.
216pub type MatrixSlice2xX<'a, T, RStride = U1, CStride = U2> =
217 Matrix<T, U2, Dynamic, SliceStorage<'a, T, U2, Dynamic, RStride, CStride>>;
218/// A column-major matrix slice with 3 rows and a number of columns chosen at runtime.
219pub type MatrixSlice3xX<'a, T, RStride = U1, CStride = U3> =
220 Matrix<T, U3, Dynamic, SliceStorage<'a, T, U3, Dynamic, RStride, CStride>>;
221/// A column-major matrix slice with 4 rows and a number of columns chosen at runtime.
222pub type MatrixSlice4xX<'a, T, RStride = U1, CStride = U4> =
223 Matrix<T, U4, Dynamic, SliceStorage<'a, T, U4, Dynamic, RStride, CStride>>;
224/// A column-major matrix slice with 5 rows and a number of columns chosen at runtime.
225pub type MatrixSlice5xX<'a, T, RStride = U1, CStride = U5> =
226 Matrix<T, U5, Dynamic, SliceStorage<'a, T, U5, Dynamic, RStride, CStride>>;
227/// A column-major matrix slice with 6 rows and a number of columns chosen at runtime.
228pub type MatrixSlice6xX<'a, T, RStride = U1, CStride = U6> =
229 Matrix<T, U6, Dynamic, SliceStorage<'a, T, U6, Dynamic, RStride, CStride>>;
230
231/// A column-major matrix slice with a number of rows chosen at runtime and 1 column.
232pub type MatrixSliceXx1<'a, T, RStride = U1, CStride = Dynamic> =
233 Matrix<T, Dynamic, U1, SliceStorage<'a, T, Dynamic, U1, RStride, CStride>>;
234/// A column-major matrix slice with a number of rows chosen at runtime and 2 columns.
235pub type MatrixSliceXx2<'a, T, RStride = U1, CStride = Dynamic> =
236 Matrix<T, Dynamic, U2, SliceStorage<'a, T, Dynamic, U2, RStride, CStride>>;
237/// A column-major matrix slice with a number of rows chosen at runtime and 3 columns.
238pub type MatrixSliceXx3<'a, T, RStride = U1, CStride = Dynamic> =
239 Matrix<T, Dynamic, U3, SliceStorage<'a, T, Dynamic, U3, RStride, CStride>>;
240/// A column-major matrix slice with a number of rows chosen at runtime and 4 columns.
241pub type MatrixSliceXx4<'a, T, RStride = U1, CStride = Dynamic> =
242 Matrix<T, Dynamic, U4, SliceStorage<'a, T, Dynamic, U4, RStride, CStride>>;
243/// A column-major matrix slice with a number of rows chosen at runtime and 5 columns.
244pub type MatrixSliceXx5<'a, T, RStride = U1, CStride = Dynamic> =
245 Matrix<T, Dynamic, U5, SliceStorage<'a, T, Dynamic, U5, RStride, CStride>>;
246/// A column-major matrix slice with a number of rows chosen at runtime and 6 columns.
247pub type MatrixSliceXx6<'a, T, RStride = U1, CStride = Dynamic> =
248 Matrix<T, Dynamic, U6, SliceStorage<'a, T, Dynamic, U6, RStride, CStride>>;
249
250/// A column vector slice with dimensions known at compile-time.
251///
252/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
253pub type VectorSlice<'a, T, D, RStride = U1, CStride = D> =
254 Matrix<T, D, U1, SliceStorage<'a, T, D, U1, RStride, CStride>>;
255
256/// A column vector slice with dimensions known at compile-time.
257///
258/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
259pub type SVectorSlice<'a, T, const D: usize> =
260 Matrix<T, Const<D>, Const<1>, SliceStorage<'a, T, Const<D>, Const<1>, Const<1>, Const<D>>>;
261
262/// A column vector slice dynamic numbers of rows and columns.
263pub type DVectorSlice<'a, T, RStride = U1, CStride = Dynamic> =
264 Matrix<T, Dynamic, U1, SliceStorage<'a, T, Dynamic, U1, RStride, CStride>>;
265
266/// A 1D column vector slice.
267///
268/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
269pub type VectorSlice1<'a, T, RStride = U1, CStride = U1> =
270 Matrix<T, U1, U1, SliceStorage<'a, T, U1, U1, RStride, CStride>>;
271/// A 2D column vector slice.
272///
273/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
274pub type VectorSlice2<'a, T, RStride = U1, CStride = U2> =
275 Matrix<T, U2, U1, SliceStorage<'a, T, U2, U1, RStride, CStride>>;
276/// A 3D column vector slice.
277///
278/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
279pub type VectorSlice3<'a, T, RStride = U1, CStride = U3> =
280 Matrix<T, U3, U1, SliceStorage<'a, T, U3, U1, RStride, CStride>>;
281/// A 4D column vector slice.
282///
283/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
284pub type VectorSlice4<'a, T, RStride = U1, CStride = U4> =
285 Matrix<T, U4, U1, SliceStorage<'a, T, U4, U1, RStride, CStride>>;
286/// A 5D column vector slice.
287///
288/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
289pub type VectorSlice5<'a, T, RStride = U1, CStride = U5> =
290 Matrix<T, U5, U1, SliceStorage<'a, T, U5, U1, RStride, CStride>>;
291/// A 6D column vector slice.
292///
293/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
294pub type VectorSlice6<'a, T, RStride = U1, CStride = U6> =
295 Matrix<T, U6, U1, SliceStorage<'a, T, U6, U1, RStride, CStride>>;
296
297/*
298 *
299 *
300 * Same thing, but for mutable slices.
301 *
302 *
303 */
304/// A column-major matrix slice with `R` rows and `C` columns.
305///
306/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
307pub type MatrixSliceMutMN<'a, T, R, C, RStride = U1, CStride = R> =
308 Matrix<T, R, C, SliceStorageMut<'a, T, R, C, RStride, CStride>>;
309
310/// A column-major matrix slice with `D` rows and columns.
311///
312/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
313pub type MatrixSliceMutN<'a, T, D, RStride = U1, CStride = D> =
314 Matrix<T, D, D, SliceStorageMut<'a, T, D, D, RStride, CStride>>;
315
316/// A column-major matrix slice with dimensions known at compile-time.
317///
318/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
319pub type SMatrixSliceMut<'a, T, const R: usize, const C: usize> =
320 Matrix<T, Const<R>, Const<C>, SliceStorageMut<'a, T, Const<R>, Const<C>, Const<1>, Const<R>>>;
321
322/// A column-major matrix slice dynamic numbers of rows and columns.
323///
324/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
325pub type DMatrixSliceMut<'a, T, RStride = U1, CStride = Dynamic> =
326 Matrix<T, Dynamic, Dynamic, SliceStorageMut<'a, T, Dynamic, Dynamic, RStride, CStride>>;
327
328/// A column-major 1x1 matrix slice.
329///
330/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
331pub type MatrixSliceMut1<'a, T, RStride = U1, CStride = U1> =
332 Matrix<T, U1, U1, SliceStorageMut<'a, T, U1, U1, RStride, CStride>>;
333/// A column-major 2x2 matrix slice.
334///
335/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
336pub type MatrixSliceMut2<'a, T, RStride = U1, CStride = U2> =
337 Matrix<T, U2, U2, SliceStorageMut<'a, T, U2, U2, RStride, CStride>>;
338/// A column-major 3x3 matrix slice.
339///
340/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
341pub type MatrixSliceMut3<'a, T, RStride = U1, CStride = U3> =
342 Matrix<T, U3, U3, SliceStorageMut<'a, T, U3, U3, RStride, CStride>>;
343/// A column-major 4x4 matrix slice.
344///
345/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
346pub type MatrixSliceMut4<'a, T, RStride = U1, CStride = U4> =
347 Matrix<T, U4, U4, SliceStorageMut<'a, T, U4, U4, RStride, CStride>>;
348/// A column-major 5x5 matrix slice.
349///
350/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
351pub type MatrixSliceMut5<'a, T, RStride = U1, CStride = U5> =
352 Matrix<T, U5, U5, SliceStorageMut<'a, T, U5, U5, RStride, CStride>>;
353/// A column-major 6x6 matrix slice.
354///
355/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
356pub type MatrixSliceMut6<'a, T, RStride = U1, CStride = U6> =
357 Matrix<T, U6, U6, SliceStorageMut<'a, T, U6, U6, RStride, CStride>>;
358
359/// A column-major 1x2 matrix slice.
360///
361/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
362pub type MatrixSliceMut1x2<'a, T, RStride = U1, CStride = U1> =
363 Matrix<T, U1, U2, SliceStorageMut<'a, T, U1, U2, RStride, CStride>>;
364/// A column-major 1x3 matrix slice.
365///
366/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
367pub type MatrixSliceMut1x3<'a, T, RStride = U1, CStride = U1> =
368 Matrix<T, U1, U3, SliceStorageMut<'a, T, U1, U3, RStride, CStride>>;
369/// A column-major 1x4 matrix slice.
370///
371/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
372pub type MatrixSliceMut1x4<'a, T, RStride = U1, CStride = U1> =
373 Matrix<T, U1, U4, SliceStorageMut<'a, T, U1, U4, RStride, CStride>>;
374/// A column-major 1x5 matrix slice.
375///
376/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
377pub type MatrixSliceMut1x5<'a, T, RStride = U1, CStride = U1> =
378 Matrix<T, U1, U5, SliceStorageMut<'a, T, U1, U5, RStride, CStride>>;
379/// A column-major 1x6 matrix slice.
380///
381/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
382pub type MatrixSliceMut1x6<'a, T, RStride = U1, CStride = U1> =
383 Matrix<T, U1, U6, SliceStorageMut<'a, T, U1, U6, RStride, CStride>>;
384
385/// A column-major 2x1 matrix slice.
386///
387/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
388pub type MatrixSliceMut2x1<'a, T, RStride = U1, CStride = U2> =
389 Matrix<T, U2, U1, SliceStorageMut<'a, T, U2, U1, RStride, CStride>>;
390/// A column-major 2x3 matrix slice.
391///
392/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
393pub type MatrixSliceMut2x3<'a, T, RStride = U1, CStride = U2> =
394 Matrix<T, U2, U3, SliceStorageMut<'a, T, U2, U3, RStride, CStride>>;
395/// A column-major 2x4 matrix slice.
396///
397/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
398pub type MatrixSliceMut2x4<'a, T, RStride = U1, CStride = U2> =
399 Matrix<T, U2, U4, SliceStorageMut<'a, T, U2, U4, RStride, CStride>>;
400/// A column-major 2x5 matrix slice.
401///
402/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
403pub type MatrixSliceMut2x5<'a, T, RStride = U1, CStride = U2> =
404 Matrix<T, U2, U5, SliceStorageMut<'a, T, U2, U5, RStride, CStride>>;
405/// A column-major 2x6 matrix slice.
406///
407/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
408pub type MatrixSliceMut2x6<'a, T, RStride = U1, CStride = U2> =
409 Matrix<T, U2, U6, SliceStorageMut<'a, T, U2, U6, RStride, CStride>>;
410
411/// A column-major 3x1 matrix slice.
412///
413/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
414pub type MatrixSliceMut3x1<'a, T, RStride = U1, CStride = U3> =
415 Matrix<T, U3, U1, SliceStorageMut<'a, T, U3, U1, RStride, CStride>>;
416/// A column-major 3x2 matrix slice.
417///
418/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
419pub type MatrixSliceMut3x2<'a, T, RStride = U1, CStride = U3> =
420 Matrix<T, U3, U2, SliceStorageMut<'a, T, U3, U2, RStride, CStride>>;
421/// A column-major 3x4 matrix slice.
422///
423/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
424pub type MatrixSliceMut3x4<'a, T, RStride = U1, CStride = U3> =
425 Matrix<T, U3, U4, SliceStorageMut<'a, T, U3, U4, RStride, CStride>>;
426/// A column-major 3x5 matrix slice.
427///
428/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
429pub type MatrixSliceMut3x5<'a, T, RStride = U1, CStride = U3> =
430 Matrix<T, U3, U5, SliceStorageMut<'a, T, U3, U5, RStride, CStride>>;
431/// A column-major 3x6 matrix slice.
432///
433/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
434pub type MatrixSliceMut3x6<'a, T, RStride = U1, CStride = U3> =
435 Matrix<T, U3, U6, SliceStorageMut<'a, T, U3, U6, RStride, CStride>>;
436
437/// A column-major 4x1 matrix slice.
438///
439/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
440pub type MatrixSliceMut4x1<'a, T, RStride = U1, CStride = U4> =
441 Matrix<T, U4, U1, SliceStorageMut<'a, T, U4, U1, RStride, CStride>>;
442/// A column-major 4x2 matrix slice.
443///
444/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
445pub type MatrixSliceMut4x2<'a, T, RStride = U1, CStride = U4> =
446 Matrix<T, U4, U2, SliceStorageMut<'a, T, U4, U2, RStride, CStride>>;
447/// A column-major 4x3 matrix slice.
448///
449/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
450pub type MatrixSliceMut4x3<'a, T, RStride = U1, CStride = U4> =
451 Matrix<T, U4, U3, SliceStorageMut<'a, T, U4, U3, RStride, CStride>>;
452/// A column-major 4x5 matrix slice.
453///
454/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
455pub type MatrixSliceMut4x5<'a, T, RStride = U1, CStride = U4> =
456 Matrix<T, U4, U5, SliceStorageMut<'a, T, U4, U5, RStride, CStride>>;
457/// A column-major 4x6 matrix slice.
458///
459/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
460pub type MatrixSliceMut4x6<'a, T, RStride = U1, CStride = U4> =
461 Matrix<T, U4, U6, SliceStorageMut<'a, T, U4, U6, RStride, CStride>>;
462
463/// A column-major 5x1 matrix slice.
464///
465/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
466pub type MatrixSliceMut5x1<'a, T, RStride = U1, CStride = U5> =
467 Matrix<T, U5, U1, SliceStorageMut<'a, T, U5, U1, RStride, CStride>>;
468/// A column-major 5x2 matrix slice.
469///
470/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
471pub type MatrixSliceMut5x2<'a, T, RStride = U1, CStride = U5> =
472 Matrix<T, U5, U2, SliceStorageMut<'a, T, U5, U2, RStride, CStride>>;
473/// A column-major 5x3 matrix slice.
474///
475/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
476pub type MatrixSliceMut5x3<'a, T, RStride = U1, CStride = U5> =
477 Matrix<T, U5, U3, SliceStorageMut<'a, T, U5, U3, RStride, CStride>>;
478/// A column-major 5x4 matrix slice.
479///
480/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
481pub type MatrixSliceMut5x4<'a, T, RStride = U1, CStride = U5> =
482 Matrix<T, U5, U4, SliceStorageMut<'a, T, U5, U4, RStride, CStride>>;
483/// A column-major 5x6 matrix slice.
484///
485/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
486pub type MatrixSliceMut5x6<'a, T, RStride = U1, CStride = U5> =
487 Matrix<T, U5, U6, SliceStorageMut<'a, T, U5, U6, RStride, CStride>>;
488
489/// A column-major 6x1 matrix slice.
490///
491/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
492pub type MatrixSliceMut6x1<'a, T, RStride = U1, CStride = U6> =
493 Matrix<T, U6, U1, SliceStorageMut<'a, T, U6, U1, RStride, CStride>>;
494/// A column-major 6x2 matrix slice.
495///
496/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
497pub type MatrixSliceMut6x2<'a, T, RStride = U1, CStride = U6> =
498 Matrix<T, U6, U2, SliceStorageMut<'a, T, U6, U2, RStride, CStride>>;
499/// A column-major 6x3 matrix slice.
500///
501/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
502pub type MatrixSliceMut6x3<'a, T, RStride = U1, CStride = U6> =
503 Matrix<T, U6, U3, SliceStorageMut<'a, T, U6, U3, RStride, CStride>>;
504/// A column-major 6x4 matrix slice.
505///
506/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
507pub type MatrixSliceMut6x4<'a, T, RStride = U1, CStride = U6> =
508 Matrix<T, U6, U4, SliceStorageMut<'a, T, U6, U4, RStride, CStride>>;
509/// A column-major 6x5 matrix slice.
510///
511/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
512pub type MatrixSliceMut6x5<'a, T, RStride = U1, CStride = U6> =
513 Matrix<T, U6, U5, SliceStorageMut<'a, T, U6, U5, RStride, CStride>>;
514
515/// A column-major matrix slice with 1 row and a number of columns chosen at runtime.
516pub type MatrixSliceMut1xX<'a, T, RStride = U1, CStride = U1> =
517 Matrix<T, U1, Dynamic, SliceStorageMut<'a, T, U1, Dynamic, RStride, CStride>>;
518/// A column-major matrix slice with 2 rows and a number of columns chosen at runtime.
519pub type MatrixSliceMut2xX<'a, T, RStride = U1, CStride = U2> =
520 Matrix<T, U2, Dynamic, SliceStorageMut<'a, T, U2, Dynamic, RStride, CStride>>;
521/// A column-major matrix slice with 3 rows and a number of columns chosen at runtime.
522pub type MatrixSliceMut3xX<'a, T, RStride = U1, CStride = U3> =
523 Matrix<T, U3, Dynamic, SliceStorageMut<'a, T, U3, Dynamic, RStride, CStride>>;
524/// A column-major matrix slice with 4 rows and a number of columns chosen at runtime.
525pub type MatrixSliceMut4xX<'a, T, RStride = U1, CStride = U4> =
526 Matrix<T, U4, Dynamic, SliceStorageMut<'a, T, U4, Dynamic, RStride, CStride>>;
527/// A column-major matrix slice with 5 rows and a number of columns chosen at runtime.
528pub type MatrixSliceMut5xX<'a, T, RStride = U1, CStride = U5> =
529 Matrix<T, U5, Dynamic, SliceStorageMut<'a, T, U5, Dynamic, RStride, CStride>>;
530/// A column-major matrix slice with 6 rows and a number of columns chosen at runtime.
531pub type MatrixSliceMut6xX<'a, T, RStride = U1, CStride = U6> =
532 Matrix<T, U6, Dynamic, SliceStorageMut<'a, T, U6, Dynamic, RStride, CStride>>;
533
534/// A column-major matrix slice with a number of rows chosen at runtime and 1 column.
535pub type MatrixSliceMutXx1<'a, T, RStride = U1, CStride = Dynamic> =
536 Matrix<T, Dynamic, U1, SliceStorageMut<'a, T, Dynamic, U1, RStride, CStride>>;
537/// A column-major matrix slice with a number of rows chosen at runtime and 2 columns.
538pub type MatrixSliceMutXx2<'a, T, RStride = U1, CStride = Dynamic> =
539 Matrix<T, Dynamic, U2, SliceStorageMut<'a, T, Dynamic, U2, RStride, CStride>>;
540/// A column-major matrix slice with a number of rows chosen at runtime and 3 columns.
541pub type MatrixSliceMutXx3<'a, T, RStride = U1, CStride = Dynamic> =
542 Matrix<T, Dynamic, U3, SliceStorageMut<'a, T, Dynamic, U3, RStride, CStride>>;
543/// A column-major matrix slice with a number of rows chosen at runtime and 4 columns.
544pub type MatrixSliceMutXx4<'a, T, RStride = U1, CStride = Dynamic> =
545 Matrix<T, Dynamic, U4, SliceStorageMut<'a, T, Dynamic, U4, RStride, CStride>>;
546/// A column-major matrix slice with a number of rows chosen at runtime and 5 columns.
547pub type MatrixSliceMutXx5<'a, T, RStride = U1, CStride = Dynamic> =
548 Matrix<T, Dynamic, U5, SliceStorageMut<'a, T, Dynamic, U5, RStride, CStride>>;
549/// A column-major matrix slice with a number of rows chosen at runtime and 6 columns.
550pub type MatrixSliceMutXx6<'a, T, RStride = U1, CStride = Dynamic> =
551 Matrix<T, Dynamic, U6, SliceStorageMut<'a, T, Dynamic, U6, RStride, CStride>>;
552
553/// A column vector slice with dimensions known at compile-time.
554///
555/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
556pub type VectorSliceMut<'a, T, D, RStride = U1, CStride = D> =
557 Matrix<T, D, U1, SliceStorageMut<'a, T, D, U1, RStride, CStride>>;
558
559/// A column vector slice with dimensions known at compile-time.
560///
561/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
562pub type SVectorSliceMut<'a, T, const D: usize> =
563 Matrix<T, Const<D>, Const<1>, SliceStorageMut<'a, T, Const<D>, Const<1>, Const<1>, Const<D>>>;
564
565/// A column vector slice dynamic numbers of rows and columns.
566///
567/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
568pub type DVectorSliceMut<'a, T, RStride = U1, CStride = Dynamic> =
569 Matrix<T, Dynamic, U1, SliceStorageMut<'a, T, Dynamic, U1, RStride, CStride>>;
570
571/// A 1D column vector slice.
572///
573/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
574pub type VectorSliceMut1<'a, T, RStride = U1, CStride = U1> =
575 Matrix<T, U1, U1, SliceStorageMut<'a, T, U1, U1, RStride, CStride>>;
576/// A 2D column vector slice.
577///
578/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
579pub type VectorSliceMut2<'a, T, RStride = U1, CStride = U2> =
580 Matrix<T, U2, U1, SliceStorageMut<'a, T, U2, U1, RStride, CStride>>;
581/// A 3D column vector slice.
582///
583/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
584pub type VectorSliceMut3<'a, T, RStride = U1, CStride = U3> =
585 Matrix<T, U3, U1, SliceStorageMut<'a, T, U3, U1, RStride, CStride>>;
586/// A 4D column vector slice.
587///
588/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
589pub type VectorSliceMut4<'a, T, RStride = U1, CStride = U4> =
590 Matrix<T, U4, U1, SliceStorageMut<'a, T, U4, U1, RStride, CStride>>;
591/// A 5D column vector slice.
592///
593/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
594pub type VectorSliceMut5<'a, T, RStride = U1, CStride = U5> =
595 Matrix<T, U5, U1, SliceStorageMut<'a, T, U5, U1, RStride, CStride>>;
596/// A 6D column vector slice.
597///
598/// **Because this is an alias, not all its methods are listed here. See the [`Matrix`](crate::base::Matrix) type too.**
599pub type VectorSliceMut6<'a, T, RStride = U1, CStride = U6> =
600 Matrix<T, U6, U1, SliceStorageMut<'a, T, U6, U1, RStride, CStride>>;