terrylyons / libalgebra

This C++ headers only library provides tools for manipulating elements of algebras; the tensor algebra, free lie algebra etc. Early versions can be found in sourceforge. It is capable of calculations over many rings including the arbitrary precision rationals from gmp/mpir . The associated library libalgebra_tests has many examples of how to use the code. the pypy package wraps a version of it - with a simple interface (and vastly reduced functionality)
12 stars 2 forks source link

Common prefixes in alg_types #52

Open inakleinbottle opened 2 years ago

inakleinbottle commented 2 years ago

The alg_types struct provides a useful way to create an environment with all the algebra types with consistent settings. As libalgebra grows, the current naming scheme will not be sufficiently rich to distinguish numerous variations on types such as free_tensor. To combat this, we should introduce a rigorous prefix scheme to help distinguish algebra objects in this struct.

For shared types, such as basis, key, we should have a prefix to indicate the associated type: T for tensor, L for Lie, P for polynomial, PL for PolyLie, and MP for multipolynomial.

Further, for the algebra/vector types themselves, the prefix should denote the variation or alternative multiplication we should prefix the class by a letter indicating this variation: FTENSOR for free tensor, STENSOR for shuffle tensor, etc.

At the same time, perhaps we should reconsider the all-caps naming scheme here.