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!
As linked at the top of this page, clifford
is published to zenodo.
DOI 10.5281/zenodo.1453978 refers to all versions of clifford.
To obtain BibTex citation information for a specific release (recommended):
- Run
python -m pip show clifford
to determine which version you are using (or printclifford.__version__
from python) - Click on the corresponding version from this list of versions
- Scroll down to the bottom of the page, and click the "BibTex" link in the "Export" sidebar
If you want to cite all releases, use:
@software{python_clifford,
author = {Hugo Hadfield and
Eric Wieser and
Alex Arsenovic and
Robert Kern and
{The Pygae Team}},
title = {pygae/clifford},
publisher = {Zenodo},
doi = {10.5281/zenodo.1453978},
url = {https://doi.org/10.5281/zenodo.1453978}
}