Comparison with related libraries¶
Feature |
tmech |
Eigen |
FTensor |
Fastor |
|---|---|---|---|---|
Header-only |
Yes |
Yes |
Yes |
Yes |
Arbitrary-rank tensors |
Yes |
Yes [1] |
Yes |
Yes |
Expression templates |
Yes |
Yes |
Yes |
Yes |
Symbolic differentiation |
Yes [2] |
No |
No |
No |
Isotropic tensor functions |
Yes |
No |
No |
No |
Decomposition derivatives |
Yes |
No |
No |
No |
SIMD support |
Optional |
Yes |
No |
Yes |
Index notation |
Implicit |
N/A |
Yes |
Yes |
The distinguishing feature of tmech is the integration of symbolic
differentiation with tensor algebra. All four libraries provide expression
templates for efficient evaluation; among them, only tmech also
differentiates tensor expressions symbolically to produce tangent operators at
compile time. General-purpose automatic-differentiation tools (such as Sacado,
CoDiPack, autodiff, and Enzyme) achieve differentiation by other means
(run-time tapes or external code generation).