pub enum TensorExpression {
Symbol(String, Vec<Size>),
Constant(SparseTensor<f64>),
Zero,
Add(Box<TensorExpression>, Box<TensorExpression>),
Sub(Box<TensorExpression>, Box<TensorExpression>),
MulScalarLhs(Box<Expression>, Box<TensorExpression>),
MulScalarRhs(Box<TensorExpression>, Box<Expression>),
Neg(Box<TensorExpression>),
KroneckerDeltas(Vec<[usize; 2]>),
InnerProd {
terms: Vec<TensorExpression>,
rank_combinations: Vec<HashMap<usize, String>>,
},
}
Variants§
Symbol(String, Vec<Size>)
Constant(SparseTensor<f64>)
Zero
Add(Box<TensorExpression>, Box<TensorExpression>)
Sub(Box<TensorExpression>, Box<TensorExpression>)
MulScalarLhs(Box<Expression>, Box<TensorExpression>)
MulScalarRhs(Box<TensorExpression>, Box<Expression>)
Neg(Box<TensorExpression>)
KroneckerDeltas(Vec<[usize; 2]>)
InnerProd
Implementations§
source§impl TensorExpression
impl TensorExpression
pub fn differential(&self, symbols: &[&str]) -> Vec<TensorExpression>
source§impl TensorExpression
impl TensorExpression
pub fn inner_prod(self, rhs: TensorExpression, rank_pairs: &[[usize; 2]]) -> Self
source§impl TensorExpression
impl TensorExpression
pub fn is_same_size(&self, other: &TensorExpression) -> bool
pub fn sizes(&self) -> Vec<Size>
source§impl TensorExpression
impl TensorExpression
pub fn as_scalar(self) -> Expression
Trait Implementations§
source§impl Add<TensorExpression> for TensorExpression
impl Add<TensorExpression> for TensorExpression
§type Output = TensorExpression
type Output = TensorExpression
The resulting type after applying the
+
operator.source§impl Clone for TensorExpression
impl Clone for TensorExpression
source§fn clone(&self) -> TensorExpression
fn clone(&self) -> TensorExpression
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for TensorExpression
impl Debug for TensorExpression
source§impl Mul<Expression> for TensorExpression
impl Mul<Expression> for TensorExpression
§type Output = TensorExpression
type Output = TensorExpression
The resulting type after applying the
*
operator.source§impl Mul<TensorExpression> for Expression
impl Mul<TensorExpression> for Expression
§type Output = TensorExpression
type Output = TensorExpression
The resulting type after applying the
*
operator.source§impl Mul<TensorExpression> for f64
impl Mul<TensorExpression> for f64
§type Output = TensorExpression
type Output = TensorExpression
The resulting type after applying the
*
operator.source§impl Mul<f64> for TensorExpression
impl Mul<f64> for TensorExpression
source§impl Neg for TensorExpression
impl Neg for TensorExpression
source§impl PartialEq<TensorExpression> for TensorExpression
impl PartialEq<TensorExpression> for TensorExpression
source§fn eq(&self, other: &TensorExpression) -> bool
fn eq(&self, other: &TensorExpression) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl Sub<TensorExpression> for TensorExpression
impl Sub<TensorExpression> for TensorExpression
§type Output = TensorExpression
type Output = TensorExpression
The resulting type after applying the
-
operator.