Skip to content

Add support for the right and left complement #215

@eric-wieser

Description

@eric-wieser

The right complement of the basis blades can be found with

from galgebra.ga import GradedTuple

def right_complement_blades(ga):
    # relies on the lexicographic ordering of `ga.indices`
    blades = []
    for fwd_blades, rev_blades in zip(ga.blades, reversed(ga.blades)):
        blades_single_grade = []
        for fwd_blade, rev_blade in zip(fwd_blades, reversed(rev_blades)):
            sign = ga.wedge(fwd_blade, rev_blade) / ga.e.obj  # swap the order of the wedge for left complement
            blades_single_grade.append(sign * rev_blade)
        blades.append(tuple(blades_single_grade))
    return GradedTuple(blades)

With that in place, the complement of any multivector can be taken componentwise.

This would enable:

  • vee in PGA without incurring the metric
  • Generalized multivector derivatives

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions