Skip to content

Repository files navigation

Disclaimer

The project is in an early state of development, so it is not advised to use it in real world applications. If you have feedback or feature suggestions, please create a new GitHub Issue.

Description

This is a CasADi based implementation of the GACalcAPI, which allows to create Geometric Algebra expression graphs for symbolic calculations for arbitray Geometric Algebra signatures. The aim of this implementation is to allow fast computations especially of Jacobian and Hessian derivatives by CasADi's automated differenciation functionality.

This project depends on JCasADi, a java wrapper for CasADi.

The readme for the annotation processor which generates a cached version of IMultivectorExpression can be found in GACasADi_MvExprCachingProcessor.

Project status

At the moment only the algebras CGA and PGA are supported. For futher ones code has to be written, e.g. for specific support of 3d-Visualisation and implementation of some features, which are dependend to the algebra specifities. In the future instead of writing Java-code, all speficic functionality should be configurable in specific ascii files.

Implementation of Projective Geometric Algebra (PGA)

Symbols

symbol latex Unicode description
ε₀ \epsilon_0 \u03B5\u2080 base vector representing the origin
εᵢ \epsilon_i \u03B5\u1D62 base vector representing the infinity
ε₁ \epsilon_1 \u03B5\u2081 base vector representing x direction
ε₂ \epsilon_2 \u03B5\u2082 base vector representing y direction
ε₃ \epsilon_3 \u03B5\u2083 base vector representing z direction
π \pi \u03C0 Ludolphs- or circle constant
E₃ E_3 \u0045\u2083 Euclidean pseudoscalar
I I \u0049 Pseudoscalar

Builtin functions

The following functions are implemented specific for PGA:

symbol description
exp() exponential of a bivector or a scalar
log() logarithm of general rotor/even multivector (should be normalized)
sqrt() squared root of a general rotor/even multivector or a scalar

The following functions, which are available in general, are not supported for PGA:

symbol description
negate14() negate the signs of the vector- and 4-vector parts of an multivector. Usable to implement general-inverse.

The following functions are not yet supported:

symbol description
up() up-projection of a euclidean vector into the projected space
down() down-projection of a multivector into the euclidean space by normalization and rejection from the minkowski plane E0

Generally supported Builtin functions

symbol description
euclid() euclidean part of the multivector, only blades not formed basis vectors squaring to 0 or -1
idle() idle part of the multivector, only blades formaed by basis vectors which includes at minimum one which squares to 0 or -1

Builtin opererators

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages