Expand description

Structs for interpreting geometric algebra as vector spaces and orthogonal transformations

This module aims to streamline the use of the algebra for geometric uses by adding additional constraints onto the types from crate::algebra. This is accomplished by wrapping the algebraic types in additional structs where the allowed operations are much more limited.

For example, in order to preserve the fact it represents a rotation, a Rotor cannot be added to another Rotor, and to preserve its unit length, a UnitBlade cannot be multiplied by a scalar.

Organization

To this aim, there are five main structs in this module:

Structs

Represents a reflection in N dimensions (with an optional rotation component)

Represents a rotation in N dimensions

A Blade that is the wedge product of G vectors

A SimpleBlade with unit length

Enums

A general orthogonal transformation in N dimensions

Traits

Trait for finding the parallel component of a blade B onto Self

Trait for finding the perpendicular component of a blade B onto Self

Implemented on versor types in order to apply their transformation to various values

Type Definitions

A 0-dimensional reflector

A 1-dimensional reflector

A 2-dimensional reflector

A 3-dimensional reflector

A 4-dimensional reflector

A 5-dimensional reflector

A 6-dimensional reflector

A reflector with dynamic dimension

A 0-dimensional rotor

A 1-dimensional rotor

A 2-dimensional rotor

A 3-dimensional rotor

A 4-dimensional rotor

A 5-dimensional rotor

A 6-dimensional rotor

A rotor with dynamic dimension

A 2-dimensional simple bivector

A 3-dimensional simple bivector

A 4-dimensional simple bivector

A 5-dimensional simple bivector

A 6-dimensional simple bivector

A simple bivector with dynamic dimension

An N-dimensional simple bivector

A 0-dimensional simple blade with a dynamic grade

A 1-dimensional simple blade with a dynamic grade

A 2-dimensional simple blade with a dynamic grade

A 3-dimensional simple blade with a dynamic grade

A 4-dimensional simple blade with a dynamic grade

A 5-dimensional simple blade with a dynamic grade

A 6-dimensional simple blade with a dynamic grade

A simple blade with a dynamic dimension and grade

An N-dimensional simple blade with a dynamic grade

A 6-dimensional simple hexavector

A simple hexavector with dynamic dimension

An N-dimensional simple hexavector

A 5-dimensional simple pentavector

A 6-dimensional simple pentavector

A simple pentavector with dynamic dimension

An N-dimensional simple pentavector

A N-dimensional psuedoscalar

A N-dimensional psuedovector

A 4-dimensional simple quadvector

A 5-dimensional simple quadvector

A 6-dimensional simple quadvector

A simple quadvector with dynamic dimension

An N-dimensional simple quadvector

A scalar in N-dimensions

A scalar in 0-dimensions

A scalar in 1-dimension

A scalar in 2-dimensions

A scalar in 3-dimensions

A scalar in 4-dimensions

A scalar in 5-dimensions

A scalar in 6-dimensions

A scalar in a dynamic number of dimensions

A 3-dimensional simple trivector

A 4-dimensional simple trivector

A 5-dimensional simple trivector

A 6-dimensional simple trivector

A simple trivector with dynamic dimension

An N-dimensional simple trivector

A 1-dimensional vector

A 2-dimensional vector

A 3-dimensional vector

A 4-dimensional vector

A 5-dimensional vector

A 6-dimensional vector

A vector with dynamic dimension

An N-dimensional vector

A 2-dimensional unit bivector

A 3-dimensional unit bivector

A 4-dimensional unit bivector

A 5-dimensional unit bivector

A 6-dimensional unit bivector

A unit bivector with dynamic dimension

An N-dimensional unit bivector

A 0-dimensional unit blade with a dynamic grade

A 1-dimensional unit blade with a dynamic grade

A 2-dimensional unit blade with a dynamic grade

A 3-dimensional unit blade with a dynamic grade

A 4-dimensional unit blade with a dynamic grade

A 5-dimensional unit blade with a dynamic grade

A 6-dimensional unit blade with a dynamic grade

A unit blade with a dynamic dimension and grade

An N-dimensional unit blade with a dynamic grade

A 6-dimensional unit hexavector

A unit hexavector with dynamic dimension

An N-dimensional unit hexavector

A 5-dimensional unit pentavector

A 6-dimensional unit pentavector

A unit pentavector with dynamic dimension

An N-dimensional unit pentavector

A N-dimensional unit psuedoscalar

A N-dimensional unit psuedovector

A 4-dimensional unit quadvector

A 5-dimensional unit quadvector

A 6-dimensional unit quadvector

A unit quadvector with dynamic dimension

An N-dimensional unit quadvector

A scalar in N-dimensions

A scalar in 0-dimensions

A scalar in 1-dimension

A scalar in 2-dimensions

A scalar in 3-dimensions

A scalar in 4-dimensions

A scalar in 5-dimensions

A scalar in 6-dimensions

A scalar in a dynamic number of dimensions

A 3-dimensional unit trivector

A 4-dimensional unit trivector

A 5-dimensional unit trivector

A 6-dimensional unit trivector

A unit trivector with dynamic dimension

An N-dimensional unit trivector

A 1-dimensional unit vector

A 2-dimensional unit vector

A 3-dimensional unit vector

A 4-dimensional unit vector

A 5-dimensional unit vector

A 6-dimensional unit vector

A unit vector with dynamic dimension

An N-dimensional unit vector

A 0-dimensional versor

A 1-dimensional versor

A 2-dimensional versor

A 3-dimensional versor

A 4-dimensional versor

A 5-dimensional versor

A 6-dimensional versor

An versor with dynamic dimension