Trait enso_prelude::Mul 1.0.0[−][src]
Expand description
The multiplication operator *
.
Note that Rhs
is Self
by default, but this is not mandatory.
Examples
Mul
tipliable rational numbers
use std::ops::Mul; // By the fundamental theorem of arithmetic, rational numbers in lowest // terms are unique. So, by keeping `Rational`s in reduced form, we can // derive `Eq` and `PartialEq`. #[derive(Debug, Eq, PartialEq)] struct Rational { numerator: usize, denominator: usize, } impl Rational { fn new(numerator: usize, denominator: usize) -> Self { if denominator == 0 { panic!("Zero is an invalid denominator!"); } // Reduce to lowest terms by dividing by the greatest common // divisor. let gcd = gcd(numerator, denominator); Self { numerator: numerator / gcd, denominator: denominator / gcd, } } } impl Mul for Rational { // The multiplication of rational numbers is a closed operation. type Output = Self; fn mul(self, rhs: Self) -> Self { let numerator = self.numerator * rhs.numerator; let denominator = self.denominator * rhs.denominator; Self::new(numerator, denominator) } } // Euclid's two-thousand-year-old algorithm for finding the greatest common // divisor. fn gcd(x: usize, y: usize) -> usize { let mut x = x; let mut y = y; while y != 0 { let t = y; y = x % y; x = t; } x } assert_eq!(Rational::new(1, 2), Rational::new(2, 4)); assert_eq!(Rational::new(2, 3) * Rational::new(3, 4), Rational::new(1, 2));
Multiplying vectors by scalars as in linear algebra
use std::ops::Mul; struct Scalar { value: usize } #[derive(Debug, PartialEq)] struct Vector { value: Vec<usize> } impl Mul<Scalar> for Vector { type Output = Self; fn mul(self, rhs: Scalar) -> Self::Output { Self { value: self.value.iter().map(|v| v * rhs.value).collect() } } } let vector = Vector { value: vec![2, 4, 6] }; let scalar = Scalar { value: 3 }; assert_eq!(vector * scalar, Vector { value: vec![6, 12, 18] });
Associated Types
Required methods
Implementations on Foreign Types
impl<'a, T, C, const D: usize> Mul<Translation<T, D>> for &'a Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Mul<Translation<T, D>> for &'a Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
pub fn mul(
self,
rhs: Translation<T, D>
) -> <&'a Transform<T, C, D> as Mul<Translation<T, D>>>::Output
impl<'b, T, C, const D: usize> Mul<&'b Rotation<T, D>> for Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Mul<&'b Rotation<T, D>> for Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Unit<Quaternion<T>>> for Rotation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Unit<Quaternion<T>>> for Rotation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<Quaternion<T>>
pub fn mul(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <Rotation<T, 3_usize> as Mul<&'b Unit<Quaternion<T>>>>::Output
impl<'a, 'b, T> Mul<&'b Unit<Quaternion<T>>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Unit<Quaternion<T>>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <&'a Unit<DualQuaternion<T>> as Mul<&'b Unit<Quaternion<T>>>>::Output
impl<'a, T> Mul<Rotation<T, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Rotation<T, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, SA, const D2: usize, const R1: usize, const C1: usize> Mul<Point<T, D2>> for &'a Matrix<T, Const<R1>, Const<C1>, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
SA: Storage<T, Const<R1>, Const<C1>>,
ShapeConstraint: AreMultipliable<Const<R1>, Const<C1>, Const<D2>, Const<1_usize>>,
impl<'a, T, SA, const D2: usize, const R1: usize, const C1: usize> Mul<Point<T, D2>> for &'a Matrix<T, Const<R1>, Const<C1>, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
SA: Storage<T, Const<R1>, Const<C1>>,
ShapeConstraint: AreMultipliable<Const<R1>, Const<C1>, Const<D2>, Const<1_usize>>,
impl<'a, T> Mul<DualQuaternion<T>> for &'a DualQuaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<DualQuaternion<T>> for &'a DualQuaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = DualQuaternion<T>
pub fn mul(
self,
rhs: DualQuaternion<T>
) -> <&'a DualQuaternion<T> as Mul<DualQuaternion<T>>>::Output
impl<'a, 'b, T> Mul<&'b Unit<DualQuaternion<T>>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Unit<DualQuaternion<T>>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: &'b Unit<DualQuaternion<T>>
) -> <&'a Unit<DualQuaternion<T>> as Mul<&'b Unit<DualQuaternion<T>>>>::Output
impl<'b, T> Mul<&'b DualQuaternion<T>> for DualQuaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b DualQuaternion<T>> for DualQuaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = DualQuaternion<T>
pub fn mul(
self,
rhs: &'b DualQuaternion<T>
) -> <DualQuaternion<T> as Mul<&'b DualQuaternion<T>>>::Output
impl<'a, 'b, T> Mul<&'b Translation<T, 2_usize>> for &'a Unit<Complex<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Translation<T, 2_usize>> for &'a Unit<Complex<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, C, R, const D: usize> Mul<Transform<T, C, D>> for &'a Similarity<T, R, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, R, const D: usize> Mul<Transform<T, C, D>> for &'a Similarity<T, R, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
impl<'a, T, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
impl<'a, T, C, const D: usize> Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for &'a Transform<T, C, D> where
C: TCategory,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for &'a Transform<T, C, D> where
C: TCategory,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, R, const D: usize> Mul<&'b Similarity<T, R, D>> for Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, R, const D: usize> Mul<&'b Similarity<T, R, D>> for Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
pub fn mul(
self,
rhs: &'b Similarity<T, R, D>
) -> <Transform<T, C, D> as Mul<&'b Similarity<T, R, D>>>::Output
impl<T, C, R, const D: usize> Mul<Transform<T, C, D>> for Similarity<T, R, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, R, const D: usize> Mul<Transform<T, C, D>> for Similarity<T, R, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
impl<'a, 'b, T> Mul<&'b Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: &'b Unit<DualQuaternion<T>>
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<&'b Unit<DualQuaternion<T>>>>::Output
type Output = Similarity<T, Rotation<T, D>, D>
pub fn mul(
self,
right: &'b Similarity<T, Rotation<T, D>, D>
) -> <&'a Rotation<T, D> as Mul<&'b Similarity<T, Rotation<T, D>, D>>>::Output
impl<'b, T, C, const D: usize> Mul<&'b Transform<T, C, D>> for Translation<T, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Mul<&'b Transform<T, C, D>> for Translation<T, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
impl<T> Mul<Unit<DualQuaternion<T>>> for Translation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Unit<DualQuaternion<T>>> for Translation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: Unit<DualQuaternion<T>>
) -> <Translation<T, 3_usize> as Mul<Unit<DualQuaternion<T>>>>::Output
impl<'a, T> Mul<Quaternion<T>> for &'a Quaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Quaternion<T>> for &'a Quaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Quaternion<T>
impl<T, const D: usize> Mul<Translation<T, D>> for Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T, const D: usize> Mul<Translation<T, D>> for Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
pub fn mul(
self,
right: Translation<T, D>
) -> <Rotation<T, D> as Mul<Translation<T, D>>>::Output
type Output = DualQuaternion<f64>
pub fn mul(
self,
right: &'b DualQuaternion<f64>
) -> <f64 as Mul<&'b DualQuaternion<f64>>>::Output
impl<'a, T, R, const D: usize> Mul<Similarity<T, R, D>> for &'a Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<Similarity<T, R, D>> for &'a Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
pub fn mul(
self,
right: Similarity<T, R, D>
) -> <&'a Translation<T, D> as Mul<Similarity<T, R, D>>>::Output
impl<'a, 'b, T> Mul<&'b Rotation<T, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Rotation<T, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Translation<T, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Translation<T, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
right: &'b Translation<T, 3_usize>
) -> <Unit<Quaternion<T>> as Mul<&'b Translation<T, 3_usize>>>::Output
impl<'a, T> Mul<Translation<T, 3_usize>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Translation<T, 3_usize>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: Translation<T, 3_usize>
) -> <&'a Unit<DualQuaternion<T>> as Mul<Translation<T, 3_usize>>>::Output
impl<T, C> Mul<Unit<Quaternion<T>>> for Transform<T, C, 3_usize> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
impl<T, C> Mul<Unit<Quaternion<T>>> for Transform<T, C, 3_usize> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
pub fn mul(
self,
rhs: Unit<Quaternion<T>>
) -> <Transform<T, C, 3_usize> as Mul<Unit<Quaternion<T>>>>::Output
impl<'b, T> Mul<&'b Rotation<T, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Rotation<T, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<Isometry<T, R, D>> for Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<Isometry<T, R, D>> for Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, C, const D: usize> Mul<&'b Transform<T, C, D>> for &'a Translation<T, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, const D: usize> Mul<&'b Transform<T, C, D>> for &'a Translation<T, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
impl<'a, T, CA, CB, const D: usize> Mul<Transform<T, CB, D>> for &'a Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, CA, CB, const D: usize> Mul<Transform<T, CB, D>> for &'a Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T> Mul<&'a Unit<DualQuaternion<T>>> for &'b Translation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'a Unit<DualQuaternion<T>>> for &'b Translation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: &'a Unit<DualQuaternion<T>>
) -> <&'b Translation<T, 3_usize> as Mul<&'a Unit<DualQuaternion<T>>>>::Output
impl<'a, T> Mul<Unit<Quaternion<T>>> for &'a Translation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Unit<Quaternion<T>>> for &'a Translation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
right: Unit<Quaternion<T>>
) -> <&'a Translation<T, 3_usize> as Mul<Unit<Quaternion<T>>>>::Output
impl<T, const D: usize> Mul<Point<T, D>> for Translation<T, D> where
T: ClosedAdd<T> + Scalar,
ShapeConstraint: SameNumberOfRows<Const<D>, Const<D>>,
ShapeConstraint: SameNumberOfColumns<Const<1_usize>, Const<1_usize>>,
<ShapeConstraint as SameNumberOfRows<Const<D>, Const<D>>>::Representative == Const<D>,
<ShapeConstraint as SameNumberOfColumns<Const<1_usize>, Const<1_usize>>>::Representative == Const<1_usize>,
impl<T, const D: usize> Mul<Point<T, D>> for Translation<T, D> where
T: ClosedAdd<T> + Scalar,
ShapeConstraint: SameNumberOfRows<Const<D>, Const<D>>,
ShapeConstraint: SameNumberOfColumns<Const<1_usize>, Const<1_usize>>,
<ShapeConstraint as SameNumberOfRows<Const<D>, Const<D>>>::Representative == Const<D>,
<ShapeConstraint as SameNumberOfColumns<Const<1_usize>, Const<1_usize>>>::Representative == Const<1_usize>,
impl<'a, T> Mul<T> for &'a DualQuaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<T> for &'a DualQuaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = DualQuaternion<T>
impl<'a, 'b, T, const D: usize> Mul<&'b Translation<T, D>> for &'a Translation<T, D> where
T: ClosedAdd<T> + Scalar,
ShapeConstraint: SameNumberOfRows<Const<D>, Const<D>>,
ShapeConstraint: SameNumberOfColumns<Const<1_usize>, Const<1_usize>>,
<ShapeConstraint as SameNumberOfRows<Const<D>, Const<D>>>::Representative == Const<D>,
<ShapeConstraint as SameNumberOfColumns<Const<1_usize>, Const<1_usize>>>::Representative == Const<1_usize>,
impl<'a, 'b, T, const D: usize> Mul<&'b Translation<T, D>> for &'a Translation<T, D> where
T: ClosedAdd<T> + Scalar,
ShapeConstraint: SameNumberOfRows<Const<D>, Const<D>>,
ShapeConstraint: SameNumberOfColumns<Const<1_usize>, Const<1_usize>>,
<ShapeConstraint as SameNumberOfRows<Const<D>, Const<D>>>::Representative == Const<D>,
<ShapeConstraint as SameNumberOfColumns<Const<1_usize>, Const<1_usize>>>::Representative == Const<1_usize>,
type Output = Translation<T, D>
pub fn mul(
self,
right: &'b Translation<T, D>
) -> <&'a Translation<T, D> as Mul<&'b Translation<T, D>>>::Output
impl<'a, 'b, T> Mul<&'b Unit<Complex<T>>> for &'a Translation<T, 2_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Unit<Complex<T>>> for &'a Translation<T, 2_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<Unit<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<Unit<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Translation<T, 2_usize>> for &'a Unit<Complex<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Translation<T, 2_usize>> for &'a Unit<Complex<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Unit<Quaternion<T>>> for Similarity<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Unit<Quaternion<T>>> for Similarity<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
rhs: Unit<Quaternion<T>>
) -> <Similarity<T, Unit<Quaternion<T>>, 3_usize> as Mul<Unit<Quaternion<T>>>>::Output
impl<'a, T> Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
right: Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<Quaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
impl<'a, 'b, T> Mul<&'b Point<T, 3_usize>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Point<T, 3_usize>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
right: &'b Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<Quaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
impl<T> Mul<Unit<Quaternion<T>>> for Rotation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Unit<Quaternion<T>>> for Rotation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<Quaternion<T>>
pub fn mul(
self,
rhs: Unit<Quaternion<T>>
) -> <Rotation<T, 3_usize> as Mul<Unit<Quaternion<T>>>>::Output
impl<'a, T> Mul<Unit<Quaternion<T>>> for &'a Rotation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Unit<Quaternion<T>>> for &'a Rotation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<Quaternion<T>>
pub fn mul(
self,
rhs: Unit<Quaternion<T>>
) -> <&'a Rotation<T, 3_usize> as Mul<Unit<Quaternion<T>>>>::Output
impl<'a, 'b, T, const D: usize> Mul<&'b Rotation<T, D>> for &'a Translation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, const D: usize> Mul<&'b Rotation<T, D>> for &'a Translation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Point<T, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Point<T, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
impl<T> Mul<T> for DualQuaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<T> for DualQuaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = DualQuaternion<T>
impl<'a, 'b, T, R2, C2, SB, const D1: usize> Mul<&'b Matrix<T, R2, C2, SB>> for &'a Rotation<T, D1> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
R2: Dim,
C2: Dim,
SB: Storage<T, R2, C2>,
DefaultAllocator: Allocator<T, Const<D1>, C2>,
ShapeConstraint: AreMultipliable<Const<D1>, Const<D1>, R2, C2>,
impl<'a, 'b, T, R2, C2, SB, const D1: usize> Mul<&'b Matrix<T, R2, C2, SB>> for &'a Rotation<T, D1> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
R2: Dim,
C2: Dim,
SB: Storage<T, R2, C2>,
DefaultAllocator: Allocator<T, Const<D1>, C2>,
ShapeConstraint: AreMultipliable<Const<D1>, Const<D1>, R2, C2>,
impl<T, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
pub fn mul(
self,
right: Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
) -> <Similarity<T, R, D> as Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>>::Output
impl<T, R1, C1, R2, C2, SA, SB> Mul<Matrix<T, R2, C2, SB>> for Matrix<T, R1, C1, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
R2: Dim,
C2: Dim,
R1: Dim,
C1: Dim,
SA: Storage<T, R1, C1>,
SB: Storage<T, R2, C2>,
DefaultAllocator: Allocator<T, R1, C2>,
ShapeConstraint: AreMultipliable<R1, C1, R2, C2>,
impl<T, R1, C1, R2, C2, SA, SB> Mul<Matrix<T, R2, C2, SB>> for Matrix<T, R1, C1, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
R2: Dim,
C2: Dim,
R1: Dim,
C1: Dim,
SA: Storage<T, R1, C1>,
SB: Storage<T, R2, C2>,
DefaultAllocator: Allocator<T, R1, C2>,
ShapeConstraint: AreMultipliable<R1, C1, R2, C2>,
impl<T, C, const D: usize> Mul<Transform<T, C, D>> for Rotation<T, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Mul<Transform<T, C, D>> for Rotation<T, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T> Mul<&'b Similarity<T, Unit<Quaternion<T>>, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Similarity<T, Unit<Quaternion<T>>, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
right: &'b Similarity<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<Quaternion<T>> as Mul<&'b Similarity<T, Unit<Quaternion<T>>, 3_usize>>>::Output
impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Similarity<T, R, D>> for &'a Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Similarity<T, R, D>> for &'a Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
pub fn mul(
self,
rhs: &'b Similarity<T, R, D>
) -> <&'a Transform<T, C, D> as Mul<&'b Similarity<T, R, D>>>::Output
impl<'a, 'b, T, const D: usize> Mul<&'b Translation<T, D>> for &'a Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, const D: usize> Mul<&'b Translation<T, D>> for &'a Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
pub fn mul(
self,
right: &'b Translation<T, D>
) -> <&'a Rotation<T, D> as Mul<&'b Translation<T, D>>>::Output
impl<'b, T, const D: usize> Mul<&'b Point<T, D>> for Translation<T, D> where
T: ClosedAdd<T> + Scalar,
ShapeConstraint: SameNumberOfRows<Const<D>, Const<D>>,
ShapeConstraint: SameNumberOfColumns<Const<1_usize>, Const<1_usize>>,
<ShapeConstraint as SameNumberOfRows<Const<D>, Const<D>>>::Representative == Const<D>,
<ShapeConstraint as SameNumberOfColumns<Const<1_usize>, Const<1_usize>>>::Representative == Const<1_usize>,
impl<'b, T, const D: usize> Mul<&'b Point<T, D>> for Translation<T, D> where
T: ClosedAdd<T> + Scalar,
ShapeConstraint: SameNumberOfRows<Const<D>, Const<D>>,
ShapeConstraint: SameNumberOfColumns<Const<1_usize>, Const<1_usize>>,
<ShapeConstraint as SameNumberOfRows<Const<D>, Const<D>>>::Representative == Const<D>,
<ShapeConstraint as SameNumberOfColumns<Const<1_usize>, Const<1_usize>>>::Representative == Const<1_usize>,
type Output = DualQuaternion<f64>
impl<'a, 'b, T> Mul<&'b DualQuaternion<T>> for &'a DualQuaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b DualQuaternion<T>> for &'a DualQuaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = DualQuaternion<T>
pub fn mul(
self,
rhs: &'b DualQuaternion<T>
) -> <&'a DualQuaternion<T> as Mul<&'b DualQuaternion<T>>>::Output
impl<'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Unit<DualQuaternion<T>>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Unit<DualQuaternion<T>>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: Unit<DualQuaternion<T>>
) -> <&'a Unit<DualQuaternion<T>> as Mul<Unit<DualQuaternion<T>>>>::Output
impl<'a, T> Mul<Similarity<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Similarity<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
right: Similarity<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<Quaternion<T>> as Mul<Similarity<T, Unit<Quaternion<T>>, 3_usize>>>::Output
impl<T> Mul<Translation<T, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Translation<T, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: Translation<T, 3_usize>
) -> <Unit<DualQuaternion<T>> as Mul<Translation<T, 3_usize>>>::Output
impl<T, const D: usize> Mul<Translation<T, D>> for Translation<T, D> where
T: ClosedAdd<T> + Scalar,
ShapeConstraint: SameNumberOfRows<Const<D>, Const<D>>,
ShapeConstraint: SameNumberOfColumns<Const<1_usize>, Const<1_usize>>,
<ShapeConstraint as SameNumberOfRows<Const<D>, Const<D>>>::Representative == Const<D>,
<ShapeConstraint as SameNumberOfColumns<Const<1_usize>, Const<1_usize>>>::Representative == Const<1_usize>,
impl<T, const D: usize> Mul<Translation<T, D>> for Translation<T, D> where
T: ClosedAdd<T> + Scalar,
ShapeConstraint: SameNumberOfRows<Const<D>, Const<D>>,
ShapeConstraint: SameNumberOfColumns<Const<1_usize>, Const<1_usize>>,
<ShapeConstraint as SameNumberOfRows<Const<D>, Const<D>>>::Representative == Const<D>,
<ShapeConstraint as SameNumberOfColumns<Const<1_usize>, Const<1_usize>>>::Representative == Const<1_usize>,
type Output = Translation<T, D>
pub fn mul(
self,
right: Translation<T, D>
) -> <Translation<T, D> as Mul<Translation<T, D>>>::Output
impl<'a, T> Mul<Point<T, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Point<T, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
right: Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<Quaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
impl<'b, T, C> Mul<&'b Transform<T, C, 3_usize>> for Unit<Quaternion<T>> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
impl<'b, T, C> Mul<&'b Transform<T, C, 3_usize>> for Unit<Quaternion<T>> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
impl<T> Mul<Rotation<T, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Rotation<T, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = DualQuaternion<f32>
pub fn mul(
self,
right: &'b DualQuaternion<f32>
) -> <f32 as Mul<&'b DualQuaternion<f32>>>::Output
impl<'b, T, R1, C1, SA, const D2: usize> Mul<&'b Rotation<T, D2>> for Matrix<T, R1, C1, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
R1: Dim,
C1: Dim,
SA: Storage<T, R1, C1>,
DefaultAllocator: Allocator<T, R1, Const<D2>>,
ShapeConstraint: AreMultipliable<R1, C1, Const<D2>, Const<D2>>,
impl<'b, T, R1, C1, SA, const D2: usize> Mul<&'b Rotation<T, D2>> for Matrix<T, R1, C1, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
R1: Dim,
C1: Dim,
SA: Storage<T, R1, C1>,
DefaultAllocator: Allocator<T, R1, Const<D2>>,
ShapeConstraint: AreMultipliable<R1, C1, Const<D2>, Const<D2>>,
impl<'a, 'b, T, C, const D: usize> Mul<&'b Transform<T, C, D>> for &'a Rotation<T, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, const D: usize> Mul<&'b Transform<T, C, D>> for &'a Rotation<T, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T> Mul<&'b Unit<Quaternion<T>>> for Similarity<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Unit<Quaternion<T>>> for Similarity<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <Similarity<T, Unit<Quaternion<T>>, 3_usize> as Mul<&'b Unit<Quaternion<T>>>>::Output
impl<'a, T> Mul<T> for &'a Quaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<T> for &'a Quaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Quaternion<T>
impl<'a, 'b, T, C, const D: usize> Mul<&'b Translation<T, D>> for &'a Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, const D: usize> Mul<&'b Translation<T, D>> for &'a Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
pub fn mul(
self,
rhs: &'b Translation<T, D>
) -> <&'a Transform<T, C, D> as Mul<&'b Translation<T, D>>>::Output
impl<'a, T, C, const D: usize> Mul<Rotation<T, D>> for &'a Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Mul<Rotation<T, D>> for &'a Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T> Mul<&'b Unit<DualQuaternion<T>>> for Translation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Unit<DualQuaternion<T>>> for Translation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: &'b Unit<DualQuaternion<T>>
) -> <Translation<T, 3_usize> as Mul<&'b Unit<DualQuaternion<T>>>>::Output
impl<T> Mul<Similarity<T, Unit<Quaternion<T>>, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Similarity<T, Unit<Quaternion<T>>, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
right: Similarity<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<Quaternion<T>> as Mul<Similarity<T, Unit<Quaternion<T>>, 3_usize>>>::Output
impl<'a, T, C, R, const D: usize> Mul<Similarity<T, R, D>> for &'a Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, R, const D: usize> Mul<Similarity<T, R, D>> for &'a Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
pub fn mul(
self,
rhs: Similarity<T, R, D>
) -> <&'a Transform<T, C, D> as Mul<Similarity<T, R, D>>>::Output
impl<'a, T, R, const D: usize> Mul<Similarity<T, R, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<Similarity<T, R, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
pub fn mul(
self,
rhs: Similarity<T, R, D>
) -> <&'a Similarity<T, R, D> as Mul<Similarity<T, R, D>>>::Output
impl<'a, 'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
impl<T, C, R, const D: usize> Mul<Similarity<T, R, D>> for Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, R, const D: usize> Mul<Similarity<T, R, D>> for Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
pub fn mul(
self,
rhs: Similarity<T, R, D>
) -> <Transform<T, C, D> as Mul<Similarity<T, R, D>>>::Output
impl<'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
pub fn mul(
self,
rhs: &'b Similarity<T, R, D>
) -> <Isometry<T, R, D> as Mul<&'b Similarity<T, R, D>>>::Output
impl<'b, T> Mul<&'b Unit<Quaternion<T>>> for Translation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Unit<Quaternion<T>>> for Translation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
right: &'b Unit<Quaternion<T>>
) -> <Translation<T, 3_usize> as Mul<&'b Unit<Quaternion<T>>>>::Output
impl<'a, T> Mul<Unit<DualQuaternion<T>>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Unit<DualQuaternion<T>>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: Unit<DualQuaternion<T>>
) -> <&'a Unit<Quaternion<T>> as Mul<Unit<DualQuaternion<T>>>>::Output
impl<T, R, const D: usize> Mul<Unit<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<Unit<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R2, C2, SB, const D1: usize> Mul<Matrix<T, R2, C2, SB>> for &'a Rotation<T, D1> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
R2: Dim,
C2: Dim,
SB: Storage<T, R2, C2>,
DefaultAllocator: Allocator<T, Const<D1>, C2>,
ShapeConstraint: AreMultipliable<Const<D1>, Const<D1>, R2, C2>,
impl<'a, T, R2, C2, SB, const D1: usize> Mul<Matrix<T, R2, C2, SB>> for &'a Rotation<T, D1> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
R2: Dim,
C2: Dim,
SB: Storage<T, R2, C2>,
DefaultAllocator: Allocator<T, Const<D1>, C2>,
ShapeConstraint: AreMultipliable<Const<D1>, Const<D1>, R2, C2>,
impl<'b, T, C, const D: usize> Mul<&'b Translation<T, D>> for Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Mul<&'b Translation<T, D>> for Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
pub fn mul(
self,
rhs: &'b Translation<T, D>
) -> <Transform<T, C, D> as Mul<&'b Translation<T, D>>>::Output
type Output = Quaternion<f64>
impl<'a, T> Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<DualQuaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
impl<T> Mul<Quaternion<T>> for Quaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Quaternion<T>> for Quaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Quaternion<T>
impl<T, C, const D: usize> Mul<Translation<T, D>> for Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Mul<Translation<T, D>> for Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
pub fn mul(
self,
rhs: Translation<T, D>
) -> <Transform<T, C, D> as Mul<Translation<T, D>>>::Output
impl<'a, T> Mul<Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
rhs: Unit<Quaternion<T>>
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<Unit<Quaternion<T>>>>::Output
impl<'b, T> Mul<&'b Unit<Quaternion<T>>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Unit<Quaternion<T>>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <Unit<DualQuaternion<T>> as Mul<&'b Unit<Quaternion<T>>>>::Output
impl<'a, T, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, C, const D: usize> Mul<Rotation<T, D>> for Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Mul<Rotation<T, D>> for Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, const D: usize> Mul<Rotation<T, D>> for Translation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T, const D: usize> Mul<Rotation<T, D>> for Translation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R1, C1, R2, C2, SA, SB> Mul<&'b Matrix<T, R2, C2, SB>> for Matrix<T, R1, C1, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
R2: Dim,
C2: Dim,
R1: Dim,
C1: Dim,
SA: Storage<T, R1, C1>,
SB: Storage<T, R2, C2>,
DefaultAllocator: Allocator<T, R1, C2>,
ShapeConstraint: AreMultipliable<R1, C1, R2, C2>,
impl<'b, T, R1, C1, R2, C2, SA, SB> Mul<&'b Matrix<T, R2, C2, SB>> for Matrix<T, R1, C1, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
R2: Dim,
C2: Dim,
R1: Dim,
C1: Dim,
SA: Storage<T, R1, C1>,
SB: Storage<T, R2, C2>,
DefaultAllocator: Allocator<T, R1, C2>,
ShapeConstraint: AreMultipliable<R1, C1, R2, C2>,
impl<T> Mul<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
rhs: Unit<Quaternion<T>>
) -> <Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<Unit<Quaternion<T>>>>::Output
impl<'a, 'b, T, R, const D: usize> Mul<&'b Translation<T, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Translation<T, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
pub fn mul(
self,
right: &'b Translation<T, D>
) -> <&'a Isometry<T, R, D> as Mul<&'b Translation<T, D>>>::Output
impl<'a, T, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, CA, CB, const D: usize> Mul<&'b Transform<T, CB, D>> for Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, CA, CB, const D: usize> Mul<&'b Transform<T, CB, D>> for Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T> Mul<Unit<Quaternion<T>>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Unit<Quaternion<T>>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<Quaternion<T>>
pub fn mul(
self,
rhs: Unit<Quaternion<T>>
) -> <Unit<Quaternion<T>> as Mul<Unit<Quaternion<T>>>>::Output
impl<'a, T, const D: usize> Mul<Translation<T, D>> for &'a Translation<T, D> where
T: ClosedAdd<T> + Scalar,
ShapeConstraint: SameNumberOfRows<Const<D>, Const<D>>,
ShapeConstraint: SameNumberOfColumns<Const<1_usize>, Const<1_usize>>,
<ShapeConstraint as SameNumberOfRows<Const<D>, Const<D>>>::Representative == Const<D>,
<ShapeConstraint as SameNumberOfColumns<Const<1_usize>, Const<1_usize>>>::Representative == Const<1_usize>,
impl<'a, T, const D: usize> Mul<Translation<T, D>> for &'a Translation<T, D> where
T: ClosedAdd<T> + Scalar,
ShapeConstraint: SameNumberOfRows<Const<D>, Const<D>>,
ShapeConstraint: SameNumberOfColumns<Const<1_usize>, Const<1_usize>>,
<ShapeConstraint as SameNumberOfRows<Const<D>, Const<D>>>::Representative == Const<D>,
<ShapeConstraint as SameNumberOfColumns<Const<1_usize>, Const<1_usize>>>::Representative == Const<1_usize>,
type Output = Translation<T, D>
pub fn mul(
self,
right: Translation<T, D>
) -> <&'a Translation<T, D> as Mul<Translation<T, D>>>::Output
impl<'a, T, const D: usize> Mul<Point<T, D>> for &'a Translation<T, D> where
T: ClosedAdd<T> + Scalar,
ShapeConstraint: SameNumberOfRows<Const<D>, Const<D>>,
ShapeConstraint: SameNumberOfColumns<Const<1_usize>, Const<1_usize>>,
<ShapeConstraint as SameNumberOfRows<Const<D>, Const<D>>>::Representative == Const<D>,
<ShapeConstraint as SameNumberOfColumns<Const<1_usize>, Const<1_usize>>>::Representative == Const<1_usize>,
impl<'a, T, const D: usize> Mul<Point<T, D>> for &'a Translation<T, D> where
T: ClosedAdd<T> + Scalar,
ShapeConstraint: SameNumberOfRows<Const<D>, Const<D>>,
ShapeConstraint: SameNumberOfColumns<Const<1_usize>, Const<1_usize>>,
<ShapeConstraint as SameNumberOfRows<Const<D>, Const<D>>>::Representative == Const<D>,
<ShapeConstraint as SameNumberOfColumns<Const<1_usize>, Const<1_usize>>>::Representative == Const<1_usize>,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Unit<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Unit<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<Isometry<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<Isometry<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
impl<'a, 'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Quaternion<f32>
impl<'a, T, R, const D: usize> Mul<Similarity<T, R, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<Similarity<T, R, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
pub fn mul(
self,
rhs: Similarity<T, R, D>
) -> <&'a Isometry<T, R, D> as Mul<Similarity<T, R, D>>>::Output
impl<'a, T, R1, C1, R2, C2, SA, SB> Mul<Matrix<T, R2, C2, SB>> for &'a Matrix<T, R1, C1, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
R2: Dim,
C2: Dim,
R1: Dim,
C1: Dim,
SA: Storage<T, R1, C1>,
SB: Storage<T, R2, C2>,
DefaultAllocator: Allocator<T, R1, C2>,
ShapeConstraint: AreMultipliable<R1, C1, R2, C2>,
impl<'a, T, R1, C1, R2, C2, SA, SB> Mul<Matrix<T, R2, C2, SB>> for &'a Matrix<T, R1, C1, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
R2: Dim,
C2: Dim,
R1: Dim,
C1: Dim,
SA: Storage<T, R1, C1>,
SB: Storage<T, R2, C2>,
DefaultAllocator: Allocator<T, R1, C2>,
ShapeConstraint: AreMultipliable<R1, C1, R2, C2>,
impl<T, R, const D: usize> Mul<Similarity<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<Similarity<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
pub fn mul(
self,
rhs: Similarity<T, R, D>
) -> <Isometry<T, R, D> as Mul<Similarity<T, R, D>>>::Output
impl<T> Mul<Unit<DualQuaternion<T>>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Unit<DualQuaternion<T>>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: Unit<DualQuaternion<T>>
) -> <Unit<DualQuaternion<T>> as Mul<Unit<DualQuaternion<T>>>>::Output
impl<T> Mul<Translation<T, 2_usize>> for Unit<Complex<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Translation<T, 2_usize>> for Unit<Complex<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Unit<Complex<T>>> for Translation<T, 2_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Unit<Complex<T>>> for Translation<T, 2_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, C> Mul<Unit<Quaternion<T>>> for &'a Transform<T, C, 3_usize> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
impl<'a, T, C> Mul<Unit<Quaternion<T>>> for &'a Transform<T, C, 3_usize> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
pub fn mul(
self,
rhs: Unit<Quaternion<T>>
) -> <&'a Transform<T, C, 3_usize> as Mul<Unit<Quaternion<T>>>>::Output
impl<'b, T, R, const D: usize> Mul<&'b Translation<T, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b Translation<T, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
pub fn mul(
self,
right: &'b Translation<T, D>
) -> <Isometry<T, R, D> as Mul<&'b Translation<T, D>>>::Output
impl<'a, 'b, T, SA, const D2: usize, const R1: usize, const C1: usize> Mul<&'b Point<T, D2>> for &'a Matrix<T, Const<R1>, Const<C1>, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
SA: Storage<T, Const<R1>, Const<C1>>,
ShapeConstraint: AreMultipliable<Const<R1>, Const<C1>, Const<D2>, Const<1_usize>>,
impl<'a, 'b, T, SA, const D2: usize, const R1: usize, const C1: usize> Mul<&'b Point<T, D2>> for &'a Matrix<T, Const<R1>, Const<C1>, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
SA: Storage<T, Const<R1>, Const<C1>>,
ShapeConstraint: AreMultipliable<Const<R1>, Const<C1>, Const<D2>, Const<1_usize>>,
impl<'b, T, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R1, C1, R2, C2, SA, SB> Mul<&'b Matrix<T, R2, C2, SB>> for &'a Matrix<T, R1, C1, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
R2: Dim,
C2: Dim,
R1: Dim,
C1: Dim,
SA: Storage<T, R1, C1>,
SB: Storage<T, R2, C2>,
DefaultAllocator: Allocator<T, R1, C2>,
ShapeConstraint: AreMultipliable<R1, C1, R2, C2>,
impl<'a, 'b, T, R1, C1, R2, C2, SA, SB> Mul<&'b Matrix<T, R2, C2, SB>> for &'a Matrix<T, R1, C1, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
R2: Dim,
C2: Dim,
R1: Dim,
C1: Dim,
SA: Storage<T, R1, C1>,
SB: Storage<T, R2, C2>,
DefaultAllocator: Allocator<T, R1, C2>,
ShapeConstraint: AreMultipliable<R1, C1, R2, C2>,
impl<'a, 'b, T, CA, CB, const D: usize> Mul<&'b Transform<T, CB, D>> for &'a Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, CA, CB, const D: usize> Mul<&'b Transform<T, CB, D>> for &'a Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, R, const D: usize> Mul<Transform<T, C, D>> for Isometry<T, R, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, R, const D: usize> Mul<Transform<T, C, D>> for Isometry<T, R, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T> Mul<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<&'b Unit<Quaternion<T>>>>::Output
impl<T, R, const D: usize> Mul<Similarity<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<Similarity<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
pub fn mul(
self,
rhs: Similarity<T, R, D>
) -> <Similarity<T, R, D> as Mul<Similarity<T, R, D>>>::Output
impl<'b, T, C, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for Transform<T, C, D> where
C: TCategory,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for Transform<T, C, D> where
C: TCategory,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
right: &'b Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<Quaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
impl<'a, T> Mul<Translation<T, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Translation<T, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
right: Translation<T, 3_usize>
) -> <&'a Unit<Quaternion<T>> as Mul<Translation<T, 3_usize>>>::Output
impl<'a, T, C, const D: usize> Mul<Transform<T, C, D>> for &'a Translation<T, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Mul<Transform<T, C, D>> for &'a Translation<T, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
impl<'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<DualQuaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
impl<T> Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<DualQuaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
impl<'b, T> Mul<&'b Point<T, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Point<T, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, C, const D: usize> Mul<&'b Transform<T, C, D>> for Rotation<T, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Mul<&'b Transform<T, C, D>> for Rotation<T, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, R, const D: usize> Mul<Isometry<T, R, D>> for Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, R, const D: usize> Mul<Isometry<T, R, D>> for Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T> Mul<&'b Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<&'b Unit<Quaternion<T>>>>::Output
impl<'a, 'b, T, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
pub fn mul(
self,
right: &'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
) -> <&'a Similarity<T, R, D> as Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>>::Output
impl<'b, T, R2, C2, SB, const D1: usize> Mul<&'b Matrix<T, R2, C2, SB>> for Rotation<T, D1> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
R2: Dim,
C2: Dim,
SB: Storage<T, R2, C2>,
DefaultAllocator: Allocator<T, Const<D1>, C2>,
ShapeConstraint: AreMultipliable<Const<D1>, Const<D1>, R2, C2>,
impl<'b, T, R2, C2, SB, const D1: usize> Mul<&'b Matrix<T, R2, C2, SB>> for Rotation<T, D1> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
R2: Dim,
C2: Dim,
SB: Storage<T, R2, C2>,
DefaultAllocator: Allocator<T, Const<D1>, C2>,
ShapeConstraint: AreMultipliable<Const<D1>, Const<D1>, R2, C2>,
impl<'a, T> Mul<Unit<Complex<T>>> for &'a Translation<T, 2_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Unit<Complex<T>>> for &'a Translation<T, 2_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = DualQuaternion<f32>
impl<T> Mul<Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: Unit<DualQuaternion<T>>
) -> <Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<Unit<DualQuaternion<T>>>>::Output
impl<'a, T, R, const D: usize> Mul<Translation<T, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<Translation<T, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
pub fn mul(
self,
right: Translation<T, D>
) -> <&'a Similarity<T, R, D> as Mul<Translation<T, D>>>::Output
impl<'a, T> Mul<Unit<Quaternion<T>>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Unit<Quaternion<T>>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: Unit<Quaternion<T>>
) -> <&'a Unit<DualQuaternion<T>> as Mul<Unit<Quaternion<T>>>>::Output
impl<'b, T, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
pub fn mul(
self,
right: &'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
) -> <Similarity<T, R, D> as Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>>::Output
impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for &'a Similarity<T, R, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for &'a Similarity<T, R, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
impl<'b, T> Mul<&'b Translation<T, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Translation<T, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: &'b Translation<T, 3_usize>
) -> <Unit<DualQuaternion<T>> as Mul<&'b Translation<T, 3_usize>>>::Output
impl<'a, 'b, T, C> Mul<&'b Unit<Quaternion<T>>> for &'a Transform<T, C, 3_usize> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
impl<'a, 'b, T, C> Mul<&'b Unit<Quaternion<T>>> for &'a Transform<T, C, 3_usize> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
pub fn mul(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <&'a Transform<T, C, 3_usize> as Mul<&'b Unit<Quaternion<T>>>>::Output
impl<'a, 'b, T> Mul<&'b Translation<T, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Translation<T, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
right: &'b Translation<T, 3_usize>
) -> <&'a Unit<Quaternion<T>> as Mul<&'b Translation<T, 3_usize>>>::Output
type Output = Quaternion<f64>
impl<'a, 'b, T> Mul<&'b Translation<T, 3_usize>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Translation<T, 3_usize>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: &'b Translation<T, 3_usize>
) -> <&'a Unit<DualQuaternion<T>> as Mul<&'b Translation<T, 3_usize>>>::Output
impl<T, CA, CB, const D: usize> Mul<Transform<T, CB, D>> for Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, CA, CB, const D: usize> Mul<Transform<T, CB, D>> for Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T> Mul<&'b Unit<Quaternion<T>>> for &'a Rotation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Unit<Quaternion<T>>> for &'a Rotation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<Quaternion<T>>
pub fn mul(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <&'a Rotation<T, 3_usize> as Mul<&'b Unit<Quaternion<T>>>>::Output
impl<T> Mul<Unit<Quaternion<T>>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Unit<Quaternion<T>>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: Unit<Quaternion<T>>
) -> <Unit<DualQuaternion<T>> as Mul<Unit<Quaternion<T>>>>::Output
impl<'a, T, C, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Similarity<T, Rotation<T, D>, D>
pub fn mul(
self,
right: &'b Similarity<T, Rotation<T, D>, D>
) -> <Rotation<T, D> as Mul<&'b Similarity<T, Rotation<T, D>, D>>>::Output
impl<'a, T, C, R, const D: usize> Mul<Transform<T, C, D>> for &'a Isometry<T, R, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, R, const D: usize> Mul<Transform<T, C, D>> for &'a Isometry<T, R, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T> Mul<&'b DualQuaternion<T>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b DualQuaternion<T>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = DualQuaternion<T>
pub fn mul(
self,
rhs: &'b DualQuaternion<T>
) -> <&'a Unit<DualQuaternion<T>> as Mul<&'b DualQuaternion<T>>>::Output
impl<'b, T, R, const D: usize> Mul<&'b Point<T, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b Point<T, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, C, const D: usize> Mul<Point<T, D>> for &'a Transform<T, C, D> where
C: TCategory,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Mul<Point<T, D>> for &'a Transform<T, C, D> where
C: TCategory,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T> Mul<&'b Point<T, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Point<T, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Point<T, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Point<T, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, const D: usize> Mul<&'b Rotation<T, D>> for Translation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, const D: usize> Mul<&'b Rotation<T, D>> for Translation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, Rotation<T, D>, D>
pub fn mul(
self,
right: Similarity<T, Rotation<T, D>, D>
) -> <&'a Rotation<T, D> as Mul<Similarity<T, Rotation<T, D>, D>>>::Output
impl<'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for Isometry<T, R, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for Isometry<T, R, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T> Mul<&'b Similarity<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Similarity<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
right: &'b Similarity<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<Quaternion<T>> as Mul<&'b Similarity<T, Unit<Quaternion<T>>, 3_usize>>>::Output
impl<'a, 'b, T> Mul<&'b Unit<Quaternion<T>>> for &'a Similarity<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Unit<Quaternion<T>>> for &'a Similarity<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <&'a Similarity<T, Unit<Quaternion<T>>, 3_usize> as Mul<&'b Unit<Quaternion<T>>>>::Output
impl<T> Mul<Unit<DualQuaternion<T>>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Unit<DualQuaternion<T>>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: Unit<DualQuaternion<T>>
) -> <Unit<Quaternion<T>> as Mul<Unit<DualQuaternion<T>>>>::Output
impl<'a, 'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for &'a Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for &'a Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
pub fn mul(
self,
right: &'b Similarity<T, R, D>
) -> <&'a Translation<T, D> as Mul<&'b Similarity<T, R, D>>>::Output
impl<'b, T> Mul<&'b Translation<T, 2_usize>> for Unit<Complex<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Translation<T, 2_usize>> for Unit<Complex<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Unit<DualQuaternion<T>>> for &'a DualQuaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Unit<DualQuaternion<T>>> for &'a DualQuaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = DualQuaternion<T>
pub fn mul(
self,
rhs: Unit<DualQuaternion<T>>
) -> <&'a DualQuaternion<T> as Mul<Unit<DualQuaternion<T>>>>::Output
impl<'a, 'b, T, C, const D: usize> Mul<&'b Rotation<T, D>> for &'a Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, const D: usize> Mul<&'b Rotation<T, D>> for &'a Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T> Mul<&'b Quaternion<T>> for Quaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Quaternion<T>> for Quaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Quaternion<T>
impl<T> Mul<DualQuaternion<T>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<DualQuaternion<T>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = DualQuaternion<T>
pub fn mul(
self,
rhs: DualQuaternion<T>
) -> <Unit<DualQuaternion<T>> as Mul<DualQuaternion<T>>>::Output
impl<'a, T, R, const D: usize> Mul<Translation<T, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<Translation<T, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
pub fn mul(
self,
right: Translation<T, D>
) -> <&'a Isometry<T, R, D> as Mul<Translation<T, D>>>::Output
impl<T, R, const D: usize> Mul<Translation<T, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<Translation<T, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
pub fn mul(
self,
right: Translation<T, D>
) -> <Isometry<T, R, D> as Mul<Translation<T, D>>>::Output
impl<'b, T, SA, const D2: usize, const R1: usize, const C1: usize> Mul<&'b Point<T, D2>> for Matrix<T, Const<R1>, Const<C1>, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
SA: Storage<T, Const<R1>, Const<C1>>,
ShapeConstraint: AreMultipliable<Const<R1>, Const<C1>, Const<D2>, Const<1_usize>>,
impl<'b, T, SA, const D2: usize, const R1: usize, const C1: usize> Mul<&'b Point<T, D2>> for Matrix<T, Const<R1>, Const<C1>, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
SA: Storage<T, Const<R1>, Const<C1>>,
ShapeConstraint: AreMultipliable<Const<R1>, Const<C1>, Const<D2>, Const<1_usize>>,
impl<'b, T> Mul<&'b Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: &'b Unit<DualQuaternion<T>>
) -> <Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<&'b Unit<DualQuaternion<T>>>>::Output
impl<'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
pub fn mul(
self,
right: &'b Similarity<T, R, D>
) -> <Translation<T, D> as Mul<&'b Similarity<T, R, D>>>::Output
impl<'b, T> Mul<&'b Point<T, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Point<T, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T, C> Mul<Transform<T, C, 3_usize>> for Unit<Quaternion<T>> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
impl<T, C> Mul<Transform<T, C, 3_usize>> for Unit<Quaternion<T>> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
impl<'a, T> Mul<Unit<Quaternion<T>>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Unit<Quaternion<T>>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<Quaternion<T>>
pub fn mul(
self,
rhs: Unit<Quaternion<T>>
) -> <&'a Unit<Quaternion<T>> as Mul<Unit<Quaternion<T>>>>::Output
impl<'a, T> Mul<DualQuaternion<T>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<DualQuaternion<T>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = DualQuaternion<T>
pub fn mul(
self,
rhs: DualQuaternion<T>
) -> <&'a Unit<DualQuaternion<T>> as Mul<DualQuaternion<T>>>::Output
impl<T, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b Translation<T, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b Translation<T, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
pub fn mul(
self,
right: &'b Translation<T, D>
) -> <Similarity<T, R, D> as Mul<&'b Translation<T, D>>>::Output
impl<'a, T, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
pub fn mul(
self,
right: Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
) -> <&'a Similarity<T, R, D> as Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>>::Output
impl<'a, 'b, T> Mul<&'b Unit<Quaternion<T>>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Unit<Quaternion<T>>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<Quaternion<T>>
pub fn mul(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <&'a Unit<Quaternion<T>> as Mul<&'b Unit<Quaternion<T>>>>::Output
impl<'b, T, C, const D: usize> Mul<&'b Point<T, D>> for Transform<T, C, D> where
C: TCategory,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Mul<&'b Point<T, D>> for Transform<T, C, D> where
C: TCategory,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, R, const D: usize> Mul<Point<T, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<Point<T, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, C, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for &'a Transform<T, C, D> where
C: TCategory,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for &'a Transform<T, C, D> where
C: TCategory,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, const D: usize> Mul<Rotation<T, D>> for &'a Translation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, const D: usize> Mul<Rotation<T, D>> for &'a Translation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<T> for Quaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<T> for Quaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Quaternion<T>
impl<'b, T> Mul<&'b DualQuaternion<T>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b DualQuaternion<T>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = DualQuaternion<T>
pub fn mul(
self,
rhs: &'b DualQuaternion<T>
) -> <Unit<DualQuaternion<T>> as Mul<&'b DualQuaternion<T>>>::Output
impl<'a, T, const D: usize> Mul<Translation<T, D>> for &'a Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, const D: usize> Mul<Translation<T, D>> for &'a Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
pub fn mul(
self,
right: Translation<T, D>
) -> <&'a Rotation<T, D> as Mul<Translation<T, D>>>::Output
impl<'b, T, R, const D: usize> Mul<&'b Unit<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b Unit<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Unit<DualQuaternion<T>>> for DualQuaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Unit<DualQuaternion<T>>> for DualQuaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = DualQuaternion<T>
pub fn mul(
self,
rhs: Unit<DualQuaternion<T>>
) -> <DualQuaternion<T> as Mul<Unit<DualQuaternion<T>>>>::Output
impl<'a, 'b, T, const D: usize> Mul<&'b Point<T, D>> for &'a Translation<T, D> where
T: ClosedAdd<T> + Scalar,
ShapeConstraint: SameNumberOfRows<Const<D>, Const<D>>,
ShapeConstraint: SameNumberOfColumns<Const<1_usize>, Const<1_usize>>,
<ShapeConstraint as SameNumberOfRows<Const<D>, Const<D>>>::Representative == Const<D>,
<ShapeConstraint as SameNumberOfColumns<Const<1_usize>, Const<1_usize>>>::Representative == Const<1_usize>,
impl<'a, 'b, T, const D: usize> Mul<&'b Point<T, D>> for &'a Translation<T, D> where
T: ClosedAdd<T> + Scalar,
ShapeConstraint: SameNumberOfRows<Const<D>, Const<D>>,
ShapeConstraint: SameNumberOfColumns<Const<1_usize>, Const<1_usize>>,
<ShapeConstraint as SameNumberOfRows<Const<D>, Const<D>>>::Representative == Const<D>,
<ShapeConstraint as SameNumberOfColumns<Const<1_usize>, Const<1_usize>>>::Representative == Const<1_usize>,
impl<T, R, const D: usize> Mul<Translation<T, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<Translation<T, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
pub fn mul(
self,
right: Translation<T, D>
) -> <Similarity<T, R, D> as Mul<Translation<T, D>>>::Output
impl<'b, T, C> Mul<&'b Unit<Quaternion<T>>> for Transform<T, C, 3_usize> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
impl<'b, T, C> Mul<&'b Unit<Quaternion<T>>> for Transform<T, C, 3_usize> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
pub fn mul(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <Transform<T, C, 3_usize> as Mul<&'b Unit<Quaternion<T>>>>::Output
impl<T> Mul<Unit<Quaternion<T>>> for Translation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Unit<Quaternion<T>>> for Translation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
right: Unit<Quaternion<T>>
) -> <Translation<T, 3_usize> as Mul<Unit<Quaternion<T>>>>::Output
impl<'b, T> Mul<&'b Unit<DualQuaternion<T>>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Unit<DualQuaternion<T>>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: &'b Unit<DualQuaternion<T>>
) -> <Unit<Quaternion<T>> as Mul<&'b Unit<DualQuaternion<T>>>>::Output
type Output = Similarity<T, Rotation<T, D>, D>
pub fn mul(
self,
right: Similarity<T, Rotation<T, D>, D>
) -> <Rotation<T, D> as Mul<Similarity<T, Rotation<T, D>, D>>>::Output
impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for &'a Isometry<T, R, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for &'a Isometry<T, R, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
pub fn mul(
self,
rhs: &'b Similarity<T, R, D>
) -> <&'a Similarity<T, R, D> as Mul<&'b Similarity<T, R, D>>>::Output
impl<'a, T, R1, C1, SA, const D2: usize> Mul<Rotation<T, D2>> for &'a Matrix<T, R1, C1, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
R1: Dim,
C1: Dim,
SA: Storage<T, R1, C1>,
DefaultAllocator: Allocator<T, R1, Const<D2>>,
ShapeConstraint: AreMultipliable<R1, C1, Const<D2>, Const<D2>>,
impl<'a, T, R1, C1, SA, const D2: usize> Mul<Rotation<T, D2>> for &'a Matrix<T, R1, C1, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
R1: Dim,
C1: Dim,
SA: Storage<T, R1, C1>,
DefaultAllocator: Allocator<T, R1, Const<D2>>,
ShapeConstraint: AreMultipliable<R1, C1, Const<D2>, Const<D2>>,
impl<T, R, const D: usize> Mul<Similarity<T, R, D>> for Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<Similarity<T, R, D>> for Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
pub fn mul(
self,
right: Similarity<T, R, D>
) -> <Translation<T, D> as Mul<Similarity<T, R, D>>>::Output
impl<'a, 'b, T> Mul<&'b Quaternion<T>> for &'a Quaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Quaternion<T>> for &'a Quaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Quaternion<T>
pub fn mul(
self,
rhs: &'b Quaternion<T>
) -> <&'a Quaternion<T> as Mul<&'b Quaternion<T>>>::Output
impl<'b, T> Mul<&'b Unit<DualQuaternion<T>>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Unit<DualQuaternion<T>>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: &'b Unit<DualQuaternion<T>>
) -> <Unit<DualQuaternion<T>> as Mul<&'b Unit<DualQuaternion<T>>>>::Output
impl<'b, T, const D: usize> Mul<&'b Translation<T, D>> for Translation<T, D> where
T: ClosedAdd<T> + Scalar,
ShapeConstraint: SameNumberOfRows<Const<D>, Const<D>>,
ShapeConstraint: SameNumberOfColumns<Const<1_usize>, Const<1_usize>>,
<ShapeConstraint as SameNumberOfRows<Const<D>, Const<D>>>::Representative == Const<D>,
<ShapeConstraint as SameNumberOfColumns<Const<1_usize>, Const<1_usize>>>::Representative == Const<1_usize>,
impl<'b, T, const D: usize> Mul<&'b Translation<T, D>> for Translation<T, D> where
T: ClosedAdd<T> + Scalar,
ShapeConstraint: SameNumberOfRows<Const<D>, Const<D>>,
ShapeConstraint: SameNumberOfColumns<Const<1_usize>, Const<1_usize>>,
<ShapeConstraint as SameNumberOfRows<Const<D>, Const<D>>>::Representative == Const<D>,
<ShapeConstraint as SameNumberOfColumns<Const<1_usize>, Const<1_usize>>>::Representative == Const<1_usize>,
type Output = Translation<T, D>
pub fn mul(
self,
right: &'b Translation<T, D>
) -> <Translation<T, D> as Mul<&'b Translation<T, D>>>::Output
impl<'a, T> Mul<Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: Unit<DualQuaternion<T>>
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<Unit<DualQuaternion<T>>>>::Output
impl<'b, T> Mul<&'b Unit<Quaternion<T>>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Unit<Quaternion<T>>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<Quaternion<T>>
pub fn mul(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <Unit<Quaternion<T>> as Mul<&'b Unit<Quaternion<T>>>>::Output
impl<T> Mul<Point<T, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Point<T, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, C> Mul<Transform<T, C, 3_usize>> for &'a Unit<Quaternion<T>> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
impl<'a, T, C> Mul<Transform<T, C, 3_usize>> for &'a Unit<Quaternion<T>> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
impl<'a, 'b, T, R1, C1, SA, const D2: usize> Mul<&'b Rotation<T, D2>> for &'a Matrix<T, R1, C1, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
R1: Dim,
C1: Dim,
SA: Storage<T, R1, C1>,
DefaultAllocator: Allocator<T, R1, Const<D2>>,
ShapeConstraint: AreMultipliable<R1, C1, Const<D2>, Const<D2>>,
impl<'a, 'b, T, R1, C1, SA, const D2: usize> Mul<&'b Rotation<T, D2>> for &'a Matrix<T, R1, C1, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
R1: Dim,
C1: Dim,
SA: Storage<T, R1, C1>,
DefaultAllocator: Allocator<T, R1, Const<D2>>,
ShapeConstraint: AreMultipliable<R1, C1, Const<D2>, Const<D2>>,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Translation<T, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Translation<T, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
pub fn mul(
self,
right: &'b Translation<T, D>
) -> <&'a Similarity<T, R, D> as Mul<&'b Translation<T, D>>>::Output
impl<'a, T> Mul<Unit<Quaternion<T>>> for &'a Similarity<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Unit<Quaternion<T>>> for &'a Similarity<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
rhs: Unit<Quaternion<T>>
) -> <&'a Similarity<T, Unit<Quaternion<T>>, 3_usize> as Mul<Unit<Quaternion<T>>>>::Output
impl<'a, 'b, T, C, const D: usize> Mul<&'b Point<T, D>> for &'a Transform<T, C, D> where
C: TCategory,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, const D: usize> Mul<&'b Point<T, D>> for &'a Transform<T, C, D> where
C: TCategory,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T> Mul<Translation<T, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Translation<T, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
right: Translation<T, 3_usize>
) -> <Unit<Quaternion<T>> as Mul<Translation<T, 3_usize>>>::Output
impl<'b, T, const D: usize> Mul<&'b Translation<T, D>> for Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, const D: usize> Mul<&'b Translation<T, D>> for Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
pub fn mul(
self,
right: &'b Translation<T, D>
) -> <Rotation<T, D> as Mul<&'b Translation<T, D>>>::Output
impl<'a, 'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
pub fn mul(
self,
rhs: &'b Similarity<T, R, D>
) -> <&'a Isometry<T, R, D> as Mul<&'b Similarity<T, R, D>>>::Output
impl<'a, T> Mul<Point<T, 3_usize>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Point<T, 3_usize>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T, C, const D: usize> Mul<Transform<T, C, D>> for Translation<T, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Mul<Transform<T, C, D>> for Translation<T, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
impl<T, SA, const D2: usize, const R1: usize, const C1: usize> Mul<Point<T, D2>> for Matrix<T, Const<R1>, Const<C1>, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
SA: Storage<T, Const<R1>, Const<C1>>,
ShapeConstraint: AreMultipliable<Const<R1>, Const<C1>, Const<D2>, Const<1_usize>>,
impl<T, SA, const D2: usize, const R1: usize, const C1: usize> Mul<Point<T, D2>> for Matrix<T, Const<R1>, Const<C1>, SA> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T>,
SA: Storage<T, Const<R1>, Const<C1>>,
ShapeConstraint: AreMultipliable<Const<R1>, Const<C1>, Const<D2>, Const<1_usize>>,
impl<'a, T> Mul<Unit<DualQuaternion<T>>> for &'a Translation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Unit<DualQuaternion<T>>> for &'a Translation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: Unit<DualQuaternion<T>>
) -> <&'a Translation<T, 3_usize> as Mul<Unit<DualQuaternion<T>>>>::Output
impl<'b, T> Mul<&'b Unit<DualQuaternion<T>>> for DualQuaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Unit<DualQuaternion<T>>> for DualQuaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = DualQuaternion<T>
pub fn mul(
self,
rhs: &'b Unit<DualQuaternion<T>>
) -> <DualQuaternion<T> as Mul<&'b Unit<DualQuaternion<T>>>>::Output
impl<'a, 'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<DualQuaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
impl<T, C, const D: usize> Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for Transform<T, C, D> where
C: TCategory,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for Transform<T, C, D> where
C: TCategory,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Mul<Point<T, D>> for Transform<T, C, D> where
C: TCategory,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Mul<Point<T, D>> for Transform<T, C, D> where
C: TCategory,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Quaternion<f32>
impl<'a, 'b, T> Mul<&'b Unit<Quaternion<T>>> for &'a Translation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Unit<Quaternion<T>>> for &'a Translation<T, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
pub fn mul(
self,
right: &'b Unit<Quaternion<T>>
) -> <&'a Translation<T, 3_usize> as Mul<&'b Unit<Quaternion<T>>>>::Output
impl<'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
pub fn mul(
self,
rhs: &'b Similarity<T, R, D>
) -> <Similarity<T, R, D> as Mul<&'b Similarity<T, R, D>>>::Output
impl<'a, 'b, T> Mul<&'b Unit<DualQuaternion<T>>> for &'a DualQuaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Unit<DualQuaternion<T>>> for &'a DualQuaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = DualQuaternion<T>
pub fn mul(
self,
rhs: &'b Unit<DualQuaternion<T>>
) -> <&'a DualQuaternion<T> as Mul<&'b Unit<DualQuaternion<T>>>>::Output
impl<'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for Similarity<T, R, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for Similarity<T, R, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
impl<'a, 'b, T> Mul<&'b Unit<DualQuaternion<T>>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Unit<DualQuaternion<T>>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
pub fn mul(
self,
rhs: &'b Unit<DualQuaternion<T>>
) -> <&'a Unit<Quaternion<T>> as Mul<&'b Unit<DualQuaternion<T>>>>::Output
impl<'b, T, C, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, R, const D: usize> Mul<Point<T, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<Point<T, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Unit<Complex<T>>> for Translation<T, 2_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Unit<Complex<T>>> for Translation<T, 2_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Transform<T, C, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Mul<Transform<T, C, D>> for &'a Rotation<T, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Mul<Transform<T, C, D>> for &'a Rotation<T, D> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C> Mul<&'b Transform<T, C, 3_usize>> for &'a Unit<Quaternion<T>> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
impl<'a, 'b, T, C> Mul<&'b Transform<T, C, 3_usize>> for &'a Unit<Quaternion<T>> where
C: TCategoryMul<TAffine>,
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
impl<T> Mul<DualQuaternion<T>> for DualQuaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<DualQuaternion<T>> for DualQuaternion<T> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = DualQuaternion<T>
pub fn mul(
self,
rhs: DualQuaternion<T>
) -> <DualQuaternion<T> as Mul<DualQuaternion<T>>>::Output
impl<U> Mul<Z0> for NInt<U> where
U: Unsigned + NonZero,
impl<U> Mul<Z0> for NInt<U> where
U: Unsigned + NonZero,
N * Z0 = Z0
P(Ul) * N(Ur) = N(Ul * Ur)
impl<U> Mul<U> for UTerm where
U: Unsigned,
impl<U> Mul<U> for UTerm where
U: Unsigned,
UTerm * U = UTerm
impl<U, B> Mul<UTerm> for UInt<U, B> where
U: Unsigned,
B: Bit,
impl<U, B> Mul<UTerm> for UInt<U, B> where
U: Unsigned,
B: Bit,
UInt<U, B> * UTerm = UTerm
impl<U> Mul<Z0> for PInt<U> where
U: Unsigned + NonZero,
impl<U> Mul<Z0> for PInt<U> where
U: Unsigned + NonZero,
P * Z0 = Z0
impl<U> Mul<ATerm> for NInt<U> where
U: Unsigned + NonZero,
impl<U> Mul<ATerm> for NInt<U> where
U: Unsigned + NonZero,
UInt<Ul, B1> * UInt<Ur, B> = UInt<(Ul * UInt<Ur, B>), B0> + UInt<Ur, B>
impl Mul<B1> for UTerm
impl Mul<B1> for UTerm
UTerm * B1 = UTerm
P(Ul) * P(Ur) = P(Ul * Ur)
impl<U, B> Mul<B1> for UInt<U, B> where
U: Unsigned,
B: Bit,
impl<U, B> Mul<B1> for UInt<U, B> where
U: Unsigned,
B: Bit,
UInt * B1 = UInt
impl Mul<B0> for UTerm
impl Mul<B0> for UTerm
UTerm * B0 = UTerm
UInt<Ul, B0> * UInt<Ur, B> = UInt<(Ul * UInt<Ur, B>), B0>
N(Ul) * P(Ur) = N(Ul * Ur)
impl<I> Mul<I> for Z0 where
I: Integer,
impl<I> Mul<I> for Z0 where
I: Integer,
Z0 * I = Z0
impl<U> Mul<ATerm> for PInt<U> where
U: Unsigned + NonZero,
impl<U> Mul<ATerm> for PInt<U> where
U: Unsigned + NonZero,
impl<U, B> Mul<B0> for UInt<U, B> where
U: Unsigned,
B: Bit,
impl<U, B> Mul<B0> for UInt<U, B> where
U: Unsigned,
B: Bit,
UInt * B0 = UTerm
N(Ul) * N(Ur) = P(Ul * Ur)