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.