clifford: Geometric Algebra for Python
A numerical geometric algebra module for python. BSD License.
Try out a notebook in binder
Or have a go on your own pc:
from clifford.g3 import * # import GA for 3D space
from numpy import e,pi
a = e1 + 2*e2 + 3*e3 # vector
R = e**(pi/4*e12) # rotor
R*a*~R # rotate the vector
This module implements Geometric Algebras (a.k.a. Clifford algebras). Geometric Algebra (GA) is a universal algebra which subsumes complex algebra, quaternions, linear algebra and several other independent mathematical systems. Scalars, vectors, and higher-grade entities can be mixed freely and consistently in the form of mixed-grade multivectors. Like this,
- Installation
- Quick Start (G2)
- The Algebra Of Space (G3)
- Rotations in Space: Euler Angles, Matrices, and Quaternions
- Conformal Geometric Algebra
- Space Time Algebra
- Interfacing Other Mathematical Systems
- Predefined Geometric Algebras
Syntax | Operation |
---|---|
| | Symetric inner product |
<< | Left contraction |
^ | Outer product |
* | Geometric product |
X(i) | Return the section of the multivector X of grade i |
X(ei) | Return the section of the multivector X for which ei is the pseudo scalar |
X[i] | Return the i'th coefficient from the multivector X |
X.normal() | Return the normalised multivector so that X*~X is +- 1 |
If you think Geometric Algebra looks interesting and want to learn more, check out the cambridge group page, and here are some great introductory textbooks!
- Geometric Algebra for Physicists, by Doran and Lasenby
- Geometric Algebra for Computer Science, by Dorst, Fontijne and Mann
- New Foundations for Classical Mechanics, by David Hestenes