| 292 SM: Storage<E, N, M>, |
292 SM: Storage<E, N, M>, |
| 293 N: Dim, |
293 N: Dim, |
| 294 M: Dim, |
294 M: Dim, |
| 295 K: Dim, |
295 K: Dim, |
| 296 E: Scalar + Zero + One + Copy + ClosedMulAssign + ClosedAddAssign, |
296 E: Scalar + Zero + One + Copy + ClosedMulAssign + ClosedAddAssign, |
| 297 DefaultAllocator: Allocator<N, K> + Allocator<M, K> + Allocator<N, M>, |
297 DefaultAllocator: Allocator<M, K> + Allocator<N, K>, |
| 298 ShapeConstraint: StridesOk<E, M, K> + StridesOk<E, N, K>, |
298 ShapeConstraint: StridesOk<E, M, K> + StridesOk<E, N, K>, |
| 299 { |
299 { |
| 300 type Codomain = OMatrix<E, N, K>; |
300 type Codomain = OMatrix<E, N, K>; |
| 301 |
301 |
| 302 #[inline] |
302 #[inline] |
| 310 SM: Storage<E, N, M>, |
310 SM: Storage<E, N, M>, |
| 311 N: Dim, |
311 N: Dim, |
| 312 M: Dim, |
312 M: Dim, |
| 313 K: Dim, |
313 K: Dim, |
| 314 E: Scalar + Zero + One + Copy + ClosedMulAssign + ClosedAddAssign, |
314 E: Scalar + Zero + One + Copy + ClosedMulAssign + ClosedAddAssign, |
| 315 DefaultAllocator: Allocator<N, K> + Allocator<M, K> + Allocator<N, M>, |
315 DefaultAllocator: Allocator<N, K> + Allocator<M, K>, |
| 316 ShapeConstraint: StridesOk<E, M, K> + StridesOk<E, N, K>, |
316 ShapeConstraint: StridesOk<E, M, K> + StridesOk<E, N, K>, |
| 317 { |
317 { |
| 318 } |
318 } |
| 319 |
319 |
| 320 impl<SM, SV2, N, M, K, E> GEMV<E, OMatrix<E, M, K>, Matrix<E, N, K, SV2>> for Matrix<E, N, M, SM> |
320 impl<SM, SV2, N, M, K, E> GEMV<E, OMatrix<E, M, K>, Matrix<E, N, K, SV2>> for Matrix<E, N, M, SM> |
| 323 SV2: StorageMut<E, N, K>, |
323 SV2: StorageMut<E, N, K>, |
| 324 N: Dim, |
324 N: Dim, |
| 325 M: Dim, |
325 M: Dim, |
| 326 K: Dim, |
326 K: Dim, |
| 327 E: Scalar + Zero + One + Float, |
327 E: Scalar + Zero + One + Float, |
| 328 DefaultAllocator: Allocator<N, K> + Allocator<M, K> + Allocator<N, M>, |
328 DefaultAllocator: Allocator<N, K> + Allocator<M, K>, |
| 329 ShapeConstraint: StridesOk<E, M, K> + StridesOk<E, N, K>, |
329 ShapeConstraint: StridesOk<E, M, K> + StridesOk<E, N, K>, |
| 330 { |
330 { |
| 331 #[inline] |
331 #[inline] |
| 332 fn gemv<I: Instance<OMatrix<E, M, K>>>( |
332 fn gemv<I: Instance<OMatrix<E, M, K>>>( |
| 333 &self, y: &mut Matrix<E, N, K, SV2>, α: E, x: I, β: E |
333 &self, y: &mut Matrix<E, N, K, SV2>, α: E, x: I, β: E |
| 444 SM: Storage<E, N, M>, |
444 SM: Storage<E, N, M>, |
| 445 N: Dim, |
445 N: Dim, |
| 446 M: Dim, |
446 M: Dim, |
| 447 K: Dim, |
447 K: Dim, |
| 448 E: Scalar + Zero + One + Copy + SimdComplexField, |
448 E: Scalar + Zero + One + Copy + SimdComplexField, |
| 449 DefaultAllocator: Allocator<N, K> + Allocator<M, K> + Allocator<N, M> + Allocator<M, N>, |
449 DefaultAllocator: Allocator<N, K> + Allocator<M, K> + Allocator<M, N>, |
| 450 ShapeConstraint: StridesOk<E, N, K> + StridesOk<E, M, K>, |
450 ShapeConstraint: StridesOk<E, N, K> + StridesOk<E, M, K>, |
| 451 { |
451 { |
| 452 type AdjointCodomain = OMatrix<E, M, K>; |
452 type AdjointCodomain = OMatrix<E, M, K>; |
| 453 type Adjoint<'a> |
453 type Adjoint<'a> |
| 454 = OMatrix<E, M, N> |
454 = OMatrix<E, M, N> |
| 568 impl<E, M, S> Norm<L1, E> for Vector<E, M, S> |
568 impl<E, M, S> Norm<L1, E> for Vector<E, M, S> |
| 569 where |
569 where |
| 570 M: Dim, |
570 M: Dim, |
| 571 S: Storage<E, M>, |
571 S: Storage<E, M>, |
| 572 E: Float + Scalar + Zero + One + RealField, |
572 E: Float + Scalar + Zero + One + RealField, |
| 573 DefaultAllocator: Allocator<M>, |
|
| 574 { |
573 { |
| 575 #[inline] |
574 #[inline] |
| 576 fn norm(&self, _: L1) -> E { |
575 fn norm(&self, _: L1) -> E { |
| 577 nalgebra::Norm::norm(&LpNorm(1), self) |
576 nalgebra::Norm::norm(&LpNorm(1), self) |
| 578 } |
577 } |
| 596 where |
595 where |
| 597 M: Dim, |
596 M: Dim, |
| 598 N: Dim, |
597 N: Dim, |
| 599 S: Storage<E, M, N>, |
598 S: Storage<E, M, N>, |
| 600 E: Float + Scalar + Zero + One + RealField, |
599 E: Float + Scalar + Zero + One + RealField, |
| 601 DefaultAllocator: Allocator<M, N>, |
|
| 602 { |
600 { |
| 603 #[inline] |
601 #[inline] |
| 604 fn norm(&self, _: L2) -> E { |
602 fn norm(&self, _: L2) -> E { |
| 605 nalgebra::Norm::norm(&LpNorm(2), self) |
603 nalgebra::Norm::norm(&LpNorm(2), self) |
| 606 } |
604 } |
| 625 where |
623 where |
| 626 M: Dim, |
624 M: Dim, |
| 627 N: Dim, |
625 N: Dim, |
| 628 S: Storage<E, M, N>, |
626 S: Storage<E, M, N>, |
| 629 E: Float + Scalar + Zero + One + RealField, |
627 E: Float + Scalar + Zero + One + RealField, |
| 630 DefaultAllocator: Allocator<M, N>, |
|
| 631 { |
628 { |
| 632 #[inline] |
629 #[inline] |
| 633 fn norm(&self, _: Linfinity) -> E { |
630 fn norm(&self, _: Linfinity) -> E { |
| 634 nalgebra::Norm::norm(&UniformNorm, self) |
631 nalgebra::Norm::norm(&UniformNorm, self) |
| 635 } |
632 } |