### version 3.0

## A (fast) C++ template library for Euclidean, conformal, and arbitrary geometric algebras.

### Currently tested on Linux and Mac OS X

Developer: Pablo Colapinto

`gmail: wolftype`

Homepage (versor.mat.ucsb.edu)

Bibtex (for referencing this work)

Versor is a C++ Library for **Geometric Algebra**, sometimes called **Clifford Algebra**, a mathematical system for encoding geometric concepts numerically.

#
Changes

Some major revisions have been enacted that change the API.

- namespaces are used to distinguish between algebras:
- vsr::nga:: is now the namespace for generic n-dimensional functions
- vsr::cga:: is now the namespace for 3D Conformal Geometric Algebra

- all static function structs (Round::, Flat::, Tangent::) are written in full (as opposed to Ro::, Fl:: and Ta::). We note these are capitalized, since earlier versions of the devel branch used lowercase namespaces to manage functions, but that proved limiting.
- vsr::nga::Round:: calls the generic implementation of n-D round elements, whereas vsr::cga::Round calls the 3D CGA specification.
- Construct:: is now used to construct useful objects within a particular namespace
- header folders
`/detail /space /form /draw`

and `/util`

organize the various files

#
Reference

NOTE: This documentation is currently generated by the *devel* branch in preparation for its release into master.

Though versor is designed to support any geometric algebra, this document focuses on 3D Conformal Geometric Algebra. Click on the Modules tab at the top of this doxygen-generated documentation to get started.

#
Features

*Generic*

The headers generate optimized code at compile-time through template metaprogramming.

*Lightweight*

The core of the library is under 150kb, and supports arbitrary dimensions and metrics (limited by your compiler...).

*Fast*

All combinatorics are sorted out by the compiler.

*Visualized*

Most geometric algebra types can be drawn in either OpenGL or OpenGLES.

*Horizontal*

The Math library is completely independant of the Rendering library.

*Expressive*

Many key algorithms are included

*Documented*, in Active Development, and open source

Working on this always, please send feedback.

#
Use

The library can be used for example as

- header-only to operate in your preferred metric (e.g. Conformalized \(\mathbb{R}^{4,2}\) )
- a static or shared library with prebuilt 3D Conformal Geometric Algebra routines
- a stand-alone application with built-in graphics for computer or mobile