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

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

Multivectors

See also
Multivector

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