Skip to content

Commit

Permalink
Added notes for Clifford conjugate and inverse
Browse files Browse the repository at this point in the history
  • Loading branch information
brainandforce committed Aug 28, 2024
1 parent e170311 commit 5fdcb6b
Showing 1 changed file with 17 additions and 5 deletions.
22 changes: 17 additions & 5 deletions docs/src/operations.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,11 @@ Base.reverse(::BitIndex)
*Grade involution* changes the sign of all odd grades, an operation equivalent to mirroring every
basis vector of the space. This can be acheived with the `grade_involution` function.

When interpreting even multivectors as elements of the even subalgebra of the algebra of interest,
the grade involution in the even subalgebra is equivalent to the reverse in the algebra of interest.
When interpreting even multivectors as elements of the even subalgebra of a given algebra, the
reverse operation of the algebra is equivalent to grade involution in the even subalgebra.

Grade involution is equivalent to complex conjugation in when dealing with the even subalgebra of 2D
space, which is isomorphic to the complex numbers, but this is *not* true for quaternion
space (which is isomorphic to the complex numbers), but this is *not* true for quaternion
conjugation. Instead, use the Clifford conjugate (described below).

```@docs; canonical=false
Expand All @@ -49,8 +49,10 @@ CliffordNumbers.grade_involution(::BitIndex)

#### Clifford conjugation

The *Clifford conjugate* is the combination of the reverse and grade involution. This is available
via an overload of `Base.conj`.
The *Clifford conjugate* is the combination of the reverse and grade involution. This is implemented
as `Base.conj(::AbstractCliffordNumber)`. This operation arises in the application of a
transformation, because the grade involution accounts for the sign change associated with the parity
of the isometry, and it is combined with the reverse to perform the final operation.

!!! warning
`conj(::AbstractCliffordNumber)` implements the Clifford conjugate, not the reverse!
Expand All @@ -63,6 +65,16 @@ or quaternion conjugation. Otherwise, this is a less widely used operation than
Base.conj(::BitIndex)
```

#### Inverse

Many elements of a Clifford algebra have an inverse. In general, the inverse of a rotor `R` is equal
to `R' / abs2(R)`. It is possible to use other methods to find inverses of arbitrary multivectors of
certain Clifford algebras, but this has not been implemented yet.

Inverses *cannot* exist for multivectors which square to zero. This is trivially true in any
Clifford algebra with a degenerate metric, but it is possible to encounter these kinds of elements
in algebras with positive-definite metrics.

## Binary operations

### Addition and subtraction
Expand Down

0 comments on commit 5fdcb6b

Please sign in to comment.