# GAlgebra¶

Symbolic Geometric Algebra/Calculus package for SymPy.

## Development Status¶

brombo/galgebra was originally written by Alan Bromborsky, but was no longer actively maintained, and as of 2019-11-25 no longer exists.

pygae/galgebra is a community fork, maintained by Pythonic Geometric Algebra Enthusiasts.

The fork supports Python 3, increases test coverage, set up CI and linters, maintains releases to PyPI, improves docs and has many bug fixes, see Changelog.

## Features¶

### Geometric Algebra¶

Arbitrary Vector Basis and Metric

Scalar, Vector, Bivector, Multivector, Pseudoscalar, Spinor, Blade

Basic Geometic Algebra Operations

Sum Difference

Geometric Product

Outer and Inner Products

Left and Right Contractions

Reverse, Dual, Exponential

Commutator

Projection, Reflection, Rotation

Reciprocal Frames

Inspecting Base/Blade Representation

Symbolic Manipulations

`expand`

,`factor`

,`simplify`

,`subs`

,`trigsimp`

etc.

Overloaded Python operators for basic GA operations:

### Geometric Calculus¶

Geometric Derivative

Submanifolds

Linear Transformations

Differential Operators

The various derivatives of a multivector function is accomplished by multiplying the gradient operator vector with the function:

Tip: an example for getting `grad`

and `rgrad`

of a 3-d Euclidean geometric algebra in rectangular coordinates:

```
from sympy import symbols
from galgebra.ga import Ga
o3d = Ga('e', g=[1,1,1], coords=symbols('x,y,z',real=True))
(grad,rgrad) = o3d.grads()
```

### Printing¶

Enhanced Console Printing

Latex Printing

out-of-the-box support for Jupyter Notebook

PDF generation and croping support if you have

`pdflatex`

/`pdfcrop`

installed