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>, Power<T::Dimension, U::Rank>: ArrayLength<f64>, Power<T::Dimension, V::Rank>: ArrayLength<f64>, U: Concat<V>, Joined<U, V>: Contract<Ul, Uh>, Contracted<Joined<U, V>, Ul, Uh>::Rank: ArrayLength<usize>, T::Dimension: Pow<Contracted<Joined<U, V>, Ul, Uh>::Rank>, Power<T::Dimension, Contracted<Joined<U, V>, Ul, Uh>::Rank>: ArrayLength<f64>