opensrdk_symbolic_computation/expression/tensor_expression/
differential.rs1use crate::{Expression, TensorExpression};
2
3impl TensorExpression {
4 pub fn differential(&self, variable_ids: &[&str]) -> Vec<Expression> {
5 match self {
6 TensorExpression::KroneckerDeltas(_) => {
7 vec![0.0.into(); variable_ids.len()]
8 }
9 TensorExpression::DotProduct {
10 terms,
11 rank_combinations,
12 } => TensorExpression::diff_dot_product(terms, rank_combinations, variable_ids),
13 TensorExpression::DirectProduct(terms) => {
14 TensorExpression::diff_direct_product(terms, variable_ids)
15 }
16 }
17 }
18}