clifford.conformalize

clifford.conformalize(layout: clifford._layout.Layout, added_sig=[1, -1], *, mvClass=<class 'clifford._multivector.MultiVector'>, **kwargs)[source]

Conformalize a Geometric Algebra

Given the Layout for a GA of signature (p, q), this will produce a GA of signature (p+1, q+1), as well as return a new list of blades and some stuff. stuff is a dict containing the null basis blades, and some up/down functions for projecting in/out of the CGA.

Parameters
  • layout (clifford.Layout) – layout of the GA to conformalize (the base)

  • added_sig (list-like) – list of +1, -1 denoted the added signatures

  • **kwargs – extra arguments to pass on into the Layout constructor.

Returns

  • layout_c (ConformalLayout) – layout of the base GA

  • blades_c (dict) – blades for the CGA

  • stuff (dict) – dict mapping the following members of ConformalLayout by their names, for easy unpacking into the global namespace:

    up(x)

    up-project a vector from GA to CGA

    down(x)

    down-project a vector from CGA to GA

    homo(x)

    homogenize a CGA vector

Examples

>>> from clifford import Cl, conformalize
>>> G2, blades = Cl(2)
>>> G2c, bladesc, stuff = conformalize(G2)
>>> locals().update(bladesc)
>>> locals().update(stuff)