# 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 G3`Cl(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 together`Cl(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.Layout`

In [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.