### 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
 O00 O01 O10 O11
=
 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.