[][src]Trait diffgeom::tensors::InnerProduct

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

Loading content...

Required methods

fn inner_product(self, rhs: Rhs) -> Self::Output

Loading content...

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>, 
[src]

type Output = Tensor<T, Contracted<Joined<U, V>, Ul, Uh>>

Loading content...