clifford

by pygae

pygae / clifford

Geometric Algebra for Python

489 Stars 45 Forks Last release: 5 months ago (v1.3.1) BSD 3-Clause "New" or "Revised" License 1.0K Commits 19 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

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

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 | |:-:|:-:| | | | Symetric 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       = {Alex Arsenovic and
                  Hugo Hadfield and
                  Eric Wieser 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.