C.3. Vectors, TinyMatrixs, Tensors

In this section, we present UML class diagrams for the mathematical objects of Vectors, TinyMatrixs, and Tensors. All these classes have similar interfaces and relationships. For example, Vector requires a VectorEngine, which has no public interface. The only template specialization is VectorEngine<D,T,Full>. TinyMatrixs are similar. Tensors have four different engines, supporting the tensor specializations of Antisymmetric, Symmetric, and Diagonal.

All of the source files are located in the src/Tiny subdirectory.

Figure C-10. Vectors

Vectors require VectorEngines.

Figure C-11. TinyMatrixs

TinyMatrixs require TinyMatrixEngines,
      appearing in the next diagram.

Figure C-12. TinyMatrixEngines

TinyMatrixEngines power TinyMatrixs.

Figure C-13. Tensors and TensorEngines

Tensors require TensorEngines.

Figure C-14. Full and Diagonal TensorEngines

Full Engines are the default
      Tensor Engines.  Diagonal Tensors use its special Engine.

Figure C-15. Antisymmetric and Symmetric TensorEngines

More TensorEngine specializations.