Metadata-Version: 2.1
Name: geometricalgebra
Version: 0.1.3
Summary: A package for conformal geometric algebra
Author: Daniel Vorberg
Author-email: daniel.vorberg@wandelbots.com
Requires-Python: >=3.9,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Provides-Extra: all
Requires-Dist: jax (>=0.4.27) ; extra == "all"
Requires-Dist: jaxlib (>=0.4.27) ; extra == "all"
Requires-Dist: matplotlib (>=3.4.2) ; extra == "all"
Requires-Dist: numpy (>=1.19.0)
Requires-Dist: scipy (>=1.8.0)
Requires-Dist: tensorflow (>=2.16.1) ; extra == "all"
Description-Content-Type: text/markdown

# geometricalgebra

![badge](https://github.com/wandelbotsgmbh/geometricalgebra/actions/workflows/python-app.yml/badge.svg)

Library implementing conformal geometric algebra.

The key features are:
- Fast numerical implementation of multivector and its exterior algebra
- The library supports various backends (numpy, tensorflow, jax)
- Full support of autograd works when using jax and tensorflow
- All operation work for single multivector or tensors of multivector. Broadcasting is also supported.


# Installation

    pip install geometricalgebra

# Example

    from geometricalgebra import cga3d
    a = cga3d.e_0
    b = cga3d.e_1.up()
    c = cga3d.e_2.up()
    circle = a ^ b ^ c
    # The radius of a circle going through [0, 0, 0], [1, 0, 0], and [0, 1, 0]
    radius = circle.circle_to_center_normal_radius()[2].to_scalar()

