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

About the developer

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

Description

Geometric Algebra for Python

Services available

!
?

Need anything else?

Contributors list

clifford: Geometric Algebra for Python

PyPI DOI Binder Documentation Status Build Status Build Status codecov

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,

Visual explanation of blades

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

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:

tex
@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}
}

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.