Trait diffgeom::tensors::InnerProduct
[−]
[src]
pub trait InnerProduct<Rhs, Ul: Unsigned, Uh: Unsigned> { type Output; fn inner_product(self, rhs: Rhs) -> Self::Output; }
Trait representing the inner product of two tensors.
The inner product is just a multiplication followed by a contraction.
The contraction is defined by type parameters Ul and Uh. Ul has to
be less than Uh and the indices at those positions must be of opposite types
(checked at compile time)
Associated Types
type Output
Required Methods
fn inner_product(self, rhs: Rhs) -> Self::Output
Implementors
impl<T, U, V, Ul, Uh> InnerProduct<Tensor<T, V>, Ul, Uh> for Tensor<T, U> where
T: CoordinateSystem,
U: Variance,
V: Variance,
Ul: Unsigned,
Uh: Unsigned,
T::Dimension: Pow<U::Rank> + Pow<V::Rank>,
Exp<T::Dimension, U::Rank>: ArrayLength<f64>,
Exp<T::Dimension, V::Rank>: ArrayLength<f64>,
U: Concat<V>,
Joined<U, V>: Contract<Ul, Uh>,
<Contracted<Joined<U, V>, Ul, Uh> as Variance>::Rank: ArrayLength<usize>,
T::Dimension: Pow<<Contracted<Joined<U, V>, Ul, Uh> as Variance>::Rank>,
Exp<T::Dimension, <Contracted<Joined<U, V>, Ul, Uh> as Variance>::Rank>: ArrayLength<f64>,