[][src]Struct ndarray_einsum_beta::contractors::pair_contractors::TensordotGeneral

pub struct TensordotGeneral {
    lhs_permutation: Permutation,
    rhs_permutation: Permutation,
    tensordot_fixed_position: TensordotFixedPosition,
    output_permutation: Permutation,
}

Computes the tensor dot product of two tensors, with individual permutations of the LHS and RHS performed as necessary, as well as a final permutation of the output.

Examples that qualify for TensordotGeneral but not TensordotFixedPosition:

  1. jik,jkl->il LHS tensor needs to be permuted jik->ijk
  2. ijk,klm->imlj Output tensor needs to be permuted ijlm->imlj

Fields

lhs_permutation: Permutationrhs_permutation: Permutationtensordot_fixed_position: TensordotFixedPositionoutput_permutation: Permutation

Methods

impl TensordotGeneral[src]

pub fn new(sc: &SizedContraction) -> Self[src]

fn from_shapes_and_indices(
    lhs_shape: &[usize],
    rhs_shape: &[usize],
    lhs_indices: &[char],
    rhs_indices: &[char],
    contracted_indices: &[char],
    output_indices: &[char]
) -> Self
[src]

pub fn from_shapes_and_axis_numbers(
    lhs_shape: &[usize],
    rhs_shape: &[usize],
    lhs_axes: &[usize],
    rhs_axes: &[usize],
    output_order: &[usize]
) -> Self
[src]

Produces a TensordotGeneral from the shapes and list of axes to be contracted.

Wrapped by the public tensordot function and used by TensordotGeneral::new(). lhs_axes lists the axes from the lhs tensor to contract and rhs_axes lists the axes from the rhs tensor to contract.

Trait Implementations

impl<A> PairContractor<A> for TensordotGeneral[src]

fn contract_and_assign_pair<'a, 'b, 'c, 'd, 'e, 'f>(
    &self,
    lhs: &'b ArrayViewD<'a, A>,
    rhs: &'d ArrayViewD<'c, A>,
    out: &'f mut ArrayViewMutD<'e, A>
) where
    'a: 'b,
    'c: 'd,
    'e: 'f,
    A: Clone + LinalgScalar
[src]

impl Clone for TensordotGeneral[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for TensordotGeneral[src]

Auto Trait Implementations

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]