16Extension

Operations on Clifford numbers reduce at the lowest level to unary operations on single components or binary operations on pairs of components. The implementation of the code in the Clifford numerical suite provides a separation between the component‐level operations and the mechanisms which manage the whole Clifford numbers, (i.e. collections of those components) in the form of trees.

Users may define their own sub‐routines which supply component‐level operations, and then use them to manipulate whole numbers without the need to perform explicit pruning and grafting surgery within the tree structures. Interfaces are provided for four kinds of manipulation: accumulation, multiplication, transformation, and filtering. The interfaces allow the user to construct additional functionality beyond that already provided, extending the Clifford numerical suite to make it meet more closely their own particular needs.

16.1 Accumulation

The process of combining components into an existing tree is performed by a particular worker routine merge_comp(), standing for ‘merge component’, which takes four arguments as shown in Table 16.1. The particular sub‐routines providing the operations used to effect the merge are specified by the user within the argument list of merge_comp(). Here those sub‐routines are represented by the names combine() and insert(), but in practice they are defined and named by the user.

Table 16.1 Function prototype of worker routine to merge components ...

Get Numerical Calculations in Clifford Algebra now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.