# Flector

A *flector* is an operator that performs an improper isometry in Euclidean space. Such isometries encompass all possible combinations of an odd number of reflections, inversions, transflections, and rotoreflections. The name flector is a portmanteau of *reflection operator*. Flectors cannot perform proper isometries that do not include reflections; those are instead performed by operators called motors.

In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a flector $$\mathbf F$$ has the general form

- $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ ,

which is the sum of a point $$\mathbf p$$ and a plane $$\mathbf g$$. To satisfy the geometric constraint, the components of $$\mathbf F$$ must satisfy the equation

- $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$ ,

and this means that the point $$\mathbf p$$ must lie in the plane $$\mathbf g$$.

An element $$\mathbf x$$ is transformed by a flector $$\mathbf F$$ through the operation $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$, where $$\unicode{x27C7}$$ is the geometric antiproduct.

The set of all flectors is the coset of the set $$\unicode{x1D544}$$ of all motors in a geometric algebra. As such, the set of all flectors is $$\{\mathbf Q \mathbin{\unicode{x27C7}} \mathbf F \mid \mathbf Q \in \unicode{x1D544}\}$$, where $$\mathbf F$$ is any fixed flector. In particular, since $$\mathbf e_4$$ is a flector (representing inversion through the origin), any flector can be written as $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf e_4$$ for some motor $$\mathbf Q$$.

## Norm

The bulk norm of a flector $$\mathbf F$$ is given by

- $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{\mathbf F \mathbin{\unicode{x25CF}} \mathbf{\tilde F}} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$ ,

and its weight norm is given by

- $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = \sqrt{\mathbf F \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}\vphantom{\mathbf{\tilde F}}} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$ .

The geometric norm of a flector $$\mathbf F$$ is thus

- $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$ ,

and this is equal to half the distance that the origin is moved by the operator.

A flector is unitized when $$F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2 = 1$$.

## Trigonometric Form

A general flector $$\mathbf F$$ can be expressed in terms of a unitized point $$\mathbf p$$ and a unitized plane $$\mathbf g$$ as

- $$\mathbf F = \mathbf p\sin\phi + \mathbf g\cos\phi$$ .

This can be interpreted as performing a rotoreflection consisting of a reflection through the plane $$\mathbf g$$ and a rotation by twice the angle $$\phi$$ about an axis perpendicular to $$\mathbf g$$ passing through the point $$\mathbf p$$. All combinations of a reflection, a rotation, and a translation, even if the original rotation axis is not perpendicular to the original reflection plane, can be formulated as a rotoreflection with respect to some plane.

## Factorization

Any unitized flector $$\mathbf F$$ for which $$F_{pw} \neq \pm1$$ can be factored into the product of a simple motor $$\mathbf Q$$ and a plane by calculating

- $$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left(\mathbf F \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{g}}\right)$$ ,

where the division unitizes the plane $$\mathbf g = F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$. The motor $$\mathbf Q$$ is then given by

- $$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left[-F_{gx} F_{pw} \mathbf e_{41} - F_{gy} F_{pw} \mathbf e_{42} - F_{gz} F_{pw} \mathbf e_{43} + (F_{gy} F_{pz} - F_{gz} F_{py})\mathbf e_{23} + (F_{gz} F_{px} - F_{gx} F_{pz})\mathbf e_{31} + (F_{gx} F_{py} - F_{gy} F_{px})\mathbf e_{12} + (1 - F_{pw}^2){\large\unicode{x1d7d9}}\right]$$ ,

which is always unitized. The original flector $$\mathbf F$$ can now be expressed as

- $$\mathbf F = \mathbf Q \mathbin{\unicode{x27C7}} \dfrac{\mathbf g}{\sqrt{1 - F_{pw}^2}}$$ .

## Conversion from Flector to Matrix

Given a specific unitized flector $$\mathbf G$$, define the matrices

- $$\mathbf A = \begin{bmatrix}2(F_{gy}^2 + F_{gz}^2) - 1 & -2F_{gx}F_{gy} & -2F_{gz}F_{gx} & 2(F_{px}F_{pw} - F_{gx}F_{gw}) \\ -2F_{gx}F_{gy} & 2(F_{gz}^2 + F_{gx}^2) - 1 & -2F_{gy}F_{gz} & 2(F_{py}F_{pw} - F_{gy}F_{gw}) \\ -2F_{gz}F_{gx} & -2F_{gy}F_{gz} & 2(F_{gx}^2 + F_{gy}^2) - 1 & 2(F_{pz}F_{pw} - F_{gz}F_{gw}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$

and

- $$\mathbf B = \begin{bmatrix}0 & 2F_{gz}F_{pw} & -2F_{gy}F_{pw} & 2(F_{gy}F_{pz} - F_{gz}F_{py}) \\ -2F_{gz}F_{pw} & 0 & 2F_{gx}F_{pw} & 2(F_{gz}F_{px} - F_{gx}F_{pz}) \\ 2F_{gy}F_{pw} & -2F_{gx}F_{pw} & 0 & 2(F_{gx}F_{py} - F_{gy}F_{px}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ .

Then the corresponding 4×4 matrix $$\mathbf M$$ that transforms a point $$\mathbf q$$, regarded as a column matrix, as $$\mathbf q' = \mathbf{Mq}$$ is given by

- $$\mathbf M = \mathbf A + \mathbf B$$ .

The inverse of $$\mathbf M$$, which transforms a plane $$\mathbf h$$, regarded as a row matrix, as $$\mathbf h' = \mathbf{hM^{-1}}$$ is given by

- $$\mathbf M^{-1} = \mathbf A - \mathbf B$$ .

## Conversion from Matrix to Flector

Let $$\mathbf M$$ be an orthogonal 4×4 matrix with determinant −1 having the form

- $$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ .

Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$:

- $$1 - M_{00} + M_{11} + M_{22} = 4F_{gx}^2$$

- $$1 - M_{11} + M_{22} + M_{00} = 4F_{gy}^2$$

- $$1 - M_{22} + M_{00} + M_{11} = 4F_{gz}^2$$

- $$1 - M_{00} - M_{11} - M_{22} = 4(1 - F_{gx}^2 - F_{gy}^2 - F_{gz}^2) = 4F_{pw}^2$$

And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$:

- $$M_{21} + M_{12} = -4F_{gy}F_{gz}$$

- $$M_{02} + M_{20} = -4F_{gz}F_{gx}$$

- $$M_{10} + M_{01} = -4F_{gx}F_{gy}$$

- $$M_{21} - M_{12} = -4F_{gx}F_{pw}$$

- $$M_{02} - M_{20} = -4F_{gy}F_{pw}$$

- $$M_{10} - M_{01} = -4F_{gz}F_{pw}$$

If $$M_{00} + M_{11} + M_{22} \leq 0$$, then we calculate

- $$F_{pw} = \pm \dfrac{1}{2}\sqrt{1 - M_{00} - M_{11} - M_{22}}$$ ,

where either sign can be chosen. In this case, we know $$|F_{pw}|$$ is at least $$1/2$$, so we can safely divide by $$-4F_{pw}$$ in the last three off-diagonal relationships above to solve for $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} > 0$$, then we select one of the first three diagonal relationships based on the smallest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$F_{gx}$$, $$F_{gy}$$, or $$F_{gz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$F_{pw}$$.

Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$F_{px}$$, $$F_{py}$$, $$F_{pz}$$, and $$F_{gw}$$ are given by

$$F_{px} = \dfrac{1}{2}(F_{pw}t_x + F_{gz}t_y - F_{gy}t_z)$$

$$F_{py} = \dfrac{1}{2}(F_{pw}t_y + F_{gx}t_z - F_{gz}t_x)$$

$$F_{pz} = \dfrac{1}{2}(F_{pw}t_z + F_{gy}t_x - F_{gx}t_y)$$

$$F_{gw} = -\dfrac{1}{2}(F_{gx}t_x + F_{gy}t_y + F_{gz}t_z)$$ .

## Flector Transformations

Points, lines, and planes are transformed by a unitized flector $$\mathbf F$$ as shown in the following table, where $$\mathbf p = (F_{px}, F_{py}, F_{pz})$$ and $$\mathbf g = (F_{gx}, F_{gy}, F_{gz})$$.

Type | Transformation |
---|---|

Point
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ |
$$\mathbf a = \mathbf g \times \mathbf q_{xyz} - q_w\mathbf p$$
$$\mathbf q'_{xyz} = \mathbf q_{xyz} + 2(F_{pw}\mathbf a + \mathbf g \times \mathbf a + F_{gw}q_w\mathbf g)$$ $$q'_w = -q_w$$ |

Line
$$\begin{split}\mathbf k =\, &k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} \\ +\, &k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}\end{split}$$ |
$$\mathbf a = \mathbf g \times \mathbf k_{\mathbf v}$$
$$\mathbf b = \mathbf g \times \mathbf k_{\mathbf m}$$ $$\mathbf c = \mathbf p \times \mathbf k_{\mathbf v}$$ $$\mathbf k'_{\mathbf v} = 2(\mathbf a \times \mathbf g - F_{pw}\mathbf a) - \mathbf k_{\mathbf v}$$ $$\mathbf k'_{\mathbf m} = 2[F_{gw}\mathbf a + F_{pw}(\mathbf c - \mathbf b) + \mathbf g \times (\mathbf c - \mathbf b) + \mathbf p \times \mathbf a] - \mathbf k_{\mathbf m}$$ |

Plane
$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$ |
$$\mathbf a = \mathbf g \times \mathbf h_{xyz}$$
$$\mathbf h'_{xyz} = 2(\mathbf a \times \mathbf g - F_{pw}\mathbf a) - \mathbf h_{xyz}$$ $$h'_w = h_w + 2[(\mathbf h_{xyz} \times \mathbf p - F_{gw}\mathbf h_{xyz}) \cdot \mathbf g + F_{pw}(\mathbf p \cdot \mathbf h_{xyz})]$$ |

## In the Book

- General reflection operators (flectors) are discussed in Section 3.7.