In order to program 3D simulations, games, etc. it is useful to be able to work with different algebras such as,
- Integers,
- Real Numbers,
- Vectors,
- Complex Numbers
- Quaternions,
- Matrices
- Multi Vectors (Clifford Algebra, Geometric Algebra)
Most of these algebras have operations on them such as addition and multiplication. We may be familiar with real number algebra, but when we are working with different algebras different rules may apply, therefore it is useful to explicitly define the rules.
commutative
An operation is commutative if the order of its operands can be reversed without
affecting the result. For example:
x * y = y * x
associative
An operation is associative if the order of doing multiple operations is not important. For example:
x * (y * z) = (x * y) * z
distributive
When there are two operations in this algebra say, + and *, then * is said to be distributive over + if:
x * (y + z) = (x * y) + (x * z)
Algebras
| * distributive over + | Multiplication commutative | Multiplication associative | |
| Real Numbers | yes | yes | yes |
| Complex Numbers | yes | yes | yes |
| Quaternions | yes | no | yes |
| Octonions | yes | no | no |
| Vectors | yes | no | no |
| Matricies | yes | no | yes |
| Multi Vectors | yes | no | no |
For further information see group theory.
How do I design an Algebra?
These different algebras listed above all use the same addition and multiplication operations, the difference seems to be the number of dimensions and the way that these dimensions interact.
In all the above cases addition just adds the terms from corresponding dimensions.
Multiplication combines numbers across dimensions, if it did not then we might as well treat each dimension independently. So it is multiplication which differs between each of the above algebras and gives each its own 'flavor'.
In fact, in many cases when applying these algebras in practical cases, we may use only the multiplication operation (see group theory) for example, quaternions when applied to 3D rotations.
So it seems to me that we can define these algebras by a table showing how the multiplication operator combines each dimension with each other dimension.
Some of the key factors seem to be:
- Number of dimensions.
- Result of squaring a dimension (+1 or -1)
- Does the operation conserve distance (this seems very geometry oriented for pure algebra?)
From what I can tell the commutative and associative laws for multipication would be determined from the table




