opensrdk_symbolic_computation/expression/tensor_expression/operations/
kronecker_delta.rs1use crate::{BracketsLevel, TensorExpression};
2use opensrdk_linear_algebra::RankIndex;
3
4impl TensorExpression {
5 pub(crate) fn tex_code_kronecker_deltas(
6 rank_pairs: &[[RankIndex; 2]],
7 brackets_level: BracketsLevel,
8 ) -> String {
9 let inner = rank_pairs
10 .iter()
11 .map(|rank_pair| format!(r"{{\delta_{{[{}], [{}]}}}}", rank_pair[0], rank_pair[1]))
12 .collect::<Vec<_>>()
13 .join(" ");
14
15 match brackets_level {
16 BracketsLevel::None | BracketsLevel::ForMul => inner,
17 BracketsLevel::ForDiv | BracketsLevel::ForOperation => {
18 format!(r"\left({}\right)", inner)
19 }
20 }
21 }
22}