versor  3.0
C++11 library for Geometric algebra
The Type System
finish this explanation

Methods for creating, combining, and navigating between geometric number types


See also

All geometric entities are instantiations of the generic Multivector type. A Multivector is templated on an algebra and a basis.

Through strict typing, we are able to let the compiler sort out argument type deduction.

Value-level operations

There is no inheritance implemented, and no introspection, it is useful to categorize the various types by their characteristics in the documentation – e.g. a Flat or Round – and to use static functions to evaluate them. For instance:

Note, that the library user is responsible for ensuring that the arguments are of the correct category.

Type-level operations (advanced use)

It is sometimes useful to be able to determine a type relative to another type. For this the ::space typedef is a way to access other types within the algebra. For instance, given a vsr::cga::Vec one can instantiate a vsr::cga::Point