clifford: Geometric Algebra for Python
clifford is a numerical Geometric Algebra (a.k.a. Clifford algebra) package for python.
- Documentation: http://clifford.readthedocs.org
- Source code: https://github.com/pygae/clifford
- Bug reports: https://github.com/pygae/clifford/issues
Geometric Algebra (GA) is a universal algebra which among several other independent mathematical systems, subsumes:
- Complex numbers
- Quaternions
- Linear algebra
Scalars, vectors, and higher-grade entities can be mixed freely and consistently in the form of mixed-grade multivectors. Like this,
Requires Python version >=3.5
Install using conda:
conda install clifford -c conda-forge
Install using pip:
pip3 install clifford
Try out a notebook in binder
Or have a go on your own pc:
from clifford.g3 import * # import GA for 3D space
from math import e, pi
a = e1 + 2*e2 + 3*e3 # vector
R = e**(pi/4*e12) # rotor
R*a*~R # rotate the vector | Syntax | Operation |
|---|---|
| | | Symmetric 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 |
For installation instructions, api documention, and tutorials, head over to our documentation!
For citation information, see our CITATION.md file.