Warning
This page was created from a pull request (#389).
Predefined Algebras¶
The easiest way to get started with clifford is to use one of several predefined algebras:
g2: 2D Euclidean,Cl(2). See Quick Start (G2) for some examples.g3: 3D Euclidean,Cl(3). See The Algebra Of Space (G3) for some examples.g4: 4D Euclidean,Cl(4).g2c: Conformal space for G2,Cl(3, 1). See Conformal Geometric Algebra for some examples.g3c: Conformal space for G3,Cl(4, 1).pga: Projective space for G3Cl(3, 0, 1).gac: Geometric Algebra for Conics,Cl(5, 3).dpga: Double PGA also referred to as the Mother Algebra,Cl(4, 4).dg3c: Double Conformal Geometric Algebra, effectively two g3c algebras glued togetherCl(8, 2).
By using the pre-defined algebras in place of calling Cl directly, you will often find that your program starts up faster.
- clifford.<predefined>.e<ijk>
All of these modules expose the basis blades as attributes, and can be used like so
In [1]: from clifford import g2 In [2]: g2.e1 * g2.e2 Out[2]: (1^e12)
Additionally, they define the following attributes, which contain the return values of clifford.Cl():
- clifford.<predefined>.layout¶
The associated
clifford.LayoutIn [3]: g2.layout Out[3]: Layout([1, 1], ids=BasisVectorIds.ordered_integers(2), order=BasisBladeOrder.shortlex(2), names=['', 'e1', 'e2', 'e12'])
- clifford.<predefined>.blades¶
A shorthand for
Layout.blades()In [4]: g2.blades Out[4]: {'': 1, 'e1': (1^e1), 'e2': (1^e2), 'e12': (1^e12)}
For interactive use, it’s very handy to use import *
In [5]: from clifford.g2 import *
In [6]: e1, e2, e12
Out[6]: ((1^e1), (1^e2), (1^e12))
For the conformal layouts g2c and g3c, the full contents of the stuff result of clifford.conformalize() is also exposed as members of the module.