# 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),
names=['', 'e1', 'e2', 'e12'])
```

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.