Numerical Geometric Algebra Module

# clifford: Geometric Algebra for Python

clifford is a numerical Geometric Algebra (a.k.a. Clifford algebra) package for python.

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,

## Quick Installation

Requires Python version >=3.5

Install using conda:

conda install clifford -c conda-forge


Install using pip:

pip3 install clifford


Detailed instructions

## Quickstart

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 Summary

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!

## Citing This Library

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 print clifford.__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,
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}
}


## Project details

Uploaded source
Uploaded py3