Need help with clifford?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

pygae
547 Stars 52 Forks BSD 3-Clause "New" or "Revised" License 1.0K Commits 76 Opened issues

#### Description

Geometric Algebra for Python

!
?

# clifford: Geometric Algebra for Python

`clifford`
is a numerical Geometric Algebra (a.k.a. Clifford algebra) package for python.
• 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,

## 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:

```python
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

`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:

```tex
@software{python_clifford,