508 IMPLEMENTATION ISSUES CHAPTER 18
save processing time in practice, since approximately the same number of operations
have to be performed as in the basis-of-blades representation that is our reference
implementation. (Only if special hardware were present to handle complex number
and quaternion multiplications more efficiently than arbitrary multiplications, could
these methods become more efficient than the multiplication of real valued matrices.)
Moreover, the matr ix representations have the disturbing disadvantage that they only
work for the geometric product. As long as they are used for the Clifford algebras for which
they were developed, this is not a problem—but it makes this representation cumbersome
for geometric algebra in general, where derived products such as the outer product and
contractions are also important. Tr ue, a similar representation of outer products can be
easily established, but one would have to switch between representations to perform one
product or the other, as both may be needed in a single application. And unfortunately,
since the contraction inner products are not associative, they are not isomorphic to matrix
algebras, so they cannot be implemented in the same framework. (Actually, this nonasso-
ciativity of the contraction will require special measures in any implementation scheme,
including ours.)
18.3.3 FACTORED REPRESENTATIONS
The mostly multiplicative structure of geometric algebra (with versors as geometric
products of vectors, and blades as outer products of vectors) has recently been explored
by the authors to produce factorized representations. This seems a viable implementation
method for high-dimensional algebras, but more research is needed.
A k-blade can be stored as a list of k vectors. The outer product of these vectors is the value
of the blade. Likewise, a versor can be stored as a list of vectors whose geometric product
is the value of the versor. The storage requirement of blades and versors becomes O(n
2
)
compared to O(2
n
) for the basis-of-blades method. Multivectors that are not blades or
versors can only be represented as a sum of multiple blades or versors, and thus require
more storage.
This multiplicative representation is radically different from the usual additive represen-
tation. As a consequence, the implementation of products and operations is also very dif-
ferent. What may be a difficult problem in one implementation approach can be trivial in
the other, and v ice versa. For example, addition is simple in the basis of blades approach,
but one of the hardest problems in a factored representation. The
meet and join are
trivial with factored representation (given that you already have a linear algebra library
like LAPACK), while they lead to a rather involved algorithm in the sum-of-basis-blades
approach.
We do not discuss this approach further because it is best suited for high-dimensional
(n>10) geometric algebras, which are of less interest in this book. The details will appear
in Daniel Fontijne’s Ph.D. thesis.