Simple Reflections

If n is a unit vector in ℝk and v is another vector then u = v − 2(v•n)n is the reflection of v about the (k−1)space perpendicular to n. Let ei be an orthonormal basis and n = ∑niei and v = ∑viei and u = ∑uiei.
∑uiei = ∑viei − 2(∑viei•∑niei)∑niei = ∑viei − 2(∑vjnj)∑niei = ∑(vi − 2(∑vjnj)ni)ei.
ui = vi − 2(∑vjnj)ni = Oijvj.
Where Oij = δij − 2 ninj is the matrix of the orthogonal transformation that sends a vector to its reflection.

Note that if n is not a unit vector then u = (nn)v − 2(v•n)n is the reflection of v multiplied by the square of the length of n.
ui = Oijvj where Oij = (∑knk2ij − 2 ninj.

We note that the function of three vectors f(u, v; w) = (u•v)w − 2(w•u)v is linear in each of its three arguments and in particular for fixed u and v, F(u, v) = λw.f(u, v; w) is a linear operator from ℝk to ℝk. F is thus bilinear and defines the ‘quadratic form’ R(v) = F(v, v). I put “quadratic form” in quotes because quadratic forms are supposed to return scalars. If n is a unit vector then F(n, n) is the reflection about the space normal to n. I suspect this generalizes to higher rank Clifford numbers and there may be a bilinear formula for the transformation matrix in terms of Clifford numbers.

I assume that n, as an element of Ck, represents this reflection. The only other Clifford numbers that represents the same reflection in this manner is −n. I pursue the bilinear scheme here.

Simple Rotations

Given two unit vectors, m and n, we compose the reflections defined by each. For a basis we choose k−2 orthogonal unit vectors each orthogonal to m and n, and then two more in the subspace spanned by m and n. For this basis the transformation matrix is orthonormal:
Oij = δij except for i and j both < 2 and then
O00O01
O10O11
=
cos 2θsin 2θ
−sin 2θcos 2θ

where θ is the angle between m and n − cos θ = mn.

The Clifford number mn thus represents this rotation. If m' and n' are two other vectors in the 2-space of m and n then m'∧n' is a scalar multiple of m∧n but the real parts may differ. If the real parts differ then different orientations are denoted but if they are the same then mn = m'n' and the same Clifford number denotes the same orientation, naturally. I suppose that if m and n are unit vectors then mn is a unit bi-vector but I have not found a definition of magnitude for anything but ordinary vectors yet. Add the following code to these tools:

(define (mag x)(if (pair? x)(+ (mag (car x))(mag (cdr x))) (* x x)))
(define (cis th m n)(H+ (H* (Hrls (cos th)) m) (H* (Hrls (sin th)) n)))
(define pi 3.141592653589793238)
(define sx (/ pi 6))
(define cr (H* (cis sx g0 g1) (cis sx g2 g3)))
(mag g0) ; => 1
(mag (cis sx g0 g1)) ; => 1.0
(mag cr) ; => 1.0000000000000002
This suggests that the ‘magnitude’ of the product of two ‘unit’ Clifford numbers is one despite the lack of theory for this definition of magnitude. It also suggests there is a subset of Clifford numbers closed under multiplication for which the magnitude of a product is the produce of magnitudes. But
(let ((a (even (Hsg)))(b (even (Hsg)))) (- (* (Hmag a)(Hmag b)) (Hmag (H* a b))))
shows that not all even values are in this subset.

The orthogonal matrix for the rotation can be computed from the components of m and n by multiplying the matrices, as defined above, of the reflections for m and n.

It seems clear how to generalize to other multi-vectors (Clifford numbers) when the multi-vector is expressed as the product of simple vectors. I do not yet know how to find such factors of a general multi-vector. It is probably as hard as finding eigenvalues of matrices, for such factoring can be used to that end.