Skip to main content

TensorRank4

Struct TensorRank4 

Source
pub struct TensorRank4<const D: usize, I, J, K, L, U = Dimensionless>(/* private fields */);
Expand description

A d-dimensional tensor of rank 4.

D is the dimension, I, J, K, L are the configurations.

Implementations§

Source§

impl<const D: usize, I, J, K, L, U> TensorRank4<D, I, J, K, L, U>

Source

pub fn with_unit<V>(self) -> TensorRank4<D, I, J, K, L, V>

Source§

impl<const D: usize, I, J, K, L, U> TensorRank4<D, I, J, K, L, U>

Source

pub fn dyad_ij_kl<U1, U2>( tensor_rank_2_a: &TensorRank2<D, I, J, U1>, tensor_rank_2_b: &TensorRank2<D, K, L, U2>, ) -> Self
where U1: UnitMul<U2, Output = U>,

Source

pub fn dyad_ik_jl<U1, U2>( tensor_rank_2_a: &TensorRank2<D, I, K, U1>, tensor_rank_2_b: &TensorRank2<D, J, L, U2>, ) -> Self
where U1: UnitMul<U2, Output = U>,

Source

pub fn dyad_il_jk<U1, U2>( tensor_rank_2_a: &TensorRank2<D, I, L, U1>, tensor_rank_2_b: &TensorRank2<D, J, K, U2>, ) -> Self
where U1: UnitMul<U2, Output = U>,

Source

pub fn dyad_il_kj<U1, U2>( tensor_rank_2_a: &TensorRank2<D, I, L, U1>, tensor_rank_2_b: &TensorRank2<D, K, J, U2>, ) -> Self
where U1: UnitMul<U2, Output = U>,

Trait Implementations§

Source§

impl<const D: usize, I, J, K, L, U> Add<&TensorRank4<D, I, J, K, L, U>> for TensorRank4<D, I, J, K, L, U>

Source§

type Output = TensorRank4<D, I, J, K, L, U>

The resulting type after applying the + operator.
Source§

fn add(self, tensor_rank_4: &Self) -> Self::Output

Performs the + operation. Read more
Source§

impl<const D: usize, I, J, K, L, U> Add<TensorRank4<D, I, J, K, L, U>> for &TensorRank4<D, I, J, K, L, U>

Source§

type Output = TensorRank4<D, I, J, K, L, U>

The resulting type after applying the + operator.
Source§

fn add(self, tensor_rank_4: TensorRank4<D, I, J, K, L, U>) -> Self::Output

Performs the + operation. Read more
Source§

impl<const D: usize, I, J, K, L, U> Add for TensorRank4<D, I, J, K, L, U>

Source§

type Output = TensorRank4<D, I, J, K, L, U>

The resulting type after applying the + operator.
Source§

fn add(self, tensor_rank_4: Self) -> Self::Output

Performs the + operation. Read more
Source§

impl<const D: usize, I, J, K, L, U> AddAssign<&TensorRank4<D, I, J, K, L, U>> for TensorRank4<D, I, J, K, L, U>

Source§

fn add_assign(&mut self, tensor_rank_4: &Self)

Performs the += operation. Read more
Source§

impl<const D: usize, I, J, K, L, U> AddAssign for TensorRank4<D, I, J, K, L, U>

Source§

fn add_assign(&mut self, tensor_rank_4: Self)

Performs the += operation. Read more
Source§

impl<const D: usize, I, J, K, L> AssertEq for TensorRank4<D, I, J, K, L>

Source§

fn eq(a: Self, b: TensorRank4<D, I, J, K, L>) -> Result<(), AssertionError>

Source§

fn eq_within_tols( tols: &Assert, a: Self, b: TensorRank4<D, I, J, K, L>, ) -> Result<(), AssertionError>

Source§

impl<const D: usize, I, J, K, L> AssertFd for TensorRank4<D, I, J, K, L>

Source§

fn eq_within_fd_tol( tols: &Assert, a: Self, b: TensorRank4<D, I, J, K, L>, ) -> Result<(), AssertionError>

Source§

impl<const D: usize, I, J, K, L, U> Clone for TensorRank4<D, I, J, K, L, U>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<const D: usize, I, J, K, L, M, N, O, P, U> ContractAllWithFirst<&TensorRank2<D, I, M>, &TensorRank2<D, J, N>, &TensorRank2<D, K, O>, &TensorRank2<D, L, P>> for TensorRank4<D, I, J, K, L, U>

Source§

type Output = TensorRank4<D, M, N, O, P, U>

Source§

fn contract_all_with_first( self, tensor_rank_2_a: &TensorRank2<D, I, M, Dimensionless>, tensor_rank_2_b: &TensorRank2<D, J, N, Dimensionless>, tensor_rank_2_c: &TensorRank2<D, K, O, Dimensionless>, tensor_rank_2_d: &TensorRank2<D, L, P, Dimensionless>, ) -> Self::Output

Source§

impl<const D: usize, I, J, K, L, M, N, U> ContractFirstSecondWithSecond<&TensorRank2<D, I, M>, &TensorRank2<D, J, N>> for TensorRank4<D, M, N, K, L, U>

Source§

type Output = TensorRank4<D, I, J, K, L, U>

Source§

fn contract_first_second_with_second( self, tensor_rank_2_a: &TensorRank2<D, I, M, Dimensionless>, tensor_rank_2_b: &TensorRank2<D, J, N, Dimensionless>, ) -> Self::Output

Source§

impl<const D: usize, I, J, K, L, M, O, P, U> ContractFirstThirdFourthWithFirst<&TensorRank2<D, I, M>, &TensorRank2<D, K, O>, &TensorRank2<D, L, P>> for TensorRank4<D, I, J, K, L, U>

Source§

type Output = TensorRank4<D, M, J, O, P, U>

Source§

fn contract_first_third_fourth_with_first( self, tensor_rank_2_a: &TensorRank2<D, I, M, Dimensionless>, tensor_rank_2_b: &TensorRank2<D, K, O, Dimensionless>, tensor_rank_2_c: &TensorRank2<D, L, P, Dimensionless>, ) -> Self::Output

Source§

impl<const D: usize, I, J, K, L, U, V, W> ContractSecondFourthWithFirst<&TensorRank1<D, J, V>, &TensorRank1<D, L, W>> for TensorRank4<D, I, J, K, L, U>
where U: UnitMul<V>, <U as UnitMul<V>>::Output: UnitMul<W>,

Source§

type Output = TensorRank2<D, I, K, <<U as UnitMul<V>>::Output as UnitMul<W>>::Output>

Source§

fn contract_second_fourth_with_first( &self, tensor_rank_1_a: &TensorRank1<D, J, V>, tensor_rank_1_b: &TensorRank1<D, L, W>, ) -> Self::Output

Source§

impl<const D: usize, I, J, K, L, N, U> ContractSecondWithFirst<&TensorRank2<D, J, N>> for TensorRank4<D, I, J, K, L, U>

Source§

type Output = TensorRank4<D, I, N, K, L, U>

Source§

fn contract_second_with_first( self, tensor_rank_2: &TensorRank2<D, J, N, Dimensionless>, ) -> Self::Output

Source§

impl<const D: usize, I, J, K, L, U, V> ContractThirdFourthWithFirstSecond<&TensorRank2<D, K, L, V>> for TensorRank4<D, I, J, K, L, U>
where U: UnitMul<V>,

Source§

type Output = TensorRank2<D, I, J, <U as UnitMul<V>>::Output>

Source§

fn contract_third_fourth_with_first_second( self, tensor_rank_2: &TensorRank2<D, K, L, V>, ) -> Self::Output

Source§

impl<const D: usize, I, J, K, L, M, N, U, V> ContractThirdFourthWithFirstSecond<&TensorRank4<D, K, L, M, N, V>> for TensorRank4<D, I, J, K, L, U>
where U: UnitMul<V>,

Source§

type Output = TensorRank4<D, I, J, M, N, <U as UnitMul<V>>::Output>

Source§

fn contract_third_fourth_with_first_second( self, tensor: &TensorRank4<D, K, L, M, N, V>, ) -> Self::Output

Source§

impl<const D: usize, I, J, K, L, M, U> ContractThirdWithFirst<&TensorRank2<D, M, K>> for TensorRank4<D, I, J, M, L, U>

Source§

type Output = TensorRank4<D, I, J, K, L, U>

Source§

fn contract_third_with_first( &self, tensor_rank_2: &TensorRank2<D, M, K, Dimensionless>, ) -> Self::Output

Source§

impl<const D: usize, I, J, K, L, U> Debug for TensorRank4<D, I, J, K, L, U>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<const D: usize, I, J, K, L, U> Default for TensorRank4<D, I, J, K, L, U>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<const D: usize, I, J, K, L, U, T> Differentiate<T> for TensorRank4<D, I, J, K, L, U>
where U: UnitDiv<T>,

Source§

type Derivative = TensorRank4<D, I, J, K, L, <U as UnitDiv<T>>::Output>

The derivative with respect to the variable of integration.
Source§

impl<const D: usize, I, J, K, L, U> Display for TensorRank4<D, I, J, K, L, U>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<const D: usize, I, J, K, L, U> Div<&f64> for TensorRank4<D, I, J, K, L, U>

Source§

type Output = TensorRank4<D, I, J, K, L, U>

The resulting type after applying the / operator.
Source§

fn div(self, tensor_rank_0: &TensorRank0) -> Self::Output

Performs the / operation. Read more
Source§

impl<const D: usize, I, J, K, L, U, V> Div<Quantity<V>> for TensorRank4<D, I, J, K, L, U>
where U: UnitDiv<V>,

Source§

type Output = TensorRank4<D, I, J, K, L, <U as UnitDiv<V>>::Output>

The resulting type after applying the / operator.
Source§

fn div(self, quantity: Quantity<V>) -> Self::Output

Performs the / operation. Read more
Source§

impl<I, J, K, L, U, V> Div<TensorRank4<3, I, J, K, L, V>> for &TensorRank2<3, I, J, U>
where U: UnitDiv<V>,

Source§

type Output = TensorRank2<3, K, L, <U as UnitDiv<V>>::Output>

The resulting type after applying the / operator.
Source§

fn div(self, tensor_rank_4: TensorRank4<3, I, J, K, L, V>) -> Self::Output

Performs the / operation. Read more
Source§

impl<const D: usize, I, J, K, L, U> Div<f64> for &TensorRank4<D, I, J, K, L, U>

Source§

type Output = TensorRank4<D, I, J, K, L, U>

The resulting type after applying the / operator.
Source§

fn div(self, tensor_rank_0: TensorRank0) -> Self::Output

Performs the / operation. Read more
Source§

impl<const D: usize, I, J, K, L, U> Div<f64> for TensorRank4<D, I, J, K, L, U>

Source§

type Output = TensorRank4<D, I, J, K, L, U>

The resulting type after applying the / operator.
Source§

fn div(self, tensor_rank_0: TensorRank0) -> Self::Output

Performs the / operation. Read more
Source§

impl<const D: usize, I, J, K, L, U> DivAssign<&f64> for TensorRank4<D, I, J, K, L, U>

Source§

fn div_assign(&mut self, tensor_rank_0: &TensorRank0)

Performs the /= operation. Read more
Source§

impl<const D: usize, I, J, K, L, U> DivAssign<f64> for TensorRank4<D, I, J, K, L, U>

Source§

fn div_assign(&mut self, tensor_rank_0: TensorRank0)

Performs the /= operation. Read more
Source§

impl<const D: usize, I, J, K, L, U> Erase for TensorRank4<D, I, J, K, L, U>

Source§

type Erased = TensorRank4<D, Reference, Reference, Reference, Reference>

The tensor with its configurations and unit discarded.
Source§

fn erase(&self) -> &Self::Erased

Views the tensor with its configurations and unit discarded.
Source§

impl<const D: usize, I, J, K, L, U> FiniteDifference for TensorRank4<D, I, J, K, L, U>

Source§

fn error_fd( &self, comparator: &Self, epsilon: TensorRank0, ) -> Option<(bool, usize)>

Source§

impl<const D: usize, I, J, K, L, U> From<&TensorRank4<D, I, J, K, L, U>> for TensorRank2<9, Factor, Flattened, U>

Source§

fn from(tensor_rank_4: &TensorRank4<D, I, J, K, L, U>) -> Self

Converts to this type from the input type.
Source§

impl<const D: usize, I, J, K, L, U> From<[[[[f64; D]; D]; D]; D]> for TensorRank4<D, I, J, K, L, U>

Source§

fn from(array: [[[[TensorRank0; D]; D]; D]; D]) -> Self

Converts to this type from the input type.
Source§

impl<J, L, U> From<TensorRank4<3, Current, J, Current, L, U>> for TensorRank4<3, Intermediate, J, Intermediate, L, U>

Source§

fn from(tensor_rank_4: TensorRank4<3, Current, J, Current, L, U>) -> Self

Converts to this type from the input type.
Source§

impl<I, J, K, U> From<TensorRank4<3, I, J, K, Reference, U>> for TensorRank4<3, I, J, K, Intermediate, U>

Source§

fn from(tensor_rank_4: TensorRank4<3, I, J, K, Reference, U>) -> Self

Converts to this type from the input type.
Source§

impl<I, K, U> From<TensorRank4<3, I, Reference, K, Reference, U>> for TensorRank4<3, I, Intermediate, K, Intermediate, U>

Source§

fn from(tensor_rank_4: TensorRank4<3, I, Reference, K, Reference, U>) -> Self

Converts to this type from the input type.
Source§

impl<K, U> From<TensorRank4<3, Reference, Reference, K, Reference, U>> for TensorRank4<3, Intermediate, Intermediate, K, Intermediate, U>

Source§

fn from( tensor_rank_4: TensorRank4<3, Reference, Reference, K, Reference, U>, ) -> Self

Converts to this type from the input type.
Source§

impl<const D: usize, I, J, K, L, U> From<TensorRank4<D, I, J, K, L, U>> for TensorRank2<9, Factor, Flattened, U>

Source§

fn from(tensor_rank_4: TensorRank4<D, I, J, K, L, U>) -> Self

Converts to this type from the input type.
Source§

impl<const D: usize, I, J, K, L, U> From<TensorRank4<D, I, J, K, L, U>> for Vec<Vec<Vec<Vec<TensorRank0>>>>

Source§

fn from(tensor_rank_4: TensorRank4<D, I, J, K, L, U>) -> Self

Converts to this type from the input type.
Source§

impl<const D: usize, I, J, K, L, U> From<TensorRank4<D, I, J, K, L, U>> for Vec<TensorRank0>

Source§

fn from(tensor_rank_4: TensorRank4<D, I, J, K, L, U>) -> Self

Converts to this type from the input type.
Source§

impl<const D: usize, I, J, K, L, U> From<TensorRank4<D, I, J, K, L, U>> for Vector

Source§

fn from(tensor_rank_4: TensorRank4<D, I, J, K, L, U>) -> Self

Converts to this type from the input type.
Source§

impl<const D: usize, I, J, K, L, U> From<Vec<Vec<Vec<Vec<f64>>>>> for TensorRank4<D, I, J, K, L, U>

Source§

fn from(vec_rank_4: Vec<Vec<Vec<Vec<TensorRank0>>>>) -> Self

Converts to this type from the input type.
Source§

impl<const D: usize, I, J, K, L, U> FromIterator<TensorRank3<D, J, K, L, U>> for TensorRank4<D, I, J, K, L, U>

Source§

fn from_iter<Ii: IntoIterator<Item = TensorRank3<D, J, K, L, U>>>( into_iterator: Ii, ) -> Self

Creates a value from an iterator. Read more
Source§

impl<const D: usize, I, J, K, L, U> Hessian for TensorRank4<D, I, J, K, L, U>

Source§

fn entry(&self, row: usize, column: usize) -> TensorRank0

The entry at the given (row, column) position.
Source§

fn quadratic_form(&self, vector: &Vector) -> TensorRank0

The quadratic form of the Hessian with a vector. Read more
Source§

fn fill_into(self, square_matrix: &mut SquareMatrix)

Fills the Hessian into a square matrix.
Source§

fn retain_from(self, retained: &[bool]) -> SquareMatrix

Return only the retained indices.
Source§

impl<const D: usize, I, J, K, L, U> HessianBlock for TensorRank4<D, I, J, K, L, U>

Source§

fn entry(&self, row: usize, column: usize) -> TensorRank0

The entry of the block at the given row and column within it.
Source§

fn height(&self) -> usize

The number of rows the block occupies.
Source§

fn width(&self) -> usize

The number of columns the block occupies.
Source§

fn fill_into_block<M>(&self, matrix: &mut M, row: usize, column: usize)
where M: IndexMut<usize, Output = Vector>,

Fills the block into a matrix at the given row and column offsets.
Source§

impl<const D: usize, I, J, K, L, U> Index<usize> for TensorRank4<D, I, J, K, L, U>

Source§

type Output = TensorRank3<D, J, K, L, U>

The returned type after indexing.
Source§

fn index(&self, index: usize) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
Source§

impl<const D: usize, I, J, K, L, U> IndexMut<usize> for TensorRank4<D, I, J, K, L, U>

Source§

fn index_mut(&mut self, index: usize) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
Source§

impl<const D: usize, I, J, K, L, U> IntoIterator for TensorRank4<D, I, J, K, L, U>

Source§

type Item = TensorRank3<D, J, K, L, U>

The type of the elements being iterated over.
Source§

type IntoIter = IntoIter<<TensorRank4<D, I, J, K, L, U> as IntoIterator>::Item, D>

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
Source§

impl<const D: usize, I, J, K, L, U, V> Mul<&Quantity<V>> for &TensorRank4<D, I, J, K, L, U>
where U: UnitMul<V>,

Source§

type Output = TensorRank4<D, I, J, K, L, <U as UnitMul<V>>::Output>

The resulting type after applying the * operator.
Source§

fn mul(self, quantity: &Quantity<V>) -> Self::Output

Performs the * operation. Read more
Source§

impl<const D: usize, I, J, K, L, U, V> Mul<&Quantity<V>> for TensorRank4<D, I, J, K, L, U>
where U: UnitMul<V>,

Source§

type Output = TensorRank4<D, I, J, K, L, <U as UnitMul<V>>::Output>

The resulting type after applying the * operator.
Source§

fn mul(self, quantity: &Quantity<V>) -> Self::Output

Performs the * operation. Read more
Source§

impl<const D: usize, I, J, K, L, M, U, V> Mul<&TensorRank2<D, L, M, V>> for TensorRank4<D, I, J, K, L, U>
where U: UnitMul<V>,

Source§

type Output = TensorRank4<D, I, J, K, M, <U as UnitMul<V>>::Output>

The resulting type after applying the * operator.
Source§

fn mul(self, tensor_rank_2: &TensorRank2<D, L, M, V>) -> Self::Output

Performs the * operation. Read more
Source§

impl<const D: usize, J, K, L, M, U, V> Mul<&TensorRank4<D, M, J, K, L, V>> for &TensorRank1<D, M, U>
where U: UnitMul<V>,

Source§

type Output = TensorRank3<D, J, K, L, <U as UnitMul<V>>::Output>

The resulting type after applying the * operator.
Source§

fn mul(self, tensor_rank_4: &TensorRank4<D, M, J, K, L, V>) -> Self::Output

Performs the * operation. Read more
Source§

impl<const D: usize, I, J, K, L, M, U, V> Mul<&TensorRank4<D, M, J, K, L, V>> for &TensorRank2<D, I, M, U>
where U: UnitMul<V>,

Source§

type Output = TensorRank4<D, I, J, K, L, <U as UnitMul<V>>::Output>

The resulting type after applying the * operator.
Source§

fn mul(self, tensor_rank_4: &TensorRank4<D, M, J, K, L, V>) -> Self::Output

Performs the * operation. Read more
Source§

impl<const D: usize, J, K, L, M, U, V> Mul<&TensorRank4<D, M, J, K, L, V>> for TensorRank1<D, M, U>
where U: UnitMul<V>,

Source§

type Output = TensorRank3<D, J, K, L, <U as UnitMul<V>>::Output>

The resulting type after applying the * operator.
Source§

fn mul(self, tensor_rank_4: &TensorRank4<D, M, J, K, L, V>) -> Self::Output

Performs the * operation. Read more
Source§

impl<const D: usize, I, J, K, L, M, U, V> Mul<&TensorRank4<D, M, J, K, L, V>> for TensorRank2<D, I, M, U>
where U: UnitMul<V>,

Source§

type Output = TensorRank4<D, I, J, K, L, <U as UnitMul<V>>::Output>

The resulting type after applying the * operator.
Source§

fn mul(self, tensor_rank_4: &TensorRank4<D, M, J, K, L, V>) -> Self::Output

Performs the * operation. Read more
Source§

impl<const D: usize, I, J, K, L, U> Mul<&f64> for TensorRank4<D, I, J, K, L, U>

Source§

type Output = TensorRank4<D, I, J, K, L, U>

The resulting type after applying the * operator.
Source§

fn mul(self, tensor_rank_0: &TensorRank0) -> Self::Output

Performs the * operation. Read more
Source§

impl<const D: usize, I, J, K, L, U, V> Mul<Quantity<V>> for &TensorRank4<D, I, J, K, L, U>
where U: UnitMul<V>,

Source§

type Output = TensorRank4<D, I, J, K, L, <U as UnitMul<V>>::Output>

The resulting type after applying the * operator.
Source§

fn mul(self, quantity: Quantity<V>) -> Self::Output

Performs the * operation. Read more
Source§

impl<const D: usize, I, J, K, L, U, V> Mul<Quantity<V>> for TensorRank4<D, I, J, K, L, U>
where U: UnitMul<V>,

Source§

type Output = TensorRank4<D, I, J, K, L, <U as UnitMul<V>>::Output>

The resulting type after applying the * operator.
Source§

fn mul(self, quantity: Quantity<V>) -> Self::Output

Performs the * operation. Read more
Source§

impl<const D: usize, I, J, K, L, M, U, V> Mul<TensorRank2<D, L, M, V>> for TensorRank4<D, I, J, K, L, U>
where U: UnitMul<V>,

Source§

type Output = TensorRank4<D, I, J, K, M, <U as UnitMul<V>>::Output>

The resulting type after applying the * operator.
Source§

fn mul(self, tensor_rank_2: TensorRank2<D, L, M, V>) -> Self::Output

Performs the * operation. Read more
Source§

impl<const D: usize, J, K, L, M, U, V> Mul<TensorRank4<D, M, J, K, L, V>> for &TensorRank1<D, M, U>
where U: UnitMul<V>,

Source§

type Output = TensorRank3<D, J, K, L, <U as UnitMul<V>>::Output>

The resulting type after applying the * operator.
Source§

fn mul(self, tensor_rank_4: TensorRank4<D, M, J, K, L, V>) -> Self::Output

Performs the * operation. Read more
Source§

impl<const D: usize, I, J, K, L, M, U, V> Mul<TensorRank4<D, M, J, K, L, V>> for &TensorRank2<D, I, M, U>
where U: UnitMul<V>,

Source§

type Output = TensorRank4<D, I, J, K, L, <U as UnitMul<V>>::Output>

The resulting type after applying the * operator.
Source§

fn mul(self, tensor_rank_4: TensorRank4<D, M, J, K, L, V>) -> Self::Output

Performs the * operation. Read more
Source§

impl<const D: usize, J, K, L, M, U, V> Mul<TensorRank4<D, M, J, K, L, V>> for TensorRank1<D, M, U>
where U: UnitMul<V>,

Source§

type Output = TensorRank3<D, J, K, L, <U as UnitMul<V>>::Output>

The resulting type after applying the * operator.
Source§

fn mul(self, tensor_rank_4: TensorRank4<D, M, J, K, L, V>) -> Self::Output

Performs the * operation. Read more
Source§

impl<const D: usize, I, J, K, L, M, U, V> Mul<TensorRank4<D, M, J, K, L, V>> for TensorRank2<D, I, M, U>
where U: UnitMul<V>,

Source§

type Output = TensorRank4<D, I, J, K, L, <U as UnitMul<V>>::Output>

The resulting type after applying the * operator.
Source§

fn mul(self, tensor_rank_4: TensorRank4<D, M, J, K, L, V>) -> Self::Output

Performs the * operation. Read more
Source§

impl<const D: usize, I, J, K, L, U> Mul<f64> for TensorRank4<D, I, J, K, L, U>

Source§

type Output = TensorRank4<D, I, J, K, L, U>

The resulting type after applying the * operator.
Source§

fn mul(self, tensor_rank_0: TensorRank0) -> Self::Output

Performs the * operation. Read more
Source§

impl<const D: usize, I, J, K, L, U> MulAssign<&f64> for TensorRank4<D, I, J, K, L, U>

Source§

fn mul_assign(&mut self, tensor_rank_0: &TensorRank0)

Performs the *= operation. Read more
Source§

impl<const D: usize, I, J, K, L, U> MulAssign<f64> for TensorRank4<D, I, J, K, L, U>

Source§

fn mul_assign(&mut self, tensor_rank_0: TensorRank0)

Performs the *= operation. Read more
Source§

impl<const D: usize, I, J, K, L, U> PartialEq for TensorRank4<D, I, J, K, L, U>

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<const D: usize, I, J, K, L, U> Sub<&TensorRank4<D, I, J, K, L, U>> for TensorRank4<D, I, J, K, L, U>

Source§

type Output = TensorRank4<D, I, J, K, L, U>

The resulting type after applying the - operator.
Source§

fn sub(self, tensor_rank_4: &Self) -> Self::Output

Performs the - operation. Read more
Source§

impl<const D: usize, I, J, K, L, U> Sub for &TensorRank4<D, I, J, K, L, U>

Source§

type Output = TensorRank4<D, I, J, K, L, U>

The resulting type after applying the - operator.
Source§

fn sub(self, tensor_rank_4: Self) -> Self::Output

Performs the - operation. Read more
Source§

impl<const D: usize, I, J, K, L, U> Sub for TensorRank4<D, I, J, K, L, U>

Source§

type Output = TensorRank4<D, I, J, K, L, U>

The resulting type after applying the - operator.
Source§

fn sub(self, tensor_rank_4: Self) -> Self::Output

Performs the - operation. Read more
Source§

impl<const D: usize, I, J, K, L, U> SubAssign<&TensorRank4<D, I, J, K, L, U>> for TensorRank4<D, I, J, K, L, U>

Source§

fn sub_assign(&mut self, tensor_rank_4: &Self)

Performs the -= operation. Read more
Source§

impl<const D: usize, I, J, K, L, U> SubAssign for TensorRank4<D, I, J, K, L, U>

Source§

fn sub_assign(&mut self, tensor_rank_4: Self)

Performs the -= operation. Read more
Source§

impl<'a, const D: usize, I, J, K, L, U> Sum<&'a TensorRank4<D, I, J, K, L, U>> for TensorRank4<D, I, J, K, L, U>

Source§

fn sum<Ii>(iter: Ii) -> Self
where Ii: Iterator<Item = &'a Self>,

Takes an iterator and generates Self from the elements by “summing up” the items.
Source§

impl<const D: usize, I, J, K, L, U> Sum for TensorRank4<D, I, J, K, L, U>

Source§

fn sum<Ii>(iter: Ii) -> Self
where Ii: Iterator<Item = Self>,

Takes an iterator and generates Self from the elements by “summing up” the items.
Source§

impl<const D: usize, I, J, K, L, U> Tensor for TensorRank4<D, I, J, K, L, U>

Source§

type Item = TensorRank3<D, J, K, L, U>

The type of item encountered when iterating over the tensor.
Source§

type Unit = U

The physical unit the tensor carries.
Source§

fn iter(&self) -> impl Iterator<Item = &Self::Item>

Returns an iterator. Read more
Source§

fn iter_mut(&mut self) -> impl Iterator<Item = &mut Self::Item>

Returns an iterator that allows modifying each value. Read more
Source§

fn len(&self) -> usize

Returns the number of elements, also referred to as the ‘length’.
Source§

fn size(&self) -> usize

Returns the total number of entries.
Source§

fn error_count_zero(&self, tol_abs: Scalar, tol_rel: Scalar) -> Option<usize>

Returns number of nonzero entries given absolute and relative tolerances.
Source§

fn error_count( &self, other: &Self, tol_abs: Scalar, tol_rel: Scalar, ) -> Option<usize>

Returns number of different entries given absolute and relative tolerances.
Source§

fn full_contraction(&self, tensor: &Self) -> TensorRank0

Returns the full contraction with another tensor.
Source§

fn is_zero(&self) -> bool

Checks whether the tensor is the zero tensor.
Source§

fn norm(&self) -> Quantity<Self::Unit>

Returns the tensor norm.
Source§

fn norm_inf(&self) -> Quantity<Self::Unit>

Returns the infinity norm.
Source§

fn norm_l1(&self) -> Quantity<Self::Unit>

Returns the L1 (Manhattan) norm.
Source§

fn norm_p_sum(&self, p: TensorRank0) -> TensorRank0

Returns the sum of p-th powers of absolute values (used internally by norm_p).
Source§

fn norm_p(&self, p: TensorRank0) -> Quantity<Self::Unit>

Returns the Minkowski (Lp) norm.
Source§

fn norm_squared(&self) -> Quantity<Square<Self::Unit>>
where Self::Unit: UnitMul<Self::Unit>,

Returns the tensor norm squared, which carries the square of its unit.
Source§

fn normalize(&mut self)

Normalizes the tensor in place.
Source§

fn sub_abs(&self, other: &Self) -> Self

Returns the positive difference of the two tensors.
Source§

fn sub_rel(&self, other: &Self) -> Self

Returns the relative difference of the two tensors.
Source§

impl<const D: usize, I, J, K, L, U> TensorArray for TensorRank4<D, I, J, K, L, U>

Source§

type Array = [[[[f64; D]; D]; D]; D]

The type of array corresponding to the tensor.
Source§

type Item = TensorRank3<D, J, K, L, U>

The type of item encountered when iterating over the tensor.
Source§

fn as_array(&self) -> Self::Array

Returns the tensor as an array.
Source§

fn identity() -> Self

Returns the identity tensor.
Source§

fn zero() -> Self

Returns the zero tensor.

Auto Trait Implementations§

§

impl<const D: usize, I, J, K, L, U> Freeze for TensorRank4<D, I, J, K, L, U>

§

impl<const D: usize, I, J, K, L, U> RefUnwindSafe for TensorRank4<D, I, J, K, L, U>

§

impl<const D: usize, I, J, K, L, U> Send for TensorRank4<D, I, J, K, L, U>
where I: Send, J: Send, K: Send, L: Send, U: Send,

§

impl<const D: usize, I, J, K, L, U> Sync for TensorRank4<D, I, J, K, L, U>
where I: Sync, J: Sync, K: Sync, L: Sync, U: Sync,

§

impl<const D: usize, I, J, K, L, U> Unpin for TensorRank4<D, I, J, K, L, U>
where I: Unpin, J: Unpin, K: Unpin, L: Unpin, U: Unpin,

§

impl<const D: usize, I, J, K, L, U> UnsafeUnpin for TensorRank4<D, I, J, K, L, U>

§

impl<const D: usize, I, J, K, L, U> UnwindSafe for TensorRank4<D, I, J, K, L, U>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T> AssertEq<&'a T> for T
where T: Display + PartialEq + Tensor,

Source§

impl<'a, T> AssertFd<&'a T> for T

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Is<T> for T