https://rigidgeometricalgebra.org/wiki/api.php?action=feedcontributions&user=Eric+Lengyel&feedformat=atomRigid Geometric Algebra - User contributions [en]2024-03-29T11:41:19ZUser contributionsMediaWiki 1.40.0https://rigidgeometricalgebra.org/wiki/index.php?title=Reciprocal_translation&diff=300Reciprocal translation2024-02-28T03:00:01Z<p>Eric Lengyel: Undo revision 299 by Eric Lengyel (talk)</p>
<hr />
<div>__NOTOC__<br />
A ''reciprocal translation'' is a proper isometry of reciprocal Euclidean space.<br />
<br />
The specific kind of [[reciprocal motor]]<br />
<br />
:$$\mathbf T = t_x \mathbf e_{41} + t_y \mathbf e_{42} + t_z \mathbf e_{43} + \mathbf 1$$<br />
<br />
performs a perspective projection in the direction of $$\mathbf t = (t_x, t_y, t_z)$$ with the focal length given by<br />
<br />
:$$g = \dfrac{1}{2\Vert \mathbf t \Vert}$$ .<br />
<br />
== Example ==<br />
<br />
The left image below shows the flow field in the ''x''-''z'' plane for the translation $$\mathbf T = -\frac{1}{2} \mathbf e_{12} + {\large\unicode{x1d7d9}}$$. The right image shows the flow field in the ''x''-''z'' plane for the reciprocal translation $$\mathbf T = \frac{1}{2} \mathbf e_{43} + \mathbf 1$$. The yellow line is fixed as a whole, but points on it move to other locations on the line. All points with $$z = 0$$, represented by the blue plane, are fixed. The white plane at $$z = -1$$ represents the division between regions where the signs of projected $$z$$ coordinates are positive and negative.<br />
<br />
[[Image:Translation.svg|480px]]<br />
[[Image:DualTranslation.svg|480px]]<br />
<br />
== Calculation ==<br />
<br />
The exact reciprocal translation calculations for points, lines, and planes are shown in the following table.<br />
<br />
{| class="wikitable"<br />
! Type || Reciprocal Translation<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
<br />
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$<br />
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + (2t_xp_x + 2t_yp_y + 2t_zp_z + p_w) \mathbf e_4$$<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
<br />
$$\begin{split}\mathbf L =\, &v_x \mathbf e_{41} + v_y \mathbf e_{42} + v_z \mathbf e_{43} \\ +\, &m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}\end{split}$$<br />
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (v_x - 2t_ym_z + 2t_zm_y)\mathbf e_{41} + (v_y - 2t_zm_x + 2t_xm_z)\mathbf e_{42} + (v_z - 2t_xm_y - 2t_ym_x)\mathbf e_{43} + m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}$$<br />
|-<br />
| style="padding: 12px;" | [[Plane]]<br />
<br />
$$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$<br />
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf f \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (f_x - 2t_xf_w) \mathbf e_{234} + (f_y - 2t_yf_w) \mathbf e_{314} + (f_z - 2t_zf_w) \mathbf e_{124} + f_w \mathbf e_{321}$$<br />
|}<br />
<br />
== Reciprocal Translation to Horizon ==<br />
<br />
A plane $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ is reciprocal translated to the horizon by the operator<br />
<br />
:$$\mathbf T = \dfrac{f_{x\vphantom{y}}}{2f_w} \mathbf e_{41} + \dfrac{f_y}{2f_w} \mathbf e_{42} + \dfrac{f_{z\vphantom{y}}}{2f_w} \mathbf e_{43} + \mathbf 1$$ .<br />
<br />
== See Also ==<br />
<br />
* [[Translation]]<br />
* [[Reciprocal rotation]]<br />
* [[Reciprocal reflection]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Reciprocal_translation&diff=299Reciprocal translation2024-02-28T02:57:17Z<p>Eric Lengyel: /* Example */</p>
<hr />
<div>__NOTOC__<br />
A ''reciprocal translation'' is a proper isometry of reciprocal Euclidean space.<br />
<br />
The specific kind of [[reciprocal motor]]<br />
<br />
:$$\mathbf T = t_x \mathbf e_{41} + t_y \mathbf e_{42} + t_z \mathbf e_{43} + \mathbf 1$$<br />
<br />
performs a perspective projection in the direction of $$\mathbf t = (t_x, t_y, t_z)$$ with the focal length given by<br />
<br />
:$$g = \dfrac{1}{2\Vert \mathbf t \Vert}$$ .<br />
<br />
== Example ==<br />
<br />
The left image below shows the flow field in the ''x''-''z'' plane for the translation $$\mathbf T = -\frac{1}{2} \mathbf e_{31} + {\large\unicode{x1d7d9}}$$. The right image shows the flow field in the ''x''-''z'' plane for the reciprocal translation $$\mathbf T = \frac{1}{2} \mathbf e_{42} + \mathbf 1$$. The yellow line is fixed as a whole, but points on it move to other locations on the line. All points with $$z = 0$$, represented by the blue plane, are fixed. The white plane at $$z = -1$$ represents the division between regions where the signs of projected $$z$$ coordinates are positive and negative.<br />
<br />
[[Image:Translation.svg|480px]]<br />
[[Image:DualTranslation.svg|480px]]<br />
<br />
== Calculation ==<br />
<br />
The exact reciprocal translation calculations for points, lines, and planes are shown in the following table.<br />
<br />
{| class="wikitable"<br />
! Type || Reciprocal Translation<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
<br />
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$<br />
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + (2t_xp_x + 2t_yp_y + 2t_zp_z + p_w) \mathbf e_4$$<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
<br />
$$\begin{split}\mathbf L =\, &v_x \mathbf e_{41} + v_y \mathbf e_{42} + v_z \mathbf e_{43} \\ +\, &m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}\end{split}$$<br />
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (v_x - 2t_ym_z + 2t_zm_y)\mathbf e_{41} + (v_y - 2t_zm_x + 2t_xm_z)\mathbf e_{42} + (v_z - 2t_xm_y - 2t_ym_x)\mathbf e_{43} + m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}$$<br />
|-<br />
| style="padding: 12px;" | [[Plane]]<br />
<br />
$$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$<br />
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf f \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (f_x - 2t_xf_w) \mathbf e_{234} + (f_y - 2t_yf_w) \mathbf e_{314} + (f_z - 2t_zf_w) \mathbf e_{124} + f_w \mathbf e_{321}$$<br />
|}<br />
<br />
== Reciprocal Translation to Horizon ==<br />
<br />
A plane $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ is reciprocal translated to the horizon by the operator<br />
<br />
:$$\mathbf T = \dfrac{f_{x\vphantom{y}}}{2f_w} \mathbf e_{41} + \dfrac{f_y}{2f_w} \mathbf e_{42} + \dfrac{f_{z\vphantom{y}}}{2f_w} \mathbf e_{43} + \mathbf 1$$ .<br />
<br />
== See Also ==<br />
<br />
* [[Translation]]<br />
* [[Reciprocal rotation]]<br />
* [[Reciprocal reflection]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Transflection&diff=298Transflection2024-02-09T01:03:00Z<p>Eric Lengyel: </p>
<hr />
<div>A ''transflection'' is an improper isometry of Euclidean space consisting of a [[reflection]] through a plane and a [[translation]] parallel to the same plane. All combinations of a reflection and a translation, even if the original translation vector is not parallel to the original reflection plane, can be formulated as a transflection with respect to some plane.<br />
<br />
The specific kind of [[flector]]<br />
<br />
:$$\mathbf F = F_{px} \mathbf e_{1} + F_{py} \mathbf e_{2} + F_{pz} \mathbf e_{3} + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ ,<br />
<br />
in which $$F_{pw} = 0$$, performs a reflection through the plane $$\mathbf g = F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ and a translation by twice the displacement vector given by the cross product $$(F_{gx}, F_{gy}, F_{gz}) \times (F_{px}, F_{py}, F_{pz})$$.<br />
<br />
To satisfy the [[geometric constraint]], we must have $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} = 0$$, so the vector $$(F_{px}, F_{py}, F_{pz})$$ and the displacement vector are both parallel to the plane $$\mathbf g$$.<br />
<br />
== Calculation ==<br />
<br />
The exact transflection calculations for points, lines, and planes are shown in the following table.<br />
<br />
{| class="wikitable"<br />
! Type || Transformation<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
<br />
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$<br />
| style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(2F_{gy}^2 + 2F_{gz}^2 - 1)q_x - 2F_{gx} F_{gy} q_y - 2F_{gz} F_{gx} q_z + 2(F_{gy} F_{pz} - F_{gz} F_{py} - F_{gx} F_{gw})q_w\right]\mathbf e_1 \\ +\, &\left[(2F_{gz}^2 + 2F_{gx}^2 - 1)q_y - 2F_{gy} F_{gz} q_z - 2F_{gx} F_{gy} q_x + 2(F_{gz} F_{px} - F_{gx} F_{pz} - F_{gy} F_{gw})q_w\right]\mathbf e_2 \\ +\, &\left[(2F_{gx}^2 + 2F_{gy}^2 - 1)q_z - 2F_{gz} F_{gx} q_x - 2F_{gy} F_{gz} q_y + 2(F_{gx} F_{py} - F_{gy} F_{px} - F_{gz} F_{gw})q_w\right]\mathbf e_3 \\ +\, &q_w\mathbf e_4\end{split}$$<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
<br />
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$<br />
| style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(1 - 2F_{gy}^2 - 2F_{gz}^2)l_{vx} + 2F_{gx} F_{gy} l_{vy} + 2 F_{gz} F_{gx} l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2F_{gz}^2 - 2F_{gx}^2)l_{vy} + 2F_{gy} F_{gz} l_{vz} + 2F_{gx} F_{gy} l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2F_{gx}^2 - 2F_{gy}^2)l_{vz} + 2F_{gz} F_{gx} l_{vx} + 2F_{gy} F_{gz} l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(F_{gy} F_{py} + F_{gz} P_{pz})l_{vx} + 2(F_{gx} F_{py} + F_{gy} F_{px})l_{vy} + 2(F_{gx} F_{pz} + F_{gz} F_{px} + F_{gy} F_{gw})l_{vz} + (2F_{gy}^2 + 2F_{gz}^2 - 1)l_{mx} - 2F_{gx} F_{gy} l_{my} - 2F_{gz} F_{gx} l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(F_{gz} F_{pz} + F_{gx} F_{px})l_{vy} + 2(F_{gy} F_{pz} + F_{gz} F_{py})l_{vz} + 2(F_{gy} F_{px} + F_{gx} F_{py} + F_{gz} F_{gw})l_{vx} + (2F_{gz}^2 + 2F_{gx}^2 - 1)l_{my} - 2F_{gy} F_{gz} l_{mz} - 2F_{gx} F_{gy} l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(F_{gx} F_{px} + F_{gy} F_{py})l_{vz} + 2(F_{gz} F_{px} + F_{gx} F_{pz})l_{vx} + 2(F_{gz} F_{py} + F_{gy} F_{pz} + F_{gx} F_{gw})l_{vy} + (2F_{gx}^2 + 2F_{gy}^2 - 1)l_{mz} - 2F_{gz} F_{gx} l_{mx} - 2F_{gy} F_{gz} l_{my}\right]\mathbf e_{12}\end{split}$$<br />
|-<br />
| style="padding: 12px;" | [[Plane]]<br />
<br />
$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$<br />
| style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(1 - 2F_{gy}^2 - 2F_{gz}^2)h_x + 2F_{gx} F_{gy} h_y + 2F_{gz} F_{gx} h_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2F_{gz}^2 - 2F_{gx}^2)h_y + 2F_{gy} F_{gz} h_z + 2F_{gx} F_{gy} h_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2F_{gx}^2 - 2F_{gy}^2)h_z + 2F_{gz} F_{gx} h_x + 2F_{gy} F_{gz} h_y\right]\mathbf e_{412} \\ +\, &\left[2(F_{gy} F_{pz} - F_{gz} F_{py} + F_{gx} F_{gw})h_x + 2(F_{gz} F_{px} - F_{gx} F_{pz} + F_{gy} F_{gw})h_y + 2(F_{gx} F_{py} - F_{gy} F_{px} + F_{gz} F_{gw})h_z - h_w\right]\mathbf e_{321}\end{split}$$<br />
|}<br />
<br />
== See Also ==<br />
<br />
* [[Translation]]<br />
* [[Rotation]]<br />
* [[Reflection]]<br />
* [[Inversion]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Flector&diff=297Flector2024-02-09T01:02:05Z<p>Eric Lengyel: </p>
<hr />
<div>[[Image:improper_isom.svg|400px|thumb|right|'''Figure 1.''' A flector represents an improper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a reflection across a plane perpendicular to the same line.]]<br />
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]].<br />
<br />
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a flector $$\mathbf F$$ has the general form<br />
<br />
:$$\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}$$ ,<br />
<br />
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<br />
<br />
:$$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$ ,<br />
<br />
and this means that the [[point]] $$\mathbf p$$ must lie in the [[plane]] $$\mathbf g$$.<br />
<br />
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]].<br />
<br />
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$$.<br />
<br />
== Norm ==<br />
<br />
The [[bulk norm]] of a flector $$\mathbf F$$ is given by<br />
<br />
:$$\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}$$ ,<br />
<br />
and its [[weight norm]] is given by<br />
<br />
:$$\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}$$ .<br />
<br />
The [[geometric norm]] of a flector $$\mathbf F$$ is thus<br />
<br />
:$$\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}}$$ ,<br />
<br />
and this is equal to half the distance that the origin is moved by the operator.<br />
<br />
A flector is [[unitized]] when $$F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2 = 1$$.<br />
<br />
== Trigonometric Form ==<br />
<br />
A general flector $$\mathbf F$$ can be expressed in terms of a [[unitized]] [[point]] $$\mathbf p$$ and a [[unitized]] [[plane]] $$\mathbf g$$ as<br />
<br />
:$$\mathbf F = \mathbf p\sin\phi + \mathbf g\cos\phi$$ .<br />
<br />
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.<br />
<br />
== Factorization ==<br />
<br />
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<br />
<br />
:$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left(\mathbf F \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{g}}\right)$$ ,<br />
<br />
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<br />
<br />
:$$\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]$$ ,<br />
<br />
which is always unitized. The original flector $$\mathbf F$$ can now be expressed as<br />
<br />
:$$\mathbf F = \mathbf Q \mathbin{\unicode{x27C7}} \dfrac{\mathbf g}{\sqrt{1 - F_{pw}^2}}$$ .<br />
<br />
== Conversion from Flector to Matrix ==<br />
<br />
Given a specific [[Unitization | unitized]] flector $$\mathbf G$$, define the matrices<br />
<br />
:$$\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}$$<br />
<br />
and<br />
<br />
:$$\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}$$ .<br />
<br />
Then the corresponding 4&times;4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf q$$, regarded as a column matrix, as $$\mathbf q' = \mathbf{Mq}$$ is given by<br />
<br />
:$$\mathbf M = \mathbf A + \mathbf B$$ .<br />
<br />
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<br />
<br />
:$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ .<br />
<br />
== Conversion from Matrix to Flector ==<br />
<br />
Let $$\mathbf M$$ be an orthogonal 4&times;4 matrix with determinant &minus;1 having the form<br />
<br />
:$$\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}$$ .<br />
<br />
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$$:<br />
<br />
:$$1 - M_{00} + M_{11} + M_{22} = 4F_{gx}^2$$<br />
<br />
:$$1 - M_{11} + M_{22} + M_{00} = 4F_{gy}^2$$<br />
<br />
:$$1 - M_{22} + M_{00} + M_{11} = 4F_{gz}^2$$<br />
<br />
:$$1 - M_{00} - M_{11} - M_{22} = 4(1 - F_{gx}^2 - F_{gy}^2 - F_{gz}^2) = 4F_{pw}^2$$<br />
<br />
And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$:<br />
<br />
:$$M_{21} + M_{12} = -4F_{gy}F_{gz}$$<br />
<br />
:$$M_{02} + M_{20} = -4F_{gz}F_{gx}$$<br />
<br />
:$$M_{10} + M_{01} = -4F_{gx}F_{gy}$$<br />
<br />
:$$M_{21} - M_{12} = -4F_{gx}F_{pw}$$<br />
<br />
:$$M_{02} - M_{20} = -4F_{gy}F_{pw}$$<br />
<br />
:$$M_{10} - M_{01} = -4F_{gz}F_{pw}$$<br />
<br />
If $$M_{00} + M_{11} + M_{22} \leq 0$$, then we calculate<br />
<br />
:$$F_{pw} = \pm \dfrac{1}{2}\sqrt{1 - M_{00} - M_{11} - M_{22}}$$ ,<br />
<br />
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}$$.<br />
<br />
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<br />
<br />
$$F_{px} = \dfrac{1}{2}(F_{pw}t_x + F_{gz}t_y - F_{gy}t_z)$$<br />
<br />
$$F_{py} = \dfrac{1}{2}(F_{pw}t_y + F_{gx}t_z - F_{gz}t_x)$$<br />
<br />
$$F_{pz} = \dfrac{1}{2}(F_{pw}t_z + F_{gy}t_x - F_{gx}t_y)$$<br />
<br />
$$F_{gw} = -\dfrac{1}{2}(F_{gx}t_x + F_{gy}t_y + F_{gz}t_z)$$ .<br />
<br />
== Flector Transformations ==<br />
<br />
[[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] flector $$\mathbf F$$ as shown in the following table.<br />
<br />
{| class="wikitable"<br />
! Type || Transformation<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
<br />
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$<br />
| style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(2F_{gy}^2 + 2F_{gz}^2 - 1)q_x + 2(F_{gz}F_{pw} - F_{gx}F_{gy})q_y - 2(F_{gy}F_{pw} + F_{gz}F_{gx})q_z + 2(F_{gy}F_{pz} - F_{gz}F_{py} + F_{px}F_{pw} - F_{gx}F_{gw})q_w\right]\mathbf e_1 \\ +\, &\left[(2F_{gz}^2 + 2F_{gx}^2 - 1)q_y + 2(F_{gx}F_{pw} - F_{gy}F_{gz})q_z - 2(F_{gz}F_{pw} + F_{gx}F_{gy})q_x + 2(F_{gz}F_{px} - F_{gx}F_{pz} + F_{py}F_{pw} - F_{gy}F_{gw})q_w\right]\mathbf e_2 \\ +\, &\left[(2F_{gx}^2 + 2F_{gy}^2 - 1)q_z + 2(F_{gy}F_{pw} - F_{gz}F_{gx})q_x - 2(F_{gx}F_{pw} + F_{gy}F_{gz})q_y + 2(F_{gx}F_{py} - F_{gy}F_{px} + F_{pz}F_{pw} - F_{gz}F_{gw})q_w\right]\mathbf e_3 \\ +\, &q_w\mathbf e_4\end{split}$$<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
<br />
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$<br />
| style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(1 - 2F_{gy}^2 - 2F_{gz}^2)l_{vx} + 2(F_{gx}F_{gy} - F_{gz}F_{pw})l_{vy} + 2(F_{gz}F_{gx} + F_{gy}F_{pw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2F_{gz}^2 - 2F_{gx}^2)l_{vy} + 2(F_{gy}F_{gz} - F_{gx}F_{pw})l_{vz} + 2(F_{gx}F_{gy} + F_{gz}F_{pw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2F_{gx}^2 - 2F_{gy}^2)l_{vz} + 2(F_{gz}F_{gx} - F_{gy}F_{pw})l_{vx} + 2(F_{gy}F_{gz} + F_{gx}F_{pw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(F_{gy}F_{py} + F_{gz}F_{pz})l_{vx} + 2(F_{gx}F_{py} + F_{gy}F_{px})l_{vy} + 2(F_{gx}F_{pz} + F_{gz}F_{px} + F_{gy}F_{gw} + F_{py}F_{pw})l_{vz} + (2F_{gy}^2 + 2F_{gz}^2 - 1)l_{mx} + 2(F_{gz}F_{pw} - F_{gx}F_{gy})l_{my} - 2(F_{gy}F_{pw} + F_{gz}F_{gx})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(F_{gz}F_{pz} + F_{gx}F_{px})l_{vy} + 2(F_{gy}F_{pz} + F_{gz}F_{py})l_{vz} + 2(F_{gy}F_{px} + F_{gx}F_{py} + F_{gz}F_{gw} + F_{pz}F_{pw})l_{vx} + (2F_{gz}^2 + 2F_{gx}^2 - 1)l_{my} + 2(F_{gx}F_{pw} - F_{gy}F_{gz})l_{mz} - 2(F_{gz}F_{pw} + F_{gx}F_{gy})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(F_{gx}F_{px} + F_{gy}F_{py})l_{vz} + 2(F_{gz}F_{px} + F_{gx}F_{pz})l_{vx} + 2(F_{gz}F_{py} + F_{gy}F_{pz} + F_{gx}F_{gw} + F_{px}F_{pw})l_{vy} + (2F_{gx}^2 + 2F_{gy}^2 - 1)l_{mz} + 2(F_{gy}F_{pw} - F_{gz}F_{gx})l_{mx} - 2(F_{gx}F_{pw} + F_{gy}F_{gz})l_{my}\right]\mathbf e_{12}\end{split}$$<br />
|-<br />
| style="padding: 12px;" | [[Plane]]<br />
<br />
$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$<br />
| style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(1 - 2F_{gy}^2 - 2F_{gz}^2)h_x + 2(F_{gx}F_{gy} - F_{gz}F_{pw})h_y + 2(F_{gz}F_{gx} + F_{gy}F_{pw})h_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2F_{gz}^2 - 2F_{gx}^2)h_y + 2(F_{gy}F_{gz} - F_{gx}F_{pw})h_z + 2(F_{gx}F_{gy} + F_{gz}F_{pw})h_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2F_{gx}^2 - 2F_{gy}^2)h_z + 2(F_{gz}F_{gx} - F_{gy}F_{pw})h_x + 2(F_{gy}F_{gz} + F_{gx}F_{pw})h_y\right]\mathbf e_{412} \\ +\, &\left[2(F_{gy}F_{pz} - F_{gz}F_{py} + F_{gx}F_{gw} - F_{px}F_{pw})h_x + 2(F_{gz}F_{px} - F_{gx}F_{pz} + F_{gy}F_{gw} - F_{py}F_{pw})h_y + 2(F_{gx}F_{py} - F_{gy}F_{px} + F_{gz}F_{gw} - F_{pz}F_{pw})h_z - h_w\right]\mathbf e_{321}\end{split}$$<br />
|}<br />
<br />
== See Also ==<br />
<br />
* [[Motor]]<br />
* [[Reflection]]<br />
* [[Inversion]]<br />
* [[Transflection]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Motor&diff=296Motor2024-02-09T01:01:44Z<p>Eric Lengyel: </p>
<hr />
<div>[[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a displacement along the same line.]]<br />
A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector''. Motors are equivalent to the set of ''dual quaternions'' used in conventional theories, and the functionality is properly generalized in rigid geometric algebra. Motors cannot perform improper isometries that include an odd number of [[reflections]]; those are instead performed by operators called [[flectors]].<br />
<br />
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a motor $$\mathbf Q$$ has the general form<br />
<br />
:$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ .<br />
<br />
To satisfy the [[geometric constraint]], the components of $$\mathbf Q$$ must satisfy the equation<br />
<br />
:$$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ .<br />
<br />
Motors are capable of representing any general screw motion consisting of a rotation about a line combined with a displacement along the same line. By Chasles' theorem, all proper rigid motions in 3D space are screw motions.<br />
<br />
An element $$\mathbf x$$ is transformed by a motor $$\mathbf Q$$ through the operation $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]].<br />
<br />
The set of all motors, sometimes denoted by $$\unicode{x1D544}$$, forms a subgroup of index 2 in a geometric algebra. Its coset is the set of [[flectors]].<br />
<br />
== Simple Motors ==<br />
<br />
If $$Q_{mw} = 0$$ (i.e., the scalar part $$Q_{\mathbf 1}$$ is zero), then the motor $$\mathbf Q$$ is called a ''simple motor''. Every simple motor represents either a pure [[translation]] or a pure [[rotation]] about a line without any displacement along that line.<br />
<br />
In the case of a pure translation, the motor $$\mathbf T$$ is given by<br />
<br />
:$$\mathbf T = t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + {\large\unicode{x1d7d9}}$$ ,<br />
<br />
and this performs a translation by twice the displacement vector $$(t_x, t_y, t_z)$$.<br />
<br />
In the case of a pure rotation, the motor $$\mathbf R$$ is given by<br />
<br />
:$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ ,<br />
<br />
and this performs a rotation by twice the angle $$\phi$$ about the [[line]] $$\boldsymbol l$$.<br />
<br />
== Motors Built from Geometry ==<br />
<br />
Motors having specific geometric constructions can be built from [[Point | points]], [[Line | lines]], and [[Plane | planes]] as shown in the following table.<br />
<br />
{| class="wikitable"<br />
! Motor|| Description<br />
|-<br />
| style="padding: 12px;" | $$\begin{split}\mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{g}}} =\, &(g_yh_z - g_zh_y)\mathbf e_{41} + (g_zh_x - g_xh_z)\mathbf e_{42} + (g_xh_y - g_yh_x)\mathbf e_{43} \\ +\, &(h_xg_w - g_xh_w)\mathbf e_{23} + (h_yg_w - g_yh_w)\mathbf e_{31} + (h_zg_w - g_zh_w)\mathbf e_{12} \\ +\, &(g_xh_x + g_yh_y + g_zh_z)\smash{\large\unicode{x1d7d9}}\end{split}$$<br />
| style="padding: 12px;" | Rotation about the line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect by twice the angle between them in the direction from $$\mathbf g$$ to $$\mathbf h$$.<br />
<br />
$$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$<br />
<br />
$$\mathbf h = h_x \mathbf e_{234} + h_y \mathbf e_{314} + h_z \mathbf e_{124} + h_w \mathbf e_{321}$$<br />
|-<br />
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}}<br />
=\, &(l_{vz} k_{vy} - l_{vy} k_{vz})\mathbf e_{41} + (l_{vx} k_{vz} - l_{vz} k_{vx})\mathbf e_{42} + (l_{vy} k_{vx} - l_{vx} k_{vy})\mathbf e_{43} \\<br />
+\, &(l_{vz} k_{my} - l_{vy} k_{mz} + l_{mz} k_{vy} - l_{my} k_{vz})\mathbf e_{23} + (l_{vx} k_{mz} - l_{vz} k_{mx} + l_{mx} k_{vz} - l_{mz} k_{vx})\mathbf e_{31} + (l_{vy} k_{mx} - l_{vx} k_{my} + l_{my} k_{vx} - l_{mx} k_{vy})\mathbf e_{12} \\<br />
+\, &(l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + l_{mx} k_{vx} + l_{my} k_{vy} + l_{mz} k_{vz}) \\<br />
+\, &(l_{vx} k_{vx} + l_{vy} k_{vy} + l_{vz} k_{vz})\smash{\large\unicode{x1d7d9}}\end{split}$$<br />
| style="padding: 12px;" | Rotation about the line containing the closest points on lines $$\mathbf k$$ and $$\boldsymbol l$$ by twice the angle between the directions $$(l_{vx}, l_{vy}, l_{vz})$$ and $$(k_{vx}, k_{vy}, k_{vz})$$, and translation by twice the distance between the lines in the direction from $$\mathbf k$$ to $$\boldsymbol l$$.<br />
<br />
$$\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}$$<br />
<br />
$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$<br />
|-<br />
| style="padding: 12px;" | $$\mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{p}}} = (q_xp_w - p_xq_w)\mathbf e_{23} + (q_yp_w - p_yq_w)\mathbf e_{31} + (q_zp_w - p_zq_w)\mathbf e_{12} + (p_wq_w)\smash{\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | Translation by twice the distance between points $$\mathbf p$$ and $$\mathbf q$$ in the direction from $$\mathbf p$$ to $$\mathbf q$$.<br />
<br />
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$<br />
<br />
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$<br />
|}<br />
<br />
== Norm ==<br />
<br />
The [[bulk norm]] of a motor $$\mathbf Q$$ is given by<br />
<br />
:$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{\mathbf Q \mathbin{\unicode{x25CF}} \mathbf{\tilde Q}} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ ,<br />
<br />
and its [[weight norm]] is given by<br />
<br />
:$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = \sqrt{\mathbf Q \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}\vphantom{\mathbf{\tilde Q}}} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ .<br />
<br />
The [[geometric norm]] of a motor $$\mathbf Q$$ is thus<br />
<br />
:$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ ,<br />
<br />
and this is equal to half the distance that the origin is moved by the operator.<br />
<br />
A motor is [[unitized]] when $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$.<br />
<br />
== Exponential Form ==<br />
<br />
A motor $$\mathbf Q$$ can be expressed as the exponential of a [[unitized]] [[line]] $$\boldsymbol l$$ multiplied by $$d + \phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the line $$\boldsymbol l$$, and $$d$$ is half the displacement distance along the line $$\boldsymbol l$$. The exponential form can be written as<br />
<br />
:$$\mathbf Q = \exp_\unicode{x27C7}((d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l) = \cos_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) + \sin_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l$$ .<br />
<br />
This expands to<br />
<br />
:$$\mathbf Q = \boldsymbol l\sin\phi + (d \mathbin{\unicode{x27C7}} \boldsymbol l)\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ ,<br />
<br />
and replacing the [[line]] $$\boldsymbol l$$ with its components gives us<br />
<br />
:$$\mathbf Q = (l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12})\sin\phi + d(l_{vx} \mathbf e_{23} + l_{vy} \mathbf e_{31} + l_{vz} \mathbf e_{12})\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ .<br />
<br />
A motor in exponential form is always [[unitized]], and its [[geometric norm]] can be written as<br />
<br />
:$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{d^2 + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\sin^2\phi}$$ .<br />
<br />
The quantity $$d + \phi{\large\unicode{x1D7D9}}$$, as a homogeneous magnitude, is the ''pitch'' of the screw transformation performed by the motor, which is the amount of translation along the screw axis per radian of rotation.<br />
<br />
== Logarithm ==<br />
<br />
Given an arbitrary [[unitized]] motor $$\mathbf Q$$ with $$|Q_{vw}| < 1$$, the values of $$\boldsymbol l$$, $$d$$, and $$\phi$$ can be determined from the components of $$\mathbf Q$$, essentially taking the logarithm of a motor. First, the [[scalar]] and [[antiscalar]] terms satisfy the equations<br />
<br />
:$$Q_{mw} = -d\sin\phi$$<br />
:$$Q_{vw} = \cos\phi$$ .<br />
<br />
Assuming that $$\phi > 0$$, we define $$s = \sin\phi = \sqrt{1 - Q_{vw}^2}$$. Then,<br />
<br />
:$$d = -\dfrac{Q_{mw}}{s}$$<br />
:$$\phi = \tan^{-1}\left(\dfrac{s}{Q_{vw}}\right)$$ .<br />
<br />
If $$Q_{vw} = 0$$, then we assign $$\phi = \pi/2$$. If $$Q_{vw} < 0$$, then we can add $$\pi$$ to $$\phi$$ to make the angle positive, but this is not required.<br />
<br />
The components of $$\boldsymbol l$$ are then given by<br />
<br />
:$$(l_{vx}, l_{vy}, l_{vz}) = \dfrac{1}{s}(Q_{vx}, Q_{vy}, Q_{vz})$$<br />
<br />
:$$(l_{mx}, l_{my}, l_{mz}) = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) - \dfrac{dQ_{vw}}{s}(Q_{vx}, Q_{vy}, Q_{vz})\right] = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) + \dfrac{Q_{vw} Q_{mw}}{s^2}(Q_{vx}, Q_{vy}, Q_{vz})\right]$$ .<br />
<br />
In the special case that $$Q_{vw} = \pm 1$$, the motor must be a pure [[translation]] with $$\phi = 0$$ and $$(Q_{vx}, Q_{vy}, Q_{vz}) = (0, 0, 0)$$.<br />
<br />
== Square Root ==<br />
<br />
The square root of a [[quaternion]] can be calculated by summing with the identity and renormalizing. If we attempt to do the same thing with a motor $$\mathbf Q$$, we find that it works only under certain conditions. However, such a calculation does give us a starting point from which we can make a correction for the general case.<br />
<br />
Using the exponential form of $$\mathbf Q$$, we first examine the [[weight norm]] of $$\mathbf Q + {\large\unicode{x1D7D9}}$$ and find that<br />
<br />
:$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = \sqrt{\sin^2\phi + (\cos\phi + 1)^2} = \sqrt{\vphantom{\sin^2\phi}2 + 2Q_\smash{\large\unicode{x1D7D9}}}$$ ,<br />
<br />
where $$Q_{\large\unicode{x1D7D9}} = \cos\phi$$. Applying the trigonometric identity $$\cos^2(\phi/2) = (1 + \cos\phi)/2$$, we can rewrite this as<br />
<br />
:$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = 2\cos(\phi/2)$$ .<br />
<br />
Applying several more trigonometric identities, we now observe<br />
<br />
:$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{2\cos(\phi/2)} = \boldsymbol l\sin(\phi/2) + \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\cos(\phi/2) - \dfrac{d}{2}\sin(\phi/2) + {\large\unicode{x1D7D9}}\cos(\phi/2) - \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) - \dfrac{d}{2}\sin(\phi/2)$$ .<br />
<br />
The first four terms are exactly the square root of $$\mathbf Q$$ because the distance $$d$$ and angle $$\phi$$ have both been halved. But there are two additional terms that we need to eliminate. It just so happens that<br />
<br />
:$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} \mathbin{\unicode{x27C7}} \dfrac{d}{2}\tan(\phi/2) = \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) + \dfrac{d}{2}\sin(\phi/2)$$ ,<br />
<br />
which means that<br />
<br />
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} + \dfrac{d}{2}\tan(\phi/2)\right)$$ .<br />
<br />
The scalar component of $$\mathbf Q$$ can be rewritten as $$Q_{\mathbf 1} = -d\sin\phi = -2d\sin(\phi/2)\cos(\phi/2) $$. Dividing this by $$2 + 2Q_{\large\unicode{x1D7D9}} = 4\cos^2(\phi/2)$$ yields<br />
<br />
:$$\dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}} = -\dfrac{d}{2}\tan(\phi/2)$$ .<br />
<br />
The square root of a general motor $$\mathbf Q$$ is thus given by<br />
<br />
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} - \dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}}\right)$$ .<br />
<br />
If $$\mathbf Q$$ is a simple motor, then $$Q_{\mathbf 1} = 0$$, and this reduces to<br />
<br />
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}}$$ .<br />
<br />
== Factorization ==<br />
<br />
Any [[unitized]] motor $$\mathbf Q$$ can be factored into the product of a motor $$\mathbf R = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1D7D9}}$$ corresponding to a pure [[rotation]] about a line through the origin and a motor $$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ corresponding to a pure [[translation]] by calculating<br />
<br />
:$$\mathbf T = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$ .<br />
<br />
The motor $$\mathbf T$$ is then given by<br />
<br />
:$$\mathbf T = (Q_{vy} Q_{mz} - Q_{vz} Q_{my} + Q_{mx} Q_{vw} - Q_{vx} Q_{mw})\mathbf e_{23} + (Q_{vz} Q_{mx} - Q_{vx} Q_{mz} + Q_{my} Q_{vw} - Q_{vy} Q_{mw})\mathbf e_{31} + (Q_{vx} Q_{my} - Q_{vy} Q_{mx} + Q_{mz} Q_{vw} - Q_{vz} Q_{mw})\mathbf e_{12} + {\large\unicode{x1d7d9}}$$ .<br />
<br />
The original motor $$\mathbf Q$$ can now be expressed as<br />
<br />
:$$\mathbf Q = \mathbf T \mathbin{\unicode{x27C7}} \mathbf R$$ ,<br />
<br />
where both $$\mathbf R$$ and $$\mathbf T$$ are [[unitized]] simple motors.<br />
<br />
== Conversion from Motor to Matrix ==<br />
<br />
Given a specific [[Unitization | unitized]] motor $$\mathbf Q$$, define the matrices<br />
<br />
:$$\mathbf A = \begin{bmatrix}1 - 2(Q_{vy}^2 + Q_{vz}^2) & 2Q_{vx} Q_{vy} & 2Q_{vz} Q_{vx} & 2(Q_{vy} Q_{mz} - Q_{vz} Q_{my}) \\ 2Q_{vx} Q_{vy} & 1 - 2(Q_{vz}^2 + Q_{vx}^2) & 2Q_{vy} Q_{vz} & 2(Q_{vz} Q_{mx} - Q_{vx} Q_{mz}) \\ 2Q_{vz} Q_{vx} & 2Q_{vy} Q_{vz} & 1 - 2(Q_{vx}^2 + Q_{vy}^2) & 2(Q_{vx} Q_{my} - Q_{vy} Q_{mx}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$<br />
<br />
and<br />
<br />
:$$\mathbf B = \begin{bmatrix}0 & -2Q_{vz} Q_{vw} & 2Q_{vy} Q_{vw} & 2(Q_{vw} Q_{mx} - Q_{vx} Q_{mw}) \\ 2Q_{vz} Q_{vw} & 0 & -2Q_{vx} Q_{vw} & 2(Q_{vw} Q_{my} - Q_{vy} Q_{mw}) \\ -2Q_{vy} Q_{vw} & 2Q_{vx} Q_{vw} & 0 & 2(Q_{vw} Q_{mz} - Q_{vz} Q_{mw}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ .<br />
<br />
Then the corresponding 4&times;4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf p$$, regarded as a column matrix, as $$\mathbf p' = \mathbf{Mp}$$ is given by<br />
<br />
:$$\mathbf M = \mathbf A + \mathbf B$$ .<br />
<br />
The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf g$$, regarded as a row matrix, as $$\mathbf g' = \mathbf{gM^{-1}}$$ is given by<br />
<br />
:$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ .<br />
<br />
== Conversion from Matrix to Motor ==<br />
<br />
Let $$\mathbf M$$ be an orthogonal 4&times;4 matrix with determinant +1 having the form<br />
<br />
:$$\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}$$ .<br />
<br />
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$$:<br />
<br />
:$$M_{00} - M_{11} - M_{22} + 1 = 4Q_{vx}^2$$<br />
<br />
:$$M_{11} - M_{22} - M_{00} + 1 = 4Q_{vy}^2$$<br />
<br />
:$$M_{22} - M_{00} - M_{11} + 1 = 4Q_{vz}^2$$<br />
<br />
:$$M_{00} + M_{11} + M_{22} + 1 = 4(1 - Q_{vx}^2 - Q_{vy}^2 - Q_{vz}^2) = 4Q_{vw}^2$$<br />
<br />
And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$:<br />
<br />
:$$M_{21} + M_{12} = 4Q_{vy} Q_{vz}$$<br />
<br />
:$$M_{02} + M_{20} = 4Q_{vz} Q_{vx}$$<br />
<br />
:$$M_{10} + M_{01} = 4Q_{vx} Q_{vy}$$<br />
<br />
:$$M_{21} - M_{12} = 4Q_{vx} Q_{vw}$$<br />
<br />
:$$M_{02} - M_{20} = 4Q_{vy} Q_{vw}$$<br />
<br />
:$$M_{10} - M_{01} = 4Q_{vz} Q_{vw}$$<br />
<br />
If $$M_{00} + M_{11} + M_{22} \geq 0$$, then we calculate<br />
<br />
:$$Q_{vw} = \pm \dfrac{1}{2}\sqrt{M_{00} + M_{11} + M_{22} + 1}$$ ,<br />
<br />
where either sign can be chosen. In this case, we know $$|Q_{vw}|$$ is at least $$1/2$$, so we can safely divide by $$4Q_{vw}$$ in the last three off-diagonal relationships above to solve for $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} < 0$$, then we select one of the first three diagonal relationships based on the largest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$Q_{vx}$$, $$Q_{vy}$$, or $$Q_{vz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$Q_{vw}$$.<br />
<br />
Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$Q_{mx}$$, $$Q_{my}$$, $$Q_{mz}$$, and $$Q_{mw}$$ are given by<br />
<br />
$$Q_{mx} = \dfrac{1}{2}(Q_{vw} t_x + Q_{vz} t_y - Q_{vy} t_z)$$<br />
<br />
$$Q_{my} = \dfrac{1}{2}(Q_{vw} t_y + Q_{vx} t_z - Q_{vz} t_x)$$<br />
<br />
$$Q_{mz} = \dfrac{1}{2}(Q_{vw} t_z + Q_{vy} t_x - Q_{vx} t_y)$$<br />
<br />
$$Q_{mw} = -\dfrac{1}{2}(Q_{vx} t_x + Q_{vy} t_y + Q_{vz} t_z)$$ .<br />
<br />
== Motor Transformations ==<br />
<br />
[[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] motor $$\mathbf Q$$ as shown in the following table.<br />
<br />
{| class="wikitable"<br />
! Type || Transformation<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
<br />
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$<br />
| style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)p_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})p_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})p_z + 2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vw}Q_{mx} - Q_{vx}Q_{mw})p_w\right]\mathbf e_1 \\ +\, &\left[(1 - 2Q_{vz}^2 -2Q_{vx}^2))p_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})p_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})p_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vw}Q_{my} - Q_{vy}Q_{mw})p_w\right]\mathbf e_2 \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2))p_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})p_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})p_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vw}Q_{mz} - Q_{vz}Q_{mw})p_w\right]\mathbf e_3 \\ +\, &p_w\mathbf e_4\end{split}$$<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
<br />
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$<br />
| style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{vx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{vy} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{vy} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{vz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{vz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{vx} + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(Q_{vy}Q_{my} + Q_{vz}Q_{mz})l_{vx} + 2(Q_{vy}Q_{mx} + Q_{vx}Q_{my} - Q_{vz}Q_{mw} - Q_{vw}Q_{mz})l_{vy} + 2(Q_{vz}Q_{mx} + Q_{vx}Q_{mz} + Q_{vy}Q_{mw} + Q_{vw}Q_{my})l_{vz} + (1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{mx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{my} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(Q_{vz}Q_{mz} + Q_{vx}Q_{mx})l_{vy} + 2(Q_{vz}Q_{my} + Q_{vy}Q_{mz} - Q_{vx}Q_{mw} - Q_{vw}Q_{mx})l_{vz} + 2(Q_{vx}Q_{my} + Q_{vy}Q_{mx} + Q_{vz}Q_{mw} + Q_{vw}Q_{mz})l_{vx} + (1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{my} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{mz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(Q_{vx}Q_{mx} + Q_{vy}Q_{my})l_{vz} + 2(Q_{vx}Q_{mz} + Q_{vz}Q_{mx} - Q_{vy}Q_{mw} - Q_{vw}Q_{my})l_{vx} + 2(Q_{vy}Q_{mz} + Q_{vz}Q_{my} + Q_{vx}Q_{mw} + Q_{vw}Q_{mx})l_{vy} + (1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{mz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{mx} + 2(Q_{vy}Q_{vz} + 2Q_{vx}Q_{vw})l_{my}\right]\mathbf e_{12}\end{split}$$<br />
|-<br />
| style="padding: 12px;" | [[Plane]]<br />
<br />
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$<br />
| style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)g_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})g_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})g_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)g_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})g_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})g_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)g_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})g_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})g_y\right]\mathbf e_{412} \\ +\, &\left[2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vx}Q_{mw} - Q_{vw}Q_{mx})g_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vy}Q_{mw} - Q_{vw}Q_{my})g_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vz}Q_{mw} - Q_{vw}Q_{mz})g_z + g_w\right]\mathbf e_{321}\end{split}$$<br />
|}<br />
<br />
== See Also ==<br />
<br />
* [[Flector]]<br />
* [[Translation]]<br />
* [[Rotation]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Line&diff=295Line2024-02-09T01:01:26Z<p>Eric Lengyel: </p>
<hr />
<div>[[Image:line.svg|400px|thumb|right|'''Figure 1.''' A line is the intersection of a 4D bivector with the 3D subspace where $$w = 1$$.]]<br />
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''line'' $$\boldsymbol l$$ is a bivector having the general form<br />
<br />
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ .<br />
<br />
The components $$(l_{vx}, l_{vy}, l_{vz})$$ correspond to the line's direction, and the components $$(l_{mx}, l_{my}, l_{mz})$$ correspond to the line's moment. (These are equivalent to the six Plücker coordinates of a line.) To satisfy the [[geometric constraint]], the components of $$\boldsymbol l$$ must satisfy the equation<br />
<br />
:$$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$ ,<br />
<br />
which means that, when regarded as vectors, the direction and moment of a line are perpendicular.<br />
<br />
The [[bulk]] of a line is given by its $$mx$$, $$my$$, and $$mz$$ coordinates, and the [[weight]] of a line is given by its $$vx$$, $$vy$$, and $$vz$$ coordinates. A line is [[unitized]] when $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$. The [[attitude]] of a line is the vector $$l_{vx} \mathbf e_1 + l_{vy} \mathbf e_2 + l_{vz} \mathbf e_3$$ corresponding to its direction.<br />
<br />
When used as an operator in the sandwich with the [[geometric antiproduct]], a line is a specific kind of [[motor]] that performs a 180-degree rotation about itself.<br />
<br />
<br clear="right" /><br />
== Lines at Infinity ==<br />
<br />
[[Image:line_infinity.svg|400px|thumb|right|'''Figure 2.''' A line at infinity consists of all points at infinity in directions perpendicular to the moment $$\mathbf m$$.]]<br />
If the weight of a line is zero (i.e., its $$vx$$, $$vy$$, and $$vz$$ coordinates are all zero), then the line is contained in the horizon infinitely far away in all directions perpendicular to its moment $$\mathbf m = (l_{mx}, l_{my}, l_{mz})$$, regarded as a vector, as shown in Figure 2. Such a line cannot be unitized, but it can be normalized by dividing by its [[bulk norm]].<br />
<br />
When the moment $$\mathbf m$$ is regarded as a bivector, a line at infinity can be thought of as all directions $$\mathbf v$$ parallel to the moment, which satisfy $$\mathbf m \wedge \mathbf v = 0$$.<br />
<br />
<br clear="right" /><br />
== Skew Lines ==<br />
<br />
[[Image:skew_lines.svg|400px|thumb|right|'''Figure 3.''' The line $$\mathbf j$$ connecting skew lines.]]<br />
Given two skew lines $$\boldsymbol l$$ and $$\mathbf k$$, as shown in Figure 3, a third line $$\mathbf j$$ that contains a point on each of the lines $$\boldsymbol l$$ and $$\mathbf k$$ is given by the axis of the [[motor]] $$\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}}$$. The line $$\mathbf j$$ can be found by first calculating the line<br />
<br />
:$$\mathbf i = [\boldsymbol l, \mathbf k]^{\Large\unicode{x27C7}}_- = (l_{vy} k_{vz} - l_{vz} k_{vy})\mathbf e_{41} + (l_{vz} k_{vx} - l_{vx} k_{vz})\mathbf e_{42} + (l_{vx} k_{vy} - l_{vy} k_{vx})\mathbf e_{43} + (l_{vy} k_{mz} - l_{vz} k_{my} + l_{my} k_{vz} - l_{mz} k_{vy})\mathbf e_{23} + (l_{vz} k_{mx} - l_{vx} k_{mz} + l_{mz} k_{vx} - l_{mx} k_{vz})\mathbf e_{31} + (l_{vx} k_{my} - l_{vy} k_{mx} + l_{mx} k_{vy} - l_{my} k_{vx})\mathbf e_{12}$$<br />
<br />
and then orthogonalizing its direction and moment to obtain<br />
<br />
:$$\mathbf j = i_{vx} \mathbf e_{41} + i_{vy} \mathbf e_{42} + i_{vz} \mathbf e_{43} + (i_{mx} - s i_{vx})\mathbf e_{23} + (i_{my} - s i_{vy})\mathbf e_{31} + (i_{mz} - s i_{vz})\mathbf e_{12}$$ ,<br />
<br />
where<br />
<br />
:$$s = \dfrac{i_{vx}i_{mx} + i_{vy}i_{my} + i_{vz}i_{mz}}{i_{vx}^2 + i_{vy}^2 + i_{vz}^2}$$ .<br />
<br />
If $$l_{vx}k_{vx} + l_{vy}k_{vy} + l_{vz}k_{vz} = 0$$, meaning that the directions of the two lines are perpendicular, then $$\mathbf j = \mathbf i$$.<br />
<br />
The direction of $$\mathbf j$$ is perpendicular to the directions of $$\boldsymbol l$$ and $$\mathbf k$$, and it contains the closest points of approach between $$\boldsymbol l$$ and $$\mathbf k$$. The points themselves can then be found by calculating $$(\mathbf j \wedge \operatorname{att}(\boldsymbol l)) \vee \mathbf k$$ and $$(\mathbf j \wedge \operatorname{att}(\mathbf k)) \vee \boldsymbol l$$, where $$\operatorname{att}$$ is the [[attitude]] function.<br />
<br />
<br clear="right" /><br />
<br />
== See Also ==<br />
<br />
* [[Point]]<br />
* [[Plane]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Geometric_norm&diff=294Geometric norm2024-02-09T01:00:58Z<p>Eric Lengyel: /* See Also */</p>
<hr />
<div>The ''geometric norm'' is a measure of the magnitude of an element. It has two components called the bulk norm and the weight norm.<br />
<br />
For [[points]], [[lines]], and [[planes]], the geometric norm is equal to the shortest Euclidean distance between the geometry and the origin. For [[motors]] and [[flectors]], the geometric norm is equal to half the distance that the origin is moved by the isometry operator.<br />
<br />
== Bulk Norm ==<br />
<br />
The ''bulk norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode{x25CF}$$, is the magnitude of its [[bulk]] components. It can be calculated by taking the square root of the [[dot product]] of $$\mathbf u$$ with itself:<br />
<br />
:$$\left\Vert\mathbf u\right\Vert_\unicode{x25CF} = \sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u}$$ .<br />
<br />
An element that has a bulk norm of '''1''' is said to be ''bulk normalized''.<br />
<br />
The following table lists the bulk norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.<br />
<br />
{| class="wikitable"<br />
! Type !! Definition !! Bulk Norm<br />
|-<br />
| style="padding: 12px;" | [[Magnitude]]<br />
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2 + p_z^2}$$<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$<br />
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CF} = \sqrt{l_{mx}^2 + l_{my}^2 + l_{mz}^2}$$<br />
|-<br />
| style="padding: 12px;" | [[Plane]]<br />
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_w|$$<br />
|-<br />
| style="padding: 12px;" | [[Motor]]<br />
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$<br />
|-<br />
| style="padding: 12px;" | [[Flector]]<br />
| style="padding: 12px;" | $$\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}$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$<br />
|}<br />
<br />
== Weight Norm ==<br />
<br />
The ''weight norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode{x25CB}$$, is the magnitude of its [[weight]] components. It can be calculated by taking the square root of the [[antidot product]] of $$\mathbf u$$ with itself:<br />
<br />
:$$\left\Vert\mathbf u\right\Vert_\unicode{x25CB} = \sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}$$ .<br />
<br />
(Note that the square root in this case is taken with respect to the geometric antiproduct.)<br />
<br />
An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''weight normalized'' or ''[[unitized]]''.<br />
<br />
The following table lists the weight norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.<br />
<br />
{| class="wikitable"<br />
! Type !! Definition !! Weight Norm<br />
|-<br />
| style="padding: 12px;" | [[Magnitude]]<br />
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_w|{\large\unicode{x1D7D9}}$$<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$<br />
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}$$<br />
|-<br />
| style="padding: 12px;" | [[Plane]]<br />
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2 + g_z^2}$$<br />
|-<br />
| style="padding: 12px;" | [[Motor]]<br />
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$<br />
|-<br />
| style="padding: 12px;" | [[Flector]]<br />
| style="padding: 12px;" | $$\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}$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$<br />
|}<br />
<br />
== Geometric Norm ==<br />
<br />
The bulk norm and weight norm are summed to construct the ''geometric norm'' given by<br />
<br />
:$$\left\Vert\mathbf u\right\Vert = \left\Vert\mathbf u\right\Vert_\unicode{x25CF} + \left\Vert\mathbf u\right\Vert_\unicode{x25CB} = \sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u} + \sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}$$ .<br />
<br />
This quantity is the sum of a scalar $$a\mathbf 1$$ and antiscalar $$b{\large\unicode{x1D7D9}}$$ representing a ''homogeneous magnitude'' that itself has a bulk and a weight. Its bulk norm is simply the magnitude of its scalar part, and its weight norm is simply the magnitude of its antiscalar part. The geometric norm is idempotent because<br />
<br />
:$$\left\Vert a\mathbf 1 + b{\large\unicode{x1D7D9}}\right\Vert = |a|\mathbf 1 + |b|{\large\unicode{x1D7D9}}$$ .<br />
<br />
Like all other homogeneous quantities, the magnitude given by the geometric norm is [[unitized]] by dividing by its weight norm. The unitized magnitude of an element $$\mathbf u$$ is given by<br />
<br />
:$$\widehat{\left\Vert\mathbf u\right\Vert} = \dfrac{\left\Vert\mathbf u\right\Vert}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} = \dfrac{\left\Vert\mathbf u\right\Vert_\unicode{x25CF}}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} + {\large\unicode{x1D7D9}} = \dfrac{\sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u}}{\sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}} + {\large\unicode{x1D7D9}}$$ .<br />
<br />
The following table lists the unitized geometric norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.<br />
<br />
{| class="wikitable"<br />
! Type !! Definition !! Geometric Norm !! Interpretation<br />
|-<br />
| style="padding: 12px;" | [[Magnitude]]<br />
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$<br />
| style="padding: 12px;" | A Euclidean distance.<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$<br />
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2 + p_z^2}}{|p_w|}$$<br />
| style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$.<br />
<br />
Half the distance that the origin is moved by the [[flector]] $$\mathbf p$$.<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$<br />
| style="padding: 12px;" | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \sqrt{\dfrac{l_{mx}^2 + l_{my}^2 + l_{mz}^2}{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}}$$<br />
| style="padding: 12px;" | Perpendicular distance from the origin to the line $$\boldsymbol l$$.<br />
<br />
Half the distance that the origin is moved by the [[motor]] $$\boldsymbol l$$.<br />
|-<br />
| style="padding: 12px;" | [[Plane]]<br />
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$<br />
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_w|}{\sqrt{g_x^2 + g_y^2 + g_z^2}}$$<br />
| style="padding: 12px;" | Perpendicular distance from the origin to the plane $$\mathbf g$$.<br />
<br />
Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$.<br />
|-<br />
| style="padding: 12px;" | [[Motor]]<br />
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$<br />
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$<br />
| style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$.<br />
|-<br />
| style="padding: 12px;" | [[Flector]]<br />
| style="padding: 12px;" | $$\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}$$<br />
| style="padding: 12px;" | $$\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}}$$<br />
| style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$.<br />
|}<br />
<br />
== See Also ==<br />
<br />
* [[Geometric constraint]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Geometric_constraint&diff=293Geometric constraint2024-02-09T01:00:39Z<p>Eric Lengyel: </p>
<hr />
<div>An element $$\mathbf x$$ of a geometric algebra possesses the ''geometric constraint'' if and only if the [[geometric product]] between $$\mathbf u$$ and its own reverse is a scalar, which is given by the [[dot product]], and the [[geometric antiproduct]] between $$\mathbf u$$ and its own antireverse is an antiscalar, which is given by the [[antidot product]]. That is,<br />
<br />
:$$\mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde u} = \mathbf u \mathbin{\unicode{x25CF}} \mathbf u$$<br />
<br />
and<br />
<br />
:$$\mathbf u \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = \mathbf u \mathbin{\unicode{x25CB}} \mathbf u$$ .<br />
<br />
The set of all elements satisfying the geometric constraint is closed under both the [[geometric product]] and [[geometric antiproduct]].<br />
<br />
The following table lists the requirements that must be satisfied for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ due to the geometric constraint. Points and planes do not have any requirements&mdash;they have no constraints.<br />
<br />
{| class="wikitable"<br />
! Type !! Definition !! Requirement<br />
|-<br />
| style="padding: 12px;" | [[Magnitude]]<br />
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$xy = 0$$<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$<br />
| style="padding: 12px;" | &mdash;<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$<br />
| style="padding: 12px;" | $$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$<br />
|-<br />
| style="padding: 12px;" | [[Plane]]<br />
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$<br />
| style="padding: 12px;" | &mdash;<br />
|-<br />
| style="padding: 12px;" | [[Motor]]<br />
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$<br />
| style="padding: 12px;" | $$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$<br />
|-<br />
| style="padding: 12px;" | [[Flector]]<br />
| style="padding: 12px;" | $$\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}$$<br />
| style="padding: 12px;" | $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$<br />
|}<br />
<br />
== See Also ==<br />
<br />
* [[Geometric norm]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Main_Page&diff=292Main Page2024-02-09T00:59:18Z<p>Eric Lengyel: /* Various properties and unary operations */</p>
<hr />
<div>__NOTOC__<br />
== Rigid Geometric Algebra ==<br />
<br />
This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites:<br />
<br />
* [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site]<br />
* [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site]<br />
<br />
Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres.<br />
<br />
Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki.<br />
<br />
'''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.'''<br />
<br />
== Introduction ==<br />
<br />
[[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]]<br />
In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1.<br />
<br />
There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions.<br />
<br />
There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form<br />
<br />
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ .<br />
<br />
There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$.<br />
<br />
There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order.<br />
<br />
Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation<br />
<br />
:$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ ,<br />
<br />
with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not.<br />
<br />
As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf u$$, denoted by $$\operatorname{gr}(\mathbf u)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization.<br />
<br />
For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements.<br />
<br />
In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf u$$. Denoted by $$\operatorname{ag}(\mathbf u)$$, the antigrade of $$\mathbf u$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that<br />
<br />
:$$\operatorname{gr}(\mathbf u) + \operatorname{ag}(\mathbf u) = n$$ ,<br />
<br />
where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs.<br />
<br />
In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension.<br />
<br />
== Pages ==<br />
<br />
=== The five main types of rigid geometric objects ===<br />
<br />
* [[Point]]<br />
* [[Line]]<br />
* [[Plane]]<br />
* [[Motor]]<br />
* [[Flector]]<br />
<br />
=== Various properties and unary operations ===<br />
<br />
* [[Grade and antigrade]]<br />
* [[Complements]]<br />
* [[Reverses]]<br />
* [[Bulk and weight]]<br />
* [[Attitude]]<br />
* [[Duality]]<br />
* [[Geometric norm]]<br />
* [[Geometric constraint]]<br />
* [[Unitization]]<br />
<br />
=== Products and other binary operations ===<br />
<br />
* [[Exterior products]]<br />
* [[Dot products]]<br />
* [[Interior products]]<br />
* [[Geometric products]]<br />
* [[Join and meet]]<br />
* [[Projections]]<br />
* [[Euclidean distance]]<br />
<br />
=== Isometries of 3D space ===<br />
<br />
* [[Transformation groups]]<br />
* [[Translation]]<br />
* [[Rotation]]<br />
* [[Reflection]]<br />
* [[Inversion]]<br />
* [[Transflection]]<br />
<br />
=== Research Articles ===<br />
<br />
* [[Projective Geometric Algebra Done Right]]<br />
* [[Symmetries in Projective Geometric Algebra]]<br />
* [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Geometric_constraint&diff=291Geometric constraint2024-02-09T00:59:08Z<p>Eric Lengyel: Eric Lengyel moved page Geometric property to Geometric constraint without leaving a redirect</p>
<hr />
<div>An element $$\mathbf x$$ of a geometric algebra possesses the ''geometric property'' if and only if the [[geometric product]] between $$\mathbf u$$ and its own reverse is a scalar, which is given by the [[dot product]], and the [[geometric antiproduct]] between $$\mathbf u$$ and its own antireverse is an antiscalar, which is given by the [[antidot product]]. That is,<br />
<br />
:$$\mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde u} = \mathbf u \mathbin{\unicode{x25CF}} \mathbf u$$<br />
<br />
and<br />
<br />
:$$\mathbf u \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = \mathbf u \mathbin{\unicode{x25CB}} \mathbf u$$ .<br />
<br />
The set of all elements possessing the geometric property is closed under both the [[geometric product]] and [[geometric antiproduct]].<br />
<br />
The following table lists the requirements that must be satisfied for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ to possess the geometric property. Points and planes do not have any requirements&mdash;they all possess the geometric property.<br />
<br />
{| class="wikitable"<br />
! Type !! Definition !! Requirement<br />
|-<br />
| style="padding: 12px;" | [[Magnitude]]<br />
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$xy = 0$$<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$<br />
| style="padding: 12px;" | &mdash;<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$<br />
| style="padding: 12px;" | $$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$<br />
|-<br />
| style="padding: 12px;" | [[Plane]]<br />
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$<br />
| style="padding: 12px;" | &mdash;<br />
|-<br />
| style="padding: 12px;" | [[Motor]]<br />
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$<br />
| style="padding: 12px;" | $$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$<br />
|-<br />
| style="padding: 12px;" | [[Flector]]<br />
| style="padding: 12px;" | $$\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}$$<br />
| style="padding: 12px;" | $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$<br />
|}<br />
<br />
== See Also ==<br />
<br />
* [[Geometric norm]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Space-Antispace_Transform_Correspondence_in_Projective_Geometric_Algebra&diff=290Space-Antispace Transform Correspondence in Projective Geometric Algebra2024-02-08T10:18:18Z<p>Eric Lengyel: </p>
<hr />
<div>'''By Eric Lengyel'''<br /><br />
May 20, 2022<br />
<br />
<br />
[[Image:Antispace1.svg|480px|thumb|right|'''Figure 1.''' The coordinates $$(p_x, p_y, p_z)$$ can be interpreted as the one-dimensional span of a single vector representing a homogeneous point or as the $$(n - 1)$$-dimensional span of all orthogonal vectors representing a homogeneous hyperplane, which is a line when $$n = 3$$. Geometrically, these two interpretations are dual to each other, and their distances to the origin are reciprocals of each other.]]<br />
The concept of duality can be understood geometrically in an ''n''-dimensional projective setting by considering both the subspace that an object occupies and the complementary subspace that the object concurrently does not occupy. The dimensionalities of these two components always sum to ''n'', and they represent the ''space'' and ''antispace'' associated with the object. (Antispace is also known as negative space or counterspace.) The example shown in Figure 1 demonstrates the duality between homogeneous points and lines in a three-dimensional projective space. The triplet of coordinates $$(p_x, p_y, p_z)$$ can be interpreted as a vector pointing from the origin toward a specific location on the projection plane $$z = 1$$. This vector corresponds to the one-dimensional space of the point that it represents. The dual of a point materializes when we consider all of the directions of space that are orthogonal to the single direction $$(p_x, p_y, p_z)$$. As illustrated by the figure, these directions span an $$(n - 1)$$-dimensional subspace that intersects the projection plane at a line when $$n = 3$$. In this way, the coordinates $$(p_x, p_y, p_z)$$ can be interpreted as both a point and a line, and they are ''duals'' of each other.<br />
<br />
When we express the coordinates $$(p_x, p_y, p_z)$$ on the vector basis as $$p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$, it explicitly states that we are working with a single spatial dimension representing a point, and the ambiguity is removed. Similarly, if we express the coordinates on the bivector basis as $$p_x \mathbf e_{23} + p_y \mathbf e_{31} + p_z \mathbf e_{12}$$, then we are working with the two orthogonal spatial dimensions representing a line. In each case, the subscripts of the basis elements tell us which basis vectors are present in the representation, and this defines the ''space'' of the object. The subscripts also tell us which basis vectors are absent in the representation, and this defines the ''antispace'' of the object. Acknowledging the existence of both the space and the antispace of any object and assigning equal meaningfulness to them allows us to explore the nature of duality to its fullest. A vector $$p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ is never only a point, but both a point and a line simultaneously, where the point exists in space, and the line exists in antispace. Likewise, a bivector $$p_x \mathbf e_{23} + p_y \mathbf e_{31} + p_z \mathbf e_{12}$$ is never only a line, but both a line and a point simultaneously, where the line exists in space, and the point exists in antispace. If we study only the spatial facet of these objects and their higher-dimensional counterparts, then we are missing half of a bigger picture.<br />
<br />
It is particularly interesting to consider the Euclidean isometries that map ''n''-dimensional space onto itself while preserving distances and angles. We know how each isometry transforms the space of a point, line, plane, etc., but for a complete understanding of the geometry, we must ask ourselves what happens to the antispace of those objects at the same time. Equivalently, when an object is transformed by an isometry, we would like to know how its dual is transformed. The answer requires that we first look at the invariants associated with each Euclidean isometry.<br />
<br />
In the two-dimensional plane, the Euclidean isometries consist of a rotation about point, a translation in a specific direction, and a transflection with respect to a specific mirroring line. A reflection is a special case of transflection in which there is no motion parallel to the line, and translation is a special case of rotation in which the center lies in the horizon. Naturally, the invariant of a rotation is its center point, and the invariant of a transflection is its mirroring line. These objects are mapped onto themselves by their associated transforms, and this necessitates that their duals also be mapped onto themselves by whatever corresponding transforms occur in antispace. Because a rotation fixes its center point, the corresponding transform in antispace must fix the line that is dual to that point. And because a transflection fixes its mirroring line, the corresponding transform in antispace must fix the point that is dual to that line. These transforms occurring in antispace are reciprocal analogs of the transforms occurring in space. There is a direct correspondence between the two transforms, and they are inextricably linked. Whenever one transform is applied in space, the other is applied in antispace, and vice-versa.<br />
<br />
[[Image:Antispace2.svg|640px|thumb|right|'''Figure 2.''' (Left) A regular rotation fixes the green center point at $$(1, 0)$$ and the horizon. (Right) The corresponding reciprocal rotation fixes the green line at $$x = -1$$ dual to the center point and the origin.]]<br />
Figure 2 shows a two-dimensional rotation transform and its reciprocal analog. The green point represents the center of rotation, and the green line is the dual of that point. Under the regular rotation, the center point is fixed, and under the reciprocal rotation, the line dual to the center point is fixed. These are not, however, the only fixed geometries. A regular rotation also fixes the horizon line, and thus its dual, the origin, must be fixed in the reciprocal rotation. This is illustrated by the red point in the figure, which is the focus of the various conic-section orbits. Here, the green line is the directrix.<br />
<br />
[[Image:Antispace3.svg|640px|thumb|right|'''Figure 3.''' (Left) A regular reflection fixes the green mirroring line at $$x = -1/2$$ and the point in the horizon in the perpendicular direction. (Right) The corresponding reciprocal reflection fixes the green point $$(2, 0)$$ dual to the mirroring line and the line through the origin parallel to the mirroring line.]]<br />
Figure 3 shows a two-dimensional reflection transform and its reciprocal analog. The green line represents the mirroring plane of the reflection, and the green point is the dual of that line. Under the regular reflection, the mirroring line is fixed, and under the reciprocal reflection, the point dual to the mirroring line is fixed. As with rotation, there are additional fixed geometries under these transforms. A regular reflection fixes the point in the horizon in the direction perpendicular to the mirroring plane. The dual of this point is a line parallel to the mirroring line and containing the origin that remains fixed by the reciprocal reflection. This is illustrated by the red line in the figure, which is clearly a reflection boundary in a sense.<br />
<br />
[[Image:Antispace4.svg|640px|thumb|right|'''Figure 4.''' (Left) A regular translation fixes the point in the horizon perpendicular to the direction of translation and every line parallel to the direction of translation. (Right) The corresponding reciprocal translation (a perspective projection) fixes the line parallel to the direction of translation through the origin and every point in the line through the origin perpendicular to the direction of translation.]]<br />
Finally, Figure 4 shows a two-dimensional translation transform and its reciprocal analog. As mentioned above, a translation is a special case of rotation in which the center lies in the horizon. As such, there is no finite fixed geometry that can be shown in the figure for a regular translation. However, the dual of the center in the horizon must be a line containing the origin that is fixed by the reciprocal translation, and that is illustrated by the red line in the figure. Reciprocal translation is especially important because it is the one to which we can most easily assign some practical meaning. It is a ''perspective projection'' onto the line through the origin perpendicular to the direction of translation.<br />
<br />
In the three-dimensional projective geometric algebra $$\mathbb R_{2,0,1}$$, a homogeneous representation of two-dimensional space, a regular rotation about a center point $$\mathbf c$$ is given by<br />
<br />
:$$\mathbf Q = c_x \mathbf e_1 + c_y \mathbf e_2 + c_z \mathbf e_3 + r {\large\unicode{x1D7D9}}$$,<br />
<br />
and this becomes a translation when $$c_z = 0$$. A regular transflection across the line $$\mathbf h$$ is given by<br />
<br />
:$$\mathbf F = s + h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$,<br />
<br />
and this becomes a pure reflection when $$s = 0$$. Together, these operators include all possible Euclidean isometries in the two-dimensional plane. Under the geometric antiproduct $$\unicode{x27C7}$$, arbitrary products of these operators form the group $$\mathrm E(2)$$ with $${\large\unicode{x1D7D9}}$$ as the identity, and they covariantly transform any object $$\mathbf a$$ in the algebra through the sandwich products<br />
<br />
:$$\mathbf a' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf a \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$<br />
<br />
and<br />
<br />
:$$\mathbf a' = \mathbf F \mathbin{\unicode{x27C7}} \mathbf a \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$.<br />
<br />
Symmetrically, a reciprocal rotation about the line $$\mathbf c$$ is given by<br />
<br />
:$$\mathcal Q = c_x \mathbf e_{23} + c_y \mathbf e_{31} + c_z \mathbf e_{12} - r$$,<br />
<br />
and a reciprocal transflection across the point $$\mathbf h$$ is given by<br />
<br />
:$$\mathcal F = h_x \mathbf e_1 + h_y \mathbf e_2 + h_z \mathbf e_3 - s {\large\unicode{x1D7D9}}$$.<br />
<br />
These two operators generate a different group of transformations under the geometric product $$\unicode{x27D1}$$. Arbitrary products of these operators form the reciprocal Euclidean group $$\mathrm{RE}(2)$$ with $$\mathbf 1$$ as the identity, and they covariantly transform any object $$\mathbf a$$ in the algebra through the sandwich products<br />
<br />
:$$\mathbf a' = \mathcal Q \mathbin{\unicode{x27D1}} \mathbf a \mathbin{\unicode{x27D1}} \mathcal{\tilde Q}$$<br />
<br />
and<br />
<br />
:$$\mathbf a' = \mathcal F \mathbin{\unicode{x27D1}} \mathbf a \mathbin{\unicode{x27D1}} \mathcal{\tilde F}$$<br />
<br />
The groups $$\mathrm E(2)$$ and $$\mathrm{RE}(2)$$ are isomorphic, and they each contain the orthogonal group $$\mathrm O(2)$$ as a common subgroup. The complement operation provides a two-way mapping between transforms associated with members of $$\mathrm E(2)$$ and $$\mathrm{RE}(2)$$.<br />
<br />
The invariant geometries of the four types of transforms described above are summarized in Table 1. The Euclidean isometries always fix a coinvariant contained in the horizon, and the corresponding reciprocal transforms always fix a coinvariant containing the origin. In general, if $$\mathbf x$$ is the primary invariant of a Euclidean isometry, then the complement of the weight of $$\mathbf x$$ gives the coinvariant. Symmetrically, if $$\mathbf x$$ is the primary invariant of a reciprocal transform, then the complement of the bulk of $$\mathbf x$$ gives the coinvariant. When the primary invariant of a Euclidean isometry contains the origin, there is a corresponding reciprocal transform that performs the same operation. Symmetrically, when the primary invariant of a reciprocal transform is contained in the horizon, there is a corresponding Euclidean isometry that performs the same operation. These are where $$\mathrm E(2)$$ and $$\mathrm{RE}(2)$$ intersect at $$\mathrm O(2)$$.<br />
<br />
{| class="wikitable"<br />
|+ style="caption-side: bottom; padding-top: 0.5em; text-align: left; font-size: 92%; font-weight: normal;" | '''Table 1.''' These are the invariants of transforms occurring in the 3D projective geometric algebra representing the 2D plane. The primary invariant of any regular transform (a Euclidean isometry) or dual transform is given by the vector or bivector components of the operator itself. The coinvariant is given by the weight complement of the primary invariant in the case of regular transforms and by the bulk complement of the primary invariant in the case of dual transforms.<br />
|-<br />
! Transform !! Primary Invariant !! Coinvariant<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Regular rotation<br />$$\mathbf Q = c_x \mathbf e_1 + c_y \mathbf e_2 + c_z \mathbf e_3 + r {\large\unicode{x1D7D9}}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Point $$c_x \mathbf e_1 + c_y \mathbf e_2 + c_z \mathbf e_3$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Horizon line $$\mathbf e_{12}$$<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Regular transflection<br />$$\mathbf F = s + h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Line $$h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Point in horizon $$h_x \mathbf e_1 + h_y \mathbf e_2$$<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Reciprocal rotation<br />$$\mathcal Q = c_x \mathbf e_{23} + c_y \mathbf e_{31} + c_z \mathbf e_{12} - r$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Line $$c_x \mathbf e_{23} + c_y \mathbf e_{31} + c_z \mathbf e_{12}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Origin point $$\mathbf e_3$$<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Reciprocal transflection<br />$$\mathcal F = h_x \mathbf e_1 + h_y \mathbf e_2 + h_z \mathbf e_3 - s {\large\unicode{x1D7D9}}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Point $$h_x \mathbf e_1 + h_y \mathbf e_2 + h_z \mathbf e_3$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Line through origin $$h_x \mathbf e_{23} + h_y \mathbf e_{31}$$<br />
|}<br />
<br />
<br />
In the four-dimensional projective geometric algebra $$\mathbb R_{3,0,1}$$ representing three-dimensional space, every Euclidean isometry is either a screw transform $$\mathbf Q$$ or a rotoreflection $$\mathbf F$$. (The only geometrical difference between these is that the displacement along the rotation axis in a screw transform is replaced by a reflection in a plane perpendicular to the rotation axis in a rotoreflection.) The primary invariant of a screw transform is its bivector components, which corresponds to the line about which a rotation is taking place. A rotoreflection can have two primary invariants, one associated with its vector components and a second associated with its trivector components. These invariants, the invariants of the corresponding reciprocal transforms, and the coinvariants for each are summarized in Table 2.<br />
<br />
{| class="wikitable"<br />
|+ style="caption-side: bottom; padding-top: 0.5em; text-align: left; font-size: 92%; font-weight: normal;" | '''Table 2.''' These are the invariants of transforms occurring in the 4D projective geometric algebra representing 3D space. The primary invariant of any regular transform (a Euclidean isometry) or reciprocal transform is given by the vector, bivector, or trivector components of the operator itself. The coinvariants are given by the weight complement of each primary invariant in the case of regular transforms and by the bulk complement of each primary invariant in the case of reciprocal transforms.<br />
|-<br />
! Transform !! Primary Invariants !! Coinvariants<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Regular screw transform<br />$$\mathbf Q = r_x \mathbf e_{41} + r_y \mathbf e_{42} + r_z \mathbf e_{43} + r_w {\large\unicode{x1D7D9}} + u_x \mathbf e_{23} + u_y \mathbf e_{31} + u_z \mathbf e_{12} + u_w$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Line $$r_x \mathbf e_{41} + r_y \mathbf e_{42} + r_z \mathbf e_{43} + u_x \mathbf e_{23} + u_y \mathbf e_{31} + u_z \mathbf e_{12}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Line in horizon $$r_x \mathbf e_{23} + r_y \mathbf e_{31} + r_z \mathbf e_{12}$$<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Regular rotoreflection<br />$$\mathbf F = s_x \mathbf e_1 + s_y \mathbf e_2 + s_z \mathbf e_3 + s_w \mathbf e_4 + h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Plane $$h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$,<br />Point $$s_x \mathbf e_1 + s_y \mathbf e_2 + s_z \mathbf e_3 + s_w \mathbf e_4$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Point in horizon $$h_x \mathbf e_1 + h_y \mathbf e_2 + h_z \mathbf e_3$$,<br />Horizon $$e_{321}$$<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Reciprocal screw transform<br />$$\mathbf Q = u_x \mathbf e_{41} + u_y \mathbf e_{42} + u_z \mathbf e_{43} - u_w {\large\unicode{x1D7D9}} + r_x \mathbf e_{23} + r_y \mathbf e_{31} + r_z \mathbf e_{12} - r_w$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Line $$u_x \mathbf e_{41} + u_y \mathbf e_{42} + u_z \mathbf e_{43} + r_x \mathbf e_{23} + r_y \mathbf e_{31} + r_z \mathbf e_{12}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Line through origin $$r_x \mathbf e_{41} + r_y \mathbf e_{42} + r_z \mathbf e_{43}$$<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Reciprocal rotoreflection<br />$$\mathcal F = h_x \mathbf e_1 + h_y \mathbf e_2 + h_z \mathbf e_3 + h_w \mathbf e_4 + s_x \mathbf e_{423} + s_y \mathbf e_{431} + s_z \mathbf e_{412} + s_w \mathbf e_{321}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Point $$h_x \mathbf e_1 + h_y \mathbf e_2 + h_z \mathbf e_3 + h_w \mathbf e_4$$,<br />Plane $$s_x \mathbf e_{423} + s_y \mathbf e_{431} + s_z \mathbf e_{412} + s_w \mathbf e_{321}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Plane through origin $$h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412}$$,<br />Origin $$\mathbf e_4$$<br />
|}<br />
<br />
<br />
The unit-weight invertible elements of the $$(n + 1)$$-dimensional projective geometric algebra $$\mathbb R_{n,0,1}$$ constitute a double cover of both the groups $$\mathrm E(n)$$ and $$\mathrm{RE}(n)$$. The geometric product corresponds to transform composition in the group $$\mathrm{RE}(n)$$, and the geometric antiproduct corresponds to transform com-position in the group $$\mathrm E(n)$$. Regular reflections across planes are represented by antivectors (having antigrade one), and they meet at lower-dimensional invariants under the geometric antiproduct. Symmetrically, reciprocal reflections across points are represented by vectors (having grade one), and they join at higher-dimensional invariants under the geometric product. A sandwich product<br />
<br />
:$$\mathcal Q \mathbin{\unicode{x27D1}} \mathbf a \mathbin{\unicode{x27D1}} \mathcal{\tilde Q}$$<br />
<br />
transforms the space of $$\mathbf a$$ with an element of $$\mathrm{RE}(n)$$, and it transforms the antispace of $$\mathbf a$$ with the complementary element of $$\mathrm E(n)$$. Symmetrically, a sandwich product<br />
<br />
:$$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf a \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$<br />
<br />
transforms the space of $$\mathbf a$$ with an element of $$\mathrm E(n)$$, and it transforms the antispace of $$\mathbf a$$ with the complementary element of $$\mathrm{RE}(n)$$.<br />
<br />
[[Image:Antispace5.svg|640px|thumb|right|'''Figure 5.''' The unit-weight invertible elements of the projective geometric algebra $$\mathbb R_{n,0,1}$$ are a double cover of both the Euclidean group $$\mathrm E(n)$$ and the reciprocal Euclidean group $$\mathrm{RE}(n)$$. Elements corresponding to transforms in $$\mathrm E(n)$$ are composed with the geometric antiproduct, and elements corresponding to transforms in $$\mathrm{RE}(n)$$ are composed with the geometric product. Transforms belonging to the common subgroup $$\mathrm O(n)$$ have two representations in $$\mathbb R_{n,0,1}$$, one associated with the geometric product, and one associated with the geometric antiproduct.]]<br />
The groups $$\mathrm E(n)$$ and $$\mathrm{RE}(n)$$ have a number of subgroups, and the hierarchical relationships among them are shown in Figure 5. In particular, the Euclidean group $$\mathrm E(n)$$ contains the special Euclidean subgroup $$\mathrm{SE}(n)$$ consisting of all combinations of regular rotations, which are covered by the antigrade 2 elements of $$\mathbb R_{n,0,1}$$. Correspondingly, the reciprocal Euclidean group $$\mathrm{RE}(n)$$ contains the reciprocal special Euclidean subgroup $$\mathrm{RSE}(n)$$ consisting of all combinations of reciprocal rotations, which are covered by the grade 2 elements of $$\mathbb R_{n,0,1}$$. The subgroups $$\mathrm{SE}(n)$$ and $$\mathrm{RSE}(n)$$ further contain translation subgroups $$\mathrm T(n)$$ and $$\mathrm{RT}(n)$$, respectively.<br />
<br />
Transforms about invariants containing the origin are the same in both $$\mathrm E(n)$$ and $$\mathrm{RE}(n)$$, and they constitute the common subgroup $$\mathrm O(n)$$. Every member of $$\mathrm O(n)$$ has a representation in $$\mathbb R_{n,0,1}$$ that transforms elements with the geometric product and a complementary representation that transforms elements with the geometric antiproduct. For example, in $$\mathbb R_{3,0,1}$$, a conventional quaternion $$\mathbf q$$ can be expressed as<br />
<br />
:$$\mathbf q = x \mathbf e_{23} + y \mathbf e_{31} + z \mathbf e_{12} - w \mathbf 1$$,<br />
<br />
which covariantly transforms any object $$\mathbf a$$ with the sandwich product $$\mathbf q \mathbin{\unicode{x27D1}} \mathbf a \mathbin{\unicode{x27D1}} \mathbf{\tilde q}$$, and it can be expressed as<br />
<br />
:$$\mathbf q = x \mathbf e_{41} + y \mathbf e_{42} + z \mathbf e_{43} + w {\large\unicode{x1D7D9}}$$,<br />
<br />
which covariantly transforms any object $$\mathbf a$$ with the sandwich product $$\mathbf q \mathbin{\unicode{x27C7}} \mathbf a \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{q}}}$$.<br />
<br />
In terms of matrix multiplication, a general element of the group $$\mathrm E(n)$$ transforms a point by multiplying on the left by an $$(n + 1) \times (n + 1)$$ matrix of the form<br />
<br />
:$$\begin{bmatrix} \mathbf m_{n \times n} & \mathbf t_{n \times 1} \\ \mathbf 0_{1 \times n} & 1\end{bmatrix}$$<br />
<br />
where the $$n \times n$$ submatrix $$\mathbf m$$ is orthogonal. A general element of the corresponding group $$\mathrm{RE}(n)$$ transforms points with matrices of the form<br />
<br />
:$$\begin{bmatrix} \mathbf m_{n \times n} & \mathbf 0_{n \times 1} \\ \mathbf t_{1 \times n} & 1\end{bmatrix}$$<br />
<br />
In the special subgroups of $$\mathrm E(n)$$ and $$\mathrm{RE}(n)$$, the submatrix $$\mathbf m$$ has a determinant of $$+1$$. In the translation subgroups $$\mathrm T(n)$$ and $$\mathrm{RT}(n)$$, $$\mathbf m$$ is the identity matrix. Finally, when $$\mathbf t = \mathbf 0$$, both matrices have the same form and belong to $$\mathrm O(n)$$.<br />
<br />
The isomorphic mapping between $$\mathrm E(n)$$ and $$\mathrm{RE}(n)$$ is given by the inverse transpose operation on the matrix representatives. That is, if $$\mathbf M$$ is an $$(n + 1) \times (n + 1)$$ matrix representing an element of $$\mathrm E(n)$$, then the corresponding element of $$\mathrm{RE}(n)$$ is given by $$\mathbf (M^{-1})^{\mathrm T}$$. Of course, this operation is an involution, and the mapping works both ways.</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Space-Antispace_Transform_Correspondence_in_Projective_Geometric_Algebra&diff=289Space-Antispace Transform Correspondence in Projective Geometric Algebra2024-02-08T10:12:56Z<p>Eric Lengyel: </p>
<hr />
<div>'''By Eric Lengyel'''<br /><br />
May 20, 2022<br />
<br />
<br />
[[Image:Antispace1.svg|480px|thumb|right|'''Figure 1.''' The coordinates $$(p_x, p_y, p_z)$$ can be interpreted as the one-dimensional span of a single vector representing a homogeneous point or as the $$(n - 1)$$-dimensional span of all orthogonal vectors representing a homogeneous hyperplane, which is a line when $$n = 3$$. Geometrically, these two interpretations are dual to each other, and their distances to the origin are reciprocals of each other.]]<br />
The concept of duality can be understood geometrically in an ''n''-dimensional projective setting by considering both the subspace that an object occupies and the complementary subspace that the object concurrently does not occupy. The dimensionalities of these two components always sum to ''n'', and they represent the ''space'' and ''antispace'' associated with the object. (Antispace is also known as negative space or counterspace.) The example shown in Figure 1 demonstrates the duality between homogeneous points and lines in a three-dimensional projective space. The triplet of coordinates $$(p_x, p_y, p_z)$$ can be interpreted as a vector pointing from the origin toward a specific location on the projection plane $$z = 1$$. This vector corresponds to the one-dimensional space of the point that it represents. The dual of a point materializes when we consider all of the directions of space that are orthogonal to the single direction $$(p_x, p_y, p_z)$$. As illustrated by the figure, these directions span an $$(n - 1)$$-dimensional subspace that intersects the projection plane at a line when $$n = 3$$. In this way, the coordinates $$(p_x, p_y, p_z)$$ can be interpreted as both a point and a line, and they are ''duals'' of each other.<br />
<br />
When we express the coordinates $$(p_x, p_y, p_z)$$ on the vector basis as $$p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$, it explicitly states that we are working with a single spatial dimension representing a point, and the ambiguity is removed. Similarly, if we express the coordinates on the bivector basis as $$p_x \mathbf e_{23} + p_y \mathbf e_{31} + p_z \mathbf e_{12}$$, then we are working with the two orthogonal spatial dimensions representing a line. In each case, the subscripts of the basis elements tell us which basis vectors are present in the representation, and this defines the ''space'' of the object. The subscripts also tell us which basis vectors are absent in the representation, and this defines the ''antispace'' of the object. Acknowledging the existence of both the space and the antispace of any object and assigning equal meaningfulness to them allows us to explore the nature of duality to its fullest. A vector $$p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ is never only a point, but both a point and a line simultaneously, where the point exists in space, and the line exists in antispace. Likewise, a bivector $$p_x \mathbf e_{23} + p_y \mathbf e_{31} + p_z \mathbf e_{12}$$ is never only a line, but both a line and a point simultaneously, where the line exists in space, and the point exists in antispace. If we study only the spatial facet of these objects and their higher-dimensional counterparts, then we are missing half of a bigger picture.<br />
<br />
It is particularly interesting to consider the Euclidean isometries that map ''n''-dimensional space onto itself while preserving distances and angles. We know how each isometry transforms the space of a point, line, plane, etc., but for a complete understanding of the geometry, we must ask ourselves what happens to the antispace of those objects at the same time. Equivalently, when an object is transformed by an isometry, we would like to know how its dual is transformed. The answer requires that we first look at the invariants associated with each Euclidean isometry.<br />
<br />
In the two-dimensional plane, the Euclidean isometries consist of a rotation about point, a translation in a specific direction, and a transflection with respect to a specific mirroring line. A reflection is a special case of transflection in which there is no motion parallel to the line, and translation is a special case of rotation in which the center lies in the horizon. Naturally, the invariant of a rotation is its center point, and the invariant of a transflection is its mirroring line. These objects are mapped onto themselves by their associated transforms, and this necessitates that their duals also be mapped onto themselves by whatever corresponding transforms occur in antispace. Because a rotation fixes its center point, the corresponding transform in antispace must fix the line that is dual to that point. And because a transflection fixes its mirroring line, the corresponding transform in antispace must fix the point that is dual to that line. These transforms occurring in antispace are reciprocal analogs of the transforms occurring in space. There is a direct correspondence between the two transforms, and they are inextricably linked. Whenever one transform is applied in space, the other is applied in antispace, and vice-versa.<br />
<br />
[[Image:Antispace2.svg|640px|thumb|right|'''Figure 2.''' (Left) A regular rotation fixes the green center point at $$(1, 0)$$ and the horizon. (Right) The corresponding reciprocal rotation fixes the green line at $$x = -1$$ dual to the center point and the origin.]]<br />
Figure 2 shows a two-dimensional rotation transform and its reciprocal analog. The green point represents the center of rotation, and the green line is the dual of that point. Under the regular rotation, the center point is fixed, and under the reciprocal rotation, the line dual to the center point is fixed. These are not, however, the only fixed geometries. A regular rotation also fixes the horizon line, and thus its dual, the origin, must be fixed in the reciprocal rotation. This is illustrated by the red point in the figure, which is the focus of the various conic-section orbits. Here, the green line is the directrix.<br />
<br />
[[Image:Antispace3.svg|640px|thumb|right|'''Figure 3.''' (Left) A regular reflection fixes the green mirroring line at $$x = -1/2$$ and the point in the horizon in the perpendicular direction. (Right) The corresponding reciprocal reflection fixes the green point $$(2, 0)$$ dual to the mirroring line and the line through the origin parallel to the mirroring line.]]<br />
Figure 3 shows a two-dimensional reflection transform and its reciprocal analog. The green line represents the mirroring plane of the reflection, and the green point is the dual of that line. Under the regular reflection, the mirroring line is fixed, and under the reciprocal reflection, the point dual to the mirroring line is fixed. As with rotation, there are additional fixed geometries under these transforms. A regular reflection fixes the point in the horizon in the direction perpendicular to the mirroring plane. The dual of this point is a line parallel to the mirroring line and containing the origin that remains fixed by the reciprocal reflection. This is illustrated by the red line in the figure, which is clearly a reflection boundary in a sense.<br />
<br />
[[Image:Antispace4.svg|640px|thumb|right|'''Figure 4.''' (Left) A regular translation fixes the point in the horizon perpendicular to the direction of translation and every line parallel to the direction of translation. (Right) The corresponding reciprocal translation (a perspective projection) fixes the line parallel to the direction of translation through the origin and every point in the line through the origin perpendicular to the direction of translation.]]<br />
Finally, Figure 4 shows a two-dimensional translation transform and its reciprocal analog. As mentioned above, a translation is a special case of rotation in which the center lies in the horizon. As such, there is no finite fixed geometry that can be shown in the figure for a regular translation. However, the dual of the center in the horizon must be a line containing the origin that is fixed by the reciprocal translation, and that is illustrated by the red line in the figure. Reciprocal translation is especially important because it is the one to which we can most easily assign some practical meaning. It is a ''perspective projection'' onto the line through the origin perpendicular to the direction of translation.<br />
<br />
In the three-dimensional projective geometric algebra $$\mathbb R_{2,0,1}$$, a homogeneous representation of two-dimensional space, a regular rotation about a center point $$\mathbf c$$ is given by<br />
<br />
:$$\mathbf Q = c_x \mathbf e_1 + c_y \mathbf e_2 + c_z \mathbf e_3 + r {\large\unicode{x1D7D9}}$$,<br />
<br />
and this becomes a translation when $$c_z = 0$$. A regular transflection across the line $$\mathbf h$$ is given by<br />
<br />
:$$\mathbf F = s + h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$,<br />
<br />
and this becomes a pure reflection when $$s = 0$$. Together, these operators include all possible Euclidean isometries in the two-dimensional plane. Under the geometric antiproduct $$\unicode{x27C7}$$, arbitrary products of these operators form the group $$\mathrm E(2)$$ with $${\large\unicode{x1D7D9}}$$ as the identity, and they covariantly transform any object $$\mathbf a$$ in the algebra through the sandwich products<br />
<br />
:$$\mathbf a' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf a \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$<br />
<br />
and<br />
<br />
:$$\mathbf a' = \mathbf F \mathbin{\unicode{x27C7}} \mathbf a \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$.<br />
<br />
Symmetrically, a reciprocal rotation about the line $$\mathbf c$$ is given by<br />
<br />
:$$\mathcal Q = c_x \mathbf e_{23} + c_y \mathbf e_{31} + c_z \mathbf e_{12} - r$$,<br />
<br />
and a reciprocal transflection across the point $$\mathbf h$$ is given by<br />
<br />
:$$\mathcal F = h_x \mathbf e_1 + h_y \mathbf e_2 + h_z \mathbf e_3 - s {\large\unicode{x1D7D9}}$$.<br />
<br />
These two operators generate a different group of transformations under the geometric product $$\unicode{x27D1}$$. Arbitrary products of these operators form the reciprocal Euclidean group $$\mathrm{RE}(2)$$ with $$\mathbf 1$$ as the identity, and they covariantly transform any object $$\mathbf a$$ in the algebra through the sandwich products<br />
<br />
:$$\mathbf a' = \mathcal Q \mathbin{\unicode{x27D1}} \mathbf a \mathbin{\unicode{x27D1}} \mathcal{\tilde Q}$$<br />
<br />
and<br />
<br />
:$$\mathbf a' = \mathcal F \mathbin{\unicode{x27D1}} \mathbf a \mathbin{\unicode{x27D1}} \mathcal{\tilde F}$$<br />
<br />
The groups $$\mathrm E(2)$$ and $$\mathrm{RE}(2)$$ are isomorphic, and they each contain the orthogonal group $$\mathrm O(2)$$ as a common subgroup. The complement operation provides a two-way mapping between transforms associated with members of $$\mathrm E(2)$$ and $$\mathrm{RE}(2)$$.<br />
<br />
The invariant geometries of the four types of transforms described above are summarized in Table 1. The Euclidean isometries always fix a coinvariant contained in the horizon, and the corresponding reciprocal transforms always fix a coinvariant containing the origin. In general, if $$\mathbf x$$ is the primary invariant of a Euclidean isometry, then the complement of the weight of $$\mathbf x$$ gives the coinvariant. Symmetrically, if $$\mathbf x$$ is the primary invariant of a reciprocal transform, then the complement of the bulk of $$\mathbf x$$ gives the coinvariant. When the primary invariant of a Euclidean isometry contains the origin, there is a corresponding reciprocal transform that performs the same operation. Symmetrically, when the primary invariant of a reciprocal transform is contained in the horizon, there is a corresponding Euclidean isometry that performs the same operation. These are where $$\mathrm E(2)$$ and $$\mathrm{RE}(2)$$ intersect at $$\mathrm O(2)$$.<br />
<br />
{| class="wikitable"<br />
|+ style="caption-side: bottom; padding-top: 0.5em; text-align: left; font-size: 92%; font-weight: normal;" | '''Table 1.''' These are the invariants of transforms occurring in the 3D projective geometric algebra representing the 2D plane. The primary invariant of any regular transform (a Euclidean isometry) or dual transform is given by the vector or bivector components of the operator itself. The coinvariant is given by the weight complement of the primary invariant in the case of regular transforms and by the bulk complement of the primary invariant in the case of dual transforms.<br />
|-<br />
! Transform !! Primary Invariant !! Coinvariant<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Regular rotation<br />$$\mathbf Q = c_x \mathbf e_1 + c_y \mathbf e_2 + c_z \mathbf e_3 + r {\large\unicode{x1D7D9}}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Point $$c_x \mathbf e_1 + c_y \mathbf e_2 + c_z \mathbf e_3$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Horizon line $$\mathbf e_{12}$$<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Regular transflection<br />$$\mathbf F = s + h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Line $$h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Point in horizon $$h_x \mathbf e_1 + h_y \mathbf e_2$$<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Reciprocal rotation<br />$$\mathcal Q = c_x \mathbf e_{23} + c_y \mathbf e_{31} + c_z \mathbf e_{12} - r$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Line $$c_x \mathbf e_{23} + c_y \mathbf e_{31} + c_z \mathbf e_{12}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Origin point $$\mathbf e_3$$<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Reciprocal transflection<br />$$\mathcal F = h_x \mathbf e_1 + h_y \mathbf e_2 + h_z \mathbf e_3 - s {\large\unicode{x1D7D9}}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Point $$h_x \mathbf e_1 + h_y \mathbf e_2 + h_z \mathbf e_3$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Line through origin $$h_x \mathbf e_{23} + h_y \mathbf e_{31}$$<br />
|}<br />
<br />
<br />
In the four-dimensional projective geometric algebra $$\mathbb R_{3,0,1}$$ representing three-dimensional space, every Euclidean isometry is either a screw transform $$\mathbf Q$$ or a rotoreflection $$\mathbf F$$. (The only geometrical difference between these is that the displacement along the rotation axis in a screw transform is replaced by a reflection in a plane perpendicular to the rotation axis in a rotoreflection.) The primary invariant of a screw transform is its bivector components, which corresponds to the line about which a rotation is taking place. A rotoreflection can have two primary invariants, one associated with its vector components and a second associated with its trivector components. These invariants, the invariants of the corresponding projective transforms, and the coinvariants for each are summarized in Table 2.<br />
<br />
{| class="wikitable"<br />
|+ style="caption-side: bottom; padding-top: 0.5em; text-align: left; font-size: 92%; font-weight: normal;" | '''Table 2.''' These are the invariants of transforms occurring in the 4D projective geometric algebra representing 3D space. The primary invariant of any regular transform (a Euclidean isometry) or reciprocal transform is given by the vector, bivector, or trivector components of the operator itself. The coinvariants are given by the weight complement of each primary invariant in the case of regular transforms and by the bulk complement of each primary invariant in the case of projective transforms.<br />
|-<br />
! Transform !! Primary Invariants !! Coinvariants<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Regular screw transform<br />$$\mathbf Q = r_x \mathbf e_{41} + r_y \mathbf e_{42} + r_z \mathbf e_{43} + r_w {\large\unicode{x1D7D9}} + u_x \mathbf e_{23} + u_y \mathbf e_{31} + u_z \mathbf e_{12} + u_w$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Line $$r_x \mathbf e_{41} + r_y \mathbf e_{42} + r_z \mathbf e_{43} + u_x \mathbf e_{23} + u_y \mathbf e_{31} + u_z \mathbf e_{12}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Line in horizon $$r_x \mathbf e_{23} + r_y \mathbf e_{31} + r_z \mathbf e_{12}$$<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Regular rotoreflection<br />$$\mathbf F = s_x \mathbf e_1 + s_y \mathbf e_2 + s_z \mathbf e_3 + s_w \mathbf e_4 + h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Plane $$h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$,<br />Point $$s_x \mathbf e_1 + s_y \mathbf e_2 + s_z \mathbf e_3 + s_w \mathbf e_4$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Point in horizon $$h_x \mathbf e_1 + h_y \mathbf e_2 + h_z \mathbf e_3$$,<br />Horizon $$e_{321}$$<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Reciprocal screw transform<br />$$\mathbf Q = u_x \mathbf e_{41} + u_y \mathbf e_{42} + u_z \mathbf e_{43} - u_w {\large\unicode{x1D7D9}} + r_x \mathbf e_{23} + r_y \mathbf e_{31} + r_z \mathbf e_{12} - r_w$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Line $$u_x \mathbf e_{41} + u_y \mathbf e_{42} + u_z \mathbf e_{43} + r_x \mathbf e_{23} + r_y \mathbf e_{31} + r_z \mathbf e_{12}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Line through origin $$r_x \mathbf e_{41} + r_y \mathbf e_{42} + r_z \mathbf e_{43}$$<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Reciprocal rotoreflection<br />$$\mathcal F = h_x \mathbf e_1 + h_y \mathbf e_2 + h_z \mathbf e_3 - s {\large\unicode{x1D7D9}}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Point $$h_x \mathbf e_1 + h_y \mathbf e_2 + h_z \mathbf e_3 + h_w \mathbf e_4$$,<br />Plane $$s_x \mathbf e_{423} + s_y \mathbf e_{431} + s_z \mathbf e_{412} + s_w \mathbf e_{321}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Plane through origin $$h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412}$$,<br />Origin $$\mathbf e_4$$<br />
|}<br />
<br />
<br />
The unit-weight invertible elements of the $$(n + 1)$$-dimensional projective geometric algebra $$\mathbb R_{n,0,1}$$ constitute a double cover of both the groups $$\mathrm E(n)$$ and $$\mathrm{RE}(n)$$. The geometric product corresponds to transform composition in the group $$\mathrm{RE}(n)$$, and the geometric antiproduct corresponds to transform com-position in the group $$\mathrm E(n)$$. Regular reflections across planes are represented by antivectors (having antigrade one), and they meet at lower-dimensional invariants under the geometric antiproduct. Symmetrically, reciprocal reflections across points are represented by vectors (having grade one), and they join at higher-dimensional invariants under the geometric product. A sandwich product<br />
<br />
:$$\mathcal Q \mathbin{\unicode{x27D1}} \mathbf a \mathbin{\unicode{x27D1}} \mathcal{\tilde Q}$$<br />
<br />
transforms the space of $$\mathbf a$$ with an element of $$\mathrm{RE}(n)$$, and it transforms the antispace of $$\mathbf a$$ with the complementary element of $$\mathrm E(n)$$. Symmetrically, a sandwich product<br />
<br />
:$$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf a \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$<br />
<br />
transforms the space of $$\mathbf a$$ with an element of $$\mathrm E(n)$$, and it transforms the antispace of $$\mathbf a$$ with the complementary element of $$\mathrm{RE}(n)$$.<br />
<br />
[[Image:Antispace5.svg|640px|thumb|right|'''Figure 5.''' The unit-weight invertible elements of the projective geometric algebra $$\mathbb R_{n,0,1}$$ are a double cover of both the Euclidean group $$\mathrm E(n)$$ and the reciprocal Euclidean group $$\mathrm{RE}(n)$$. Elements corresponding to transforms in $$\mathrm E(n)$$ are composed with the geometric antiproduct, and elements corresponding to transforms in $$\mathrm{RE}(n)$$ are composed with the geometric product. Transforms belonging to the common subgroup $$\mathrm O(n)$$ have two representations in $$\mathbb R_{n,0,1}$$, one associated with the geometric product, and one associated with the geometric antiproduct.]]<br />
The groups $$\mathrm E(n)$$ and $$\mathrm{RE}(n)$$ have a number of subgroups, and the hierarchical relationships among them are shown in Figure 5. In particular, the Euclidean group $$\mathrm E(n)$$ contains the special Euclidean subgroup $$\mathrm{SE}(n)$$ consisting of all combinations of regular rotations, which are covered by the antigrade 2 elements of $$\mathbb R_{n,0,1}$$. Correspondingly, the reciprocal Euclidean group $$\mathrm{RE}(n)$$ contains the reciprocal special Euclidean subgroup $$\mathrm{RSE}(n)$$ consisting of all combinations of reciprocal rotations, which are covered by the grade 2 elements of $$\mathbb R_{n,0,1}$$. The subgroups $$\mathrm{SE}(n)$$ and $$\mathrm{RSE}(n)$$ further contain translation subgroups $$\mathrm T(n)$$ and $$\mathrm{RT}(n)$$, respectively.<br />
<br />
Transforms about invariants containing the origin are the same in both $$\mathrm E(n)$$ and $$\mathrm{RE}(n)$$, and they constitute the common subgroup $$\mathrm O(n)$$. Every member of $$\mathrm O(n)$$ has a representation in $$\mathbb R_{n,0,1}$$ that transforms elements with the geometric product and a complementary representation that transforms elements with the geometric antiproduct. For example, in $$\mathbb R_{3,0,1}$$, a conventional quaternion $$\mathbf q$$ can be expressed as<br />
<br />
:$$\mathbf q = x \mathbf e_{23} + y \mathbf e_{31} + z \mathbf e_{12} - w \mathbf 1$$,<br />
<br />
which covariantly transforms any object $$\mathbf a$$ with the sandwich product $$\mathbf q \mathbin{\unicode{x27D1}} \mathbf a \mathbin{\unicode{x27D1}} \mathbf{\tilde q}$$, and it can be expressed as<br />
<br />
:$$\mathbf q = x \mathbf e_{41} + y \mathbf e_{42} + z \mathbf e_{43} + w {\large\unicode{x1D7D9}}$$,<br />
<br />
which covariantly transforms any object $$\mathbf a$$ with the sandwich product $$\mathbf q \mathbin{\unicode{x27C7}} \mathbf a \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{q}}}$$.<br />
<br />
In terms of matrix multiplication, a general element of the group $$\mathrm E(n)$$ transforms a point by multiplying on the left by an $$(n + 1) \times (n + 1)$$ matrix of the form<br />
<br />
:$$\begin{bmatrix} \mathbf m_{n \times n} & \mathbf t_{n \times 1} \\ \mathbf 0_{1 \times n} & 1\end{bmatrix}$$<br />
<br />
where the $$n \times n$$ submatrix $$\mathbf m$$ is orthogonal. A general element of the corresponding group $$\mathrm{RE}(n)$$ transforms points with matrices of the form<br />
<br />
:$$\begin{bmatrix} \mathbf m_{n \times n} & \mathbf 0_{n \times 1} \\ \mathbf t_{1 \times n} & 1\end{bmatrix}$$<br />
<br />
In the special subgroups of $$\mathrm E(n)$$ and $$\mathrm{RE}(n)$$, the submatrix $$\mathbf m$$ has a determinant of $$+1$$. In the translation subgroups $$\mathrm T(n)$$ and $$\mathrm{RT}(n)$$, $$\mathbf m$$ is the identity matrix. Finally, when $$\mathbf t = \mathbf 0$$, both matrices have the same form and belong to $$\mathrm O(n)$$.<br />
<br />
The isomorphic mapping between $$\mathrm E(n)$$ and $$\mathrm{RE}(n)$$ is given by the inverse transpose operation on the matrix representatives. That is, if $$\mathbf M$$ is an $$(n + 1) \times (n + 1)$$ matrix representing an element of $$\mathrm E(n)$$, then the corresponding element of $$\mathrm{RE}(n)$$ is given by $$\mathbf (M^{-1})^{\mathrm T}$$. Of course, this operation is an involution, and the mapping works both ways.</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Translation&diff=288Translation2024-02-08T00:52:02Z<p>Eric Lengyel: </p>
<hr />
<div>__NOTOC__<br />
A ''translation'' is a proper isometry of Euclidean space.<br />
<br />
The specific kind of [[motor]]<br />
<br />
:$$\mathbf T = {\tau_x \mathbf e_{23} + \tau_y \mathbf e_{31} + \tau_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$<br />
<br />
performs a translation by twice the displacement vector $$\boldsymbol \tau = (\tau_x, \tau_y, \tau_z)$$ when used as an operator in the sandwich antiproduct. This can be interpreted as a rotation about the [[line]] at infinity perpendicular to the direction $$\boldsymbol \tau$$.<br />
<br />
== Exponential Form ==<br />
<br />
A translation by a distance $$\delta$$ perpendicular to a unitized [[plane]] $$\mathbf g$$ can be expressed as an exponential of the plane's [[attitude]] as<br />
<br />
:$$\mathbf T = \exp_\unicode{x27C7}\left(\dfrac{1}{2}\delta \operatorname{att}(\mathbf g)\right) = \dfrac{\delta}{2} \operatorname{att}(\mathbf g) + {\large\unicode{x1d7d9}}$$<br />
<br />
== Matrix Form ==<br />
<br />
When a translation $$\mathbf T$$ is applied to a [[point]], it is equivalent to premultiplying the point by the $$4 \times 4$$ matrix<br />
<br />
:$$\begin{bmatrix}<br />
1 & 0 & 0 & \tau_x \\<br />
0 & 1 & 0 & \tau_y \\<br />
0 & 0 & 1 & \tau_z \\<br />
0 & 0 & 0 & 1 \\<br />
\end{bmatrix}$$ .<br />
<br />
== Translation to Origin ==<br />
<br />
A point $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ is translated to the origin by the operator<br />
<br />
:$$\mathbf T = {-\dfrac{p_{x\vphantom{y}}}{2p_w} \mathbf e_{23} - \dfrac{p_y}{2p_w} \mathbf e_{31} - \dfrac{p_{z\vphantom{y}}}{2p_w} \mathbf e_{12} + \large\unicode{x1d7d9}}$$ .<br />
<br />
== Calculation ==<br />
<br />
The exact translation calculations for points, lines, and planes are shown in the following table.<br />
<br />
{| class="wikitable"<br />
! Type || Translation<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
<br />
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$<br />
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = (p_x + 2\tau_xp_w)\mathbf e_1 + (p_y + 2\tau_yp_w)\mathbf e_2 + (p_z + 2\tau_zp_w)\mathbf e_3 + p_w\mathbf e_4$$<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
<br />
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$<br />
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + (l_{mx} + 2\tau_y l_{vz} - 2\tau_z l_{vy})\mathbf e_{23} + (l_{my} + 2\tau_z l_{vx} - 2\tau_x l_{vz})\mathbf e_{31} + (l_{mz} + 2\tau_x l_{vy} - 2\tau_y l_{vx})\mathbf e_{12}$$<br />
|-<br />
| style="padding: 12px;" | [[Plane]]<br />
<br />
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$<br />
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + (g_w - 2\tau_xg_x - 2\tau_yg_y - 2\tau_zg_z) \mathbf e_{321}$$<br />
|}<br />
<br />
== See Also ==<br />
<br />
* [[Reciprocal translation]]<br />
* [[Rotation]]<br />
* [[Reflection]]<br />
* [[Inversion]]<br />
* [[Transflection]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Rotation&diff=287Rotation2024-02-07T23:37:56Z<p>Eric Lengyel: </p>
<hr />
<div>A ''rotation'' is a proper isometry of Euclidean space.<br />
<br />
For a [[Unitization | unitized]] [[line]] $$\boldsymbol l$$, the specific kind of [[motor]]<br />
<br />
:$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ ,<br />
<br />
performs a rotation by twice the angle $$\phi$$ about the line $$\boldsymbol l$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$. The operator $$\mathbf R$$ differs from a general [[motor]] only in that it is always the case that $$R_{mw} = 0$$. The line $$\boldsymbol l$$ and its [[weight dual]] $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606}$$ are invariant under this operation. The line $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606}$$ lies in the [[horizon]] in directions perpendicular to the direction of $$\boldsymbol l$$.<br />
<br />
== Calculation ==<br />
<br />
The exact rotation calculations for points, lines, and planes are shown in the following table.<br />
<br />
{| class="wikitable"<br />
! Type || Transformation<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
<br />
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$<br />
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{R}}} =\, &\left[(1 - 2R_{vy}^2 - 2R_{vz}^2)p_x + 2(R_{vx}R_{vy} - R_{vz}R_{vw})p_y + 2(R_{vz}R_{vx} + R_{vy}R_{vw})p_z + 2(R_{vy}R_{mz} - R_{vz}R_{my} + R_{vw}R_{mx})p_w\right]\mathbf e_1 \\ +\, &\left[(1 - 2R_{vz}^2 - 2R_{vx}^2)p_y + 2(R_{vy}R_{vz} - R_{vx}R_{vw})p_z + 2(R_{vx}R_{vy} + R_{vz}R_{vw})p_x + 2(R_{vz}R_{mx} - R_{vx}R_{mz} + R_{vw}R_{my})p_w\right]\mathbf e_2 \\ +\, &\left[(1 - 2R_{vx}^2 - 2R_{vy}^2)p_z + 2(R_{vz}R_{vx} - R_{vy}R_{vw})p_x + 2(R_{vy}R_{vz} + R_{vx}R_{vw})p_y + 2(R_{vx}R_{my} - R_{vy}R_{mx} + R_{vw}R_{mz})p_w\right]\mathbf e_3 \\ +\, &p_w\mathbf e_4\end{split}$$<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
<br />
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$<br />
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{R}}} =\, &\left[(1 - 2R_{vy}^2 - 2R_{vz}^2)l_{vx} + 2(R_{vx}R_{vy} - R_{vz}R_{vw})l_{vy} + 2(R_{vz}R_{vx} + R_{vy}R_{vw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2R_{vz}^2 - 2R_{vx}^2)l_{vy} + 2(R_{vy}R_{vz} - R_{vx}R_{vw})l_{vz} + 2(R_{vx}R_{vy} + R_{vz}R_{vw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2R_{vx}^2 - 2R_{vy}^2)l_{vz} + 2(R_{vz}R_{vx} - R_{vy}R_{vw})l_{vx} + 2(R_{vy}R_{vz} + R_{vx}R_{vw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(R_{vy}R_{my} + R_{vz}R_{mz})l_{vx} + 2(R_{vy}R_{mx} + R_{vx}R_{my} - R_{vw}R_{mz})l_{vy} + 2(R_{vz}R_{mx} + R_{vx}R_{mz} + R_{vw}R_{my})l_{vz} + (1 - 2R_{vy}^2 - 2R_{vz}^2)l_{mx} + 2(R_{vx}R_{vy} - R_{vz}R_{vw})l_{my} + 2(R_{vz}R_{vx} + R_{vy}R_{vw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(R_{vz}R_{mz} + R_{vx}R_{mx})l_{vy} + 2(R_{vz}R_{my} + R_{vy}R_{mz} - R_{vw}R_{mx})l_{vz} + 2(R_{vx}R_{my} + R_{vy}R_{mx} + R_{vw}R_{mz})l_{vx} + (1 - 2R_{vz}^2 - 2R_{vx}^2)l_{my} + 2(R_{vy}R_{vz} - R_{vx}R_{vw})l_{mz} + 2(R_{vx}R_{vy} + R_{vz}R_{vw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(R_{vx}R_{mx} + R_{vy}R_{my})l_{vz} + 2(R_{vx}R_{mz} + R_{vz}R_{mx} - R_{vw}R_{my})l_{vx} + 2(R_{vy}R_{mz} + R_{vz}R_{my} + R_{vw}R_{mx})l_{vy} + (1 - 2R_{vx}^2 - 2R_{vy}^2)l_{mz} + 2(R_{vz}R_{vx} - R_{vy}R_{vw})l_{mx} + 2(R_{vy}R_{vz} + R_{vx}R_{vw})l_{my}\right]\mathbf e_{12}\end{split}$$<br />
|-<br />
| style="padding: 12px;" | [[Plane]]<br />
<br />
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$<br />
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{R}}} =\, &\left[(1 - 2R_{vy}^2 - 2R_{vz}^2)g_x + 2(R_{vx}R_{vy} - R_{vz}R_{vw})g_y + 2(R_{vz}R_{vx} + R_{vy}R_{vw})g_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2R_{vz}^2 - 2R_{vx}^2)g_y + 2(R_{vy}R_{vz} - R_{vx}R_{vw})g_z + 2(R_{vx}R_{vy} + R_{vz}R_{vw})g_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2R_{vx}^2 - 2R_{vy}^2)g_z + 2(R_{vz}R_{vx} - R_{vy}R_{vw})g_x + 2(R_{vy}R_{vz} + R_{vx}R_{vw})g_y\right]\mathbf e_{412} \\ +\, &\left[2(R_{vy}R_{mz} - R_{vz}R_{my} - R_{vw}R_{mx})g_x + 2(R_{vz}R_{mx} - R_{vx}R_{mz} - R_{vw}R_{my})g_y + 2(R_{vx}R_{my} - R_{vy}R_{mx} - R_{vw}R_{mz})g_z + g_w\right]\mathbf e_{321}\end{split}$$<br />
|}<br />
<br />
== See Also ==<br />
<br />
* [[Reciprocal rotation]]<br />
* [[Translation]]<br />
* [[Reflection]]<br />
* [[Inversion]]<br />
* [[Transflection]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Reverses&diff=286Reverses2024-02-01T06:51:08Z<p>Eric Lengyel: </p>
<hr />
<div>''Reverses'' are unary operations in geometric algebra that are analogs of conjugate or transpose operations.<br />
<br />
For any element $$\mathbf u$$ that is the [[wedge product]] of $$k$$ vectors, the ''reverse'' of $$\mathbf u$$, which we denote by $$\mathbf{\tilde u}$$, is the result of multiplying those same $$k$$ vectors in reverse order. For example, the reverse of $$\mathbf e_{423}$$ is $$\mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_4$$, which we would write as $$-\mathbf e_{423}$$since 324 is an odd permutation of 423. In general, the reverse of an element $$\mathbf u$$ is given by<br />
<br />
:$$\mathbf{\tilde u} = (-1)^{\operatorname{gr}(\mathbf u)(\operatorname{gr}(\mathbf u) - 1)/2}\,\mathbf u$$ .<br />
<br />
Symmetrically, for any element $$\mathbf u$$ that is the [[antiwedge product]] of $$m$$ antivectors, the ''antireverse'' of $$\mathbf u$$, which we denote by $$\smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}}$$, is the result of multiplying those same $$m$$ antivectors in reverse order (but this time under the [[antiwedge product]]). In general, the antireverse of an element $$\mathbf u$$ is given by<br />
<br />
:$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = (-1)^{\operatorname{ag}(\mathbf u)(\operatorname{ag}(\mathbf u) - 1)/2}\,\mathbf u$$ .<br />
<br />
The reverse and antireverse of any element $$\mathbf u$$ are related by<br />
<br />
:$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}(-1)^{n(n-1)/2}\,\mathbf{\tilde u}$$ ,<br />
<br />
where $$n$$ is the number of dimensions in the algebra. To extend the reversals to all elements of an algebra, we simply require that it is a linear operation. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the reverse<br />
<br />
:$$\widetilde{(a\mathbf x + b\mathbf y)} = a\mathbf{\tilde x} + b\mathbf{\tilde y}$$ ,<br />
<br />
and similarly for the antireverse.<br />
<br />
The following table lists the reverse and antireverse for all of the basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.<br />
<br />
[[Image:Reverses.svg|720px]]<br />
<br />
== See Also ==<br />
<br />
* [[Complements]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Rigid_Geometric_Algebra_for_2D_Space&diff=285Rigid Geometric Algebra for 2D Space2024-01-23T02:12:11Z<p>Eric Lengyel: /* Geometric Products */</p>
<hr />
<div>== Introduction ==<br />
<br />
[[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]]<br />
In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1.<br />
<br />
There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions.<br />
<br />
There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form<br />
<br />
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ .<br />
<br />
There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents.<br />
<br />
Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents.<br />
<br />
__TOC__<br />
<br clear="right" /><br />
== Unary Operations ==<br />
<br />
The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table.<br />
<br />
[[Image:Unary201.svg|480px]]<br />
<br />
== Geometric Products ==<br />
<br />
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to &minus;1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.<br />
<br />
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$<br />
<br />
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$<br />
<br />
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$<br />
<br />
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.<br />
<br />
The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.<br />
<br />
<br />
[[Image:GeometricProduct201.svg|360px]]<br />
<br />
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$.<br />
<br />
<br />
[[Image:GeometricAntiproduct201.svg|360px]]<br />
<br />
== Points ==<br />
<br />
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form<br />
<br />
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ .<br />
<br />
The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$.<br />
<br />
When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself.<br />
<br />
If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]].<br />
<br />
== Lines ==<br />
<br />
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\mathbf g$$ is a bivector having the general form<br />
<br />
:$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ .<br />
<br />
The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$g_x^2 + g_y^2 = 1$$.<br />
<br />
When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself.<br />
<br />
If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$g_z = \pm 1$$. This is the ''horizon'' of two-dimensional space.<br />
<br />
== Bulk and Weight ==<br />
<br />
The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.<br />
<br />
{| class="wikitable"<br />
! Type !! Definition !! Bulk !! Weight<br />
|-<br />
| style="padding: 12px;" | [[Magnitude]]<br />
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$<br />
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$<br />
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$<br />
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$<br />
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_z \mathbf e_{12}$$<br />
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{23} + g_y \mathbf e_{31}$$<br />
|-<br />
| style="padding: 12px;" | [[Motor]]<br />
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$<br />
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$<br />
|-<br />
| style="padding: 12px;" | [[Flector]]<br />
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$<br />
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$<br />
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$<br />
|}<br />
<br />
== Unitization ==<br />
<br />
The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.<br />
<br />
{| class="wikitable"<br />
! Type !! Definition !! Unitization<br />
|-<br />
| style="padding: 12px;" | [[Magnitude]]<br />
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$y^2 = 1$$<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$<br />
| style="padding: 12px;" | $$p_z^2 = 1$$<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$<br />
| style="padding: 12px;" | $$g_x^2 + g_y^2 = 1$$<br />
|-<br />
| style="padding: 12px;" | [[Motor]]<br />
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$<br />
|-<br />
| style="padding: 12px;" | [[Flector]]<br />
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$<br />
| style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$<br />
|}<br />
<br />
== Geometric Norm ==<br />
<br />
The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.<br />
<br />
{| class="wikitable"<br />
! Type !! Definition !! Bulk Norm<br />
|-<br />
| style="padding: 12px;" | [[Magnitude]]<br />
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_z|$$<br />
|-<br />
| style="padding: 12px;" | [[Motor]]<br />
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$<br />
|-<br />
| style="padding: 12px;" | [[Flector]]<br />
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$<br />
|}<br />
<br />
The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.<br />
<br />
{| class="wikitable"<br />
! Type !! Definition !! Weight Norm<br />
|-<br />
| style="padding: 12px;" | [[Magnitude]]<br />
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2}$$<br />
|-<br />
| style="padding: 12px;" | [[Motor]]<br />
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$<br />
|-<br />
| style="padding: 12px;" | [[Flector]]<br />
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$<br />
|}<br />
<br />
The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.<br />
<br />
{| class="wikitable"<br />
! Type !! Definition !! Geometric Norm !! Interpretation<br />
|-<br />
| style="padding: 12px;" | [[Magnitude]]<br />
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$<br />
| style="padding: 12px;" | A Euclidean distance.<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$<br />
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$<br />
| style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$.<br />
<br />
Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$.<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$<br />
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_z|}{\sqrt{g_x^2 + g_y^2}}$$<br />
| style="padding: 12px;" | Perpendicular distance from the origin to the line $$\mathbf g$$.<br />
<br />
Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$.<br />
|-<br />
| style="padding: 12px;" | [[Motor]]<br />
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$<br />
| style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$.<br />
|-<br />
| style="padding: 12px;" | [[Flector]]<br />
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$<br />
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$<br />
| style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$.<br />
|}<br />
<br />
== Join and Meet ==<br />
<br />
The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection.<br />
<br />
The points and lines appearing in the following tables are defined as follows:<br />
<br />
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$<br />
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$<br />
:$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$<br />
:$$\mathbf h = h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$<br />
<br />
The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects.<br />
<br />
{| class="wikitable"<br />
! Formula || Description<br />
|-<br />
| style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$<br />
| style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$.<br />
<br />
Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.<br />
|-<br />
| style="padding: 12px;" | $$\mathbf g \vee \mathbf h = (g_yh_z - h_yg_z)\mathbf e_1 + (g_zh_x - g_xh_z)\mathbf e_2 + (g_xh_y - g_yh_x)\mathbf e_3$$<br />
| style="padding: 12px;" | Point where lines $$\mathbf g$$ and $$\mathbf h$$ intersect.<br />
<br />
Point at infinity if $$\mathbf g$$ and $$\mathbf h$$ are parallel.<br />
|-<br />
| style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p = -g_yp_z\mathbf e_{23} + g_xp_z\mathbf e_{31} + (g_yp_x - g_xp_y)\mathbf e_{12}$$<br />
| style="padding: 12px;" | Line perpendicular to line $$\mathbf g$$ passing through point $$\mathbf p$$.<br />
|}<br />
<br />
== Projections ==<br />
<br />
The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas.<br />
<br />
{| class="wikitable"<br />
! Formula !! Description<br />
|-<br />
| style="padding: 12px;" | $$\left(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p\right) \vee \mathbf g = (g_x^2 + g_y^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z)(g_x \mathbf e_1 + g_y \mathbf e_2)$$<br />
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\mathbf g$$.<br />
|-<br />
| style="padding: 12px;" | $$\left(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g\right) \wedge \mathbf p = g_xp_z^2 \mathbf e_{23} + g_yp_z^2 \mathbf e_{31} - (g_xp_x + g_yp_y)p_z \mathbf e_{12}$$<br />
| style="padding: 12px;" | Antiprojection of line $$\mathbf g$$ onto point $$\mathbf p$$.<br />
|}<br />
<br />
Projecting the origin onto a line gives us the following formula for the point on a line $$\mathbf g$$ closest to the origin.<br />
<br />
:$$\left(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_3\right) \vee \mathbf g = -g_xg_z \mathbf e_1 - g_yg_z \mathbf e_2 + (g_x^2 + g_y^2)\mathbf e_3$$<br />
<br />
Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$.<br />
<br />
:$$\left(\mathbf p^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$<br />
<br />
== Motors ==<br />
<br />
The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form<br />
<br />
:$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ .<br />
<br />
A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$.<br />
<br />
A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as<br />
<br />
:$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ .<br />
<br />
== Flectors ==<br />
<br />
The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form<br />
<br />
:$$\mathbf F = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12} + g_w \mathbf 1$$ .<br />
<br />
A flector represents a transflection with respect to the line $$g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$. When the line is unitized, $$g_w$$ is half the translation distance parallel to the line.</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=File:GeometricAntiproduct201.svg&diff=284File:GeometricAntiproduct201.svg2024-01-23T02:11:59Z<p>Eric Lengyel: Eric Lengyel uploaded a new version of File:GeometricAntiproduct201.svg</p>
<hr />
<div></div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=File:GeometricProduct201.svg&diff=283File:GeometricProduct201.svg2024-01-23T02:11:34Z<p>Eric Lengyel: Eric Lengyel uploaded a new version of File:GeometricProduct201.svg</p>
<hr />
<div></div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Exterior_products&diff=282Exterior products2024-01-23T02:10:22Z<p>Eric Lengyel: </p>
<hr />
<div>The ''exterior product'' is the fundamental product of Grassmann Algebra, and it forms part of the [[geometric product]] in geometric algebra. There are two products with symmetric properties called the exterior product and exterior antiproduct.<br />
<br />
The exterior product between two elements $$\mathbf a$$ and $$\mathbf b$$ generally combines their spatial extents, and the magnitude of the result indicates how close they are to being orthogonal. If the spatial extents of $$\mathbf a$$ and $$\mathbf b$$ are parallel, then their exterior product is zero. (Compare this to the [[dot product]], which is zero whenever $$\mathbf a$$ and $$\mathbf b$$ are orthogonal.)<br />
<br />
== Exterior Product ==<br />
<br />
The exterior product is widely known as the ''wedge product'' because it is written with an upward pointing wedge. The exterior product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \wedge \mathbf b$$ and read "$$\mathbf a$$ wedge $$\mathbf b$$". Grassmann called this the progressive combinatorial product.<br />
<br />
The defining characteristic of the wedge product is that multiplying any vector $$\mathbf v$$ by itself produces zero: $$\mathbf v \wedge \mathbf v = 0$$. This implies that the wedge product is anticommutative for vectors, so we always have<br />
<br />
:$$\mathbf v \wedge \mathbf w = -\mathbf w \wedge \mathbf v$$<br />
<br />
for vectors $$\mathbf v$$ and $$\mathbf w$$. The wedge product is not anticommutative in general, however. For general basis elements $$\mathbf a$$ and $$\mathbf b$$, reversing the order of the operands satisfies the relationship<br />
<br />
:$$\mathbf a \wedge \mathbf b = (-1)^{\operatorname{gr}(\mathbf a)\operatorname{gr}(\mathbf b)} \mathbf b \wedge \mathbf a$$ .<br />
<br />
The wedge product adds the [[grades]] of its operands, so we have<br />
<br />
:$$\operatorname{gr}(\mathbf a \wedge \mathbf b) = \operatorname{gr}(\mathbf a) + \operatorname{gr}(\mathbf b)$$ .<br />
<br />
The following Cayley table shows the exterior products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.<br />
<br />
<br />
[[Image:WedgeProduct.svg|720px]]<br />
<br />
== Exterior Antiproduct ==<br />
<br />
The exterior antiproduct is a dual to the exterior product. It is written with a downward pointing wedge and thus called the ''antiwedge product''. The exterior antiproduct $$\mathbf a \vee \mathbf b$$ is read "$$\mathbf a$$ antiwedge $$\mathbf b$$". Grassmann called this the regressive combinatorial product.<br />
<br />
Whereas the wedge product combines the full dimensions of its operands, the antiwedge product combines the empty dimensions of its operands. The antiwedge product adds the [[antigrades]] of its operands, so we have<br />
<br />
:$$\operatorname{ag}(\mathbf a \vee \mathbf b) = \operatorname{ag}(\mathbf a) + \operatorname{ag}(\mathbf b)$$ .<br />
<br />
The following Cayley table shows the exterior antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.<br />
<br />
<br />
[[Image:AntiwedgeProduct.svg|720px]]<br />
<br />
== De Morgan Laws ==<br />
<br />
There are many possible exterior products and antiproducts. The signs of the results they produce differ in grade-dependent ways, but are otherwise equivalent. The relationship between the product and antiproduct is fixed by a specific choice of dualization function that exchanges full and empty dimensions. We choose the left and right [[complements]] as the dualization function and its inverse. We can then express each product in terms of the other through an analog of De Morgan's laws as follows.<br />
<br />
:$$\overline{\mathbf a \wedge \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \vee \overline{\mathbf b}$$<br />
<br />
:$$\overline{\mathbf a \vee \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \wedge \overline{\mathbf b}$$<br />
<br />
:$$\underline{\mathbf a \wedge \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \vee \underline{\mathbf b}$$<br />
<br />
:$$\underline{\mathbf a \vee \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \wedge \underline{\mathbf b}$$<br />
<br />
== General Properties ==<br />
<br />
The following table lists several general properties of the wedge product and antiwedge product.<br />
<br />
{| class="wikitable"<br />
! Property !! Description<br />
|-<br />
| style="padding: 12px;" | $$\mathbf a \wedge \mathbf b = -\mathbf b \wedge \mathbf a$$<br />
| style="padding: 12px;" | Anticommutativity of the wedge product for vectors $$\mathbf a$$ and $$\mathbf b$$.<br />
|-<br />
| style="padding: 12px;" | $$\mathbf a \vee \mathbf b = -\mathbf b \vee \mathbf a$$<br />
| style="padding: 12px;" | Anticommutativity of the antiwedge product for antivectors $$\mathbf a$$ and $$\mathbf b$$.<br />
|-<br />
| style="padding: 12px;" | $$(\mathbf a \wedge \mathbf b) \wedge \mathbf c = \mathbf a \wedge (\mathbf b \wedge \mathbf c)$$<br />
| style="padding: 12px;" | Associative law for the wedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.<br />
|-<br />
| style="padding: 12px;" | $$(\mathbf a \vee \mathbf b) \vee \mathbf c = \mathbf a \vee (\mathbf b \vee \mathbf c)$$<br />
| style="padding: 12px;" | Associative law for the antiwedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.<br />
|-<br />
| style="padding: 12px;" | $$\mathbf a \wedge (\mathbf b + \mathbf c) = \mathbf a \wedge \mathbf b + \mathbf a \wedge \mathbf c$$<br />
| style="padding: 12px;" | Distributive law for the wedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.<br />
|-<br />
| style="padding: 12px;" | $$\mathbf a \vee (\mathbf b + \mathbf c) = \mathbf a \vee \mathbf b + \mathbf a \vee \mathbf c$$<br />
| style="padding: 12px;" | Distributive law for the antiwedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.<br />
|-<br />
| style="padding: 12px;" | $$(t\mathbf a) \wedge \mathbf b = \mathbf a \wedge (t\mathbf b) = t(\mathbf a \wedge \mathbf b)$$<br />
| style="padding: 12px;" | Scalar factorization of the wedge product.<br />
|-<br />
| style="padding: 12px;" | $$(t\mathbf a) \vee \mathbf b = \mathbf a \vee (t\mathbf b) = t(\mathbf a \vee \mathbf b)$$<br />
| style="padding: 12px;" | Scalar factorization of the antiwedge product.<br />
|-<br />
| style="padding: 12px;" | $$s \wedge \mathbf a = \mathbf a \wedge s = s\mathbf a$$<br />
| style="padding: 12px;" | Wedge product of a [[scalar]] $$s$$ and any basis element $$\mathbf a$$.<br />
|-<br />
| style="padding: 12px;" | $$s \vee \mathbf a = \mathbf a \vee s = s\mathbf a$$<br />
| style="padding: 12px;" | Antiwedge product of an [[antiscalar]] $$s$$ and any basis element $$\mathbf a$$.<br />
|-<br />
| style="padding: 12px;" | $$s \wedge t = st$$<br />
| style="padding: 12px;" | Wedge product of [[scalars]] $$s$$ and $$t$$.<br />
|-<br />
| style="padding: 12px;" | $$s \vee t = st$$<br />
| style="padding: 12px;" | Antiwedge product of [[antiscalars]] $$s$$ and $$t$$.<br />
|}<br />
<br />
== See Also ==<br />
<br />
* [[Geometric products]]<br />
* [[Dot products]]<br />
* [[Complements]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=File:AntiwedgeProduct.svg&diff=281File:AntiwedgeProduct.svg2024-01-23T02:10:02Z<p>Eric Lengyel: Eric Lengyel uploaded a new version of File:AntiwedgeProduct.svg</p>
<hr />
<div></div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=File:WedgeProduct.svg&diff=280File:WedgeProduct.svg2024-01-23T02:09:46Z<p>Eric Lengyel: Eric Lengyel uploaded a new version of File:WedgeProduct.svg</p>
<hr />
<div></div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Main_Page&diff=279Main Page2024-01-23T02:09:20Z<p>Eric Lengyel: /* Products and other binary operations */</p>
<hr />
<div>__NOTOC__<br />
== Rigid Geometric Algebra ==<br />
<br />
This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites:<br />
<br />
* [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site]<br />
* [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site]<br />
<br />
Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres.<br />
<br />
Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki.<br />
<br />
'''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.'''<br />
<br />
== Introduction ==<br />
<br />
[[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]]<br />
In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1.<br />
<br />
There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions.<br />
<br />
There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form<br />
<br />
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ .<br />
<br />
There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$.<br />
<br />
There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order.<br />
<br />
Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation<br />
<br />
:$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ ,<br />
<br />
with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not.<br />
<br />
As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf u$$, denoted by $$\operatorname{gr}(\mathbf u)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization.<br />
<br />
For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements.<br />
<br />
In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf u$$. Denoted by $$\operatorname{ag}(\mathbf u)$$, the antigrade of $$\mathbf u$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that<br />
<br />
:$$\operatorname{gr}(\mathbf u) + \operatorname{ag}(\mathbf u) = n$$ ,<br />
<br />
where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs.<br />
<br />
In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension.<br />
<br />
== Pages ==<br />
<br />
=== The five main types of rigid geometric objects ===<br />
<br />
* [[Point]]<br />
* [[Line]]<br />
* [[Plane]]<br />
* [[Motor]]<br />
* [[Flector]]<br />
<br />
=== Various properties and unary operations ===<br />
<br />
* [[Grade and antigrade]]<br />
* [[Complements]]<br />
* [[Reverses]]<br />
* [[Bulk and weight]]<br />
* [[Attitude]]<br />
* [[Duality]]<br />
* [[Geometric norm]]<br />
* [[Geometric property]]<br />
* [[Unitization]]<br />
<br />
=== Products and other binary operations ===<br />
<br />
* [[Exterior products]]<br />
* [[Dot products]]<br />
* [[Interior products]]<br />
* [[Geometric products]]<br />
* [[Join and meet]]<br />
* [[Projections]]<br />
* [[Euclidean distance]]<br />
<br />
=== Isometries of 3D space ===<br />
<br />
* [[Transformation groups]]<br />
* [[Translation]]<br />
* [[Rotation]]<br />
* [[Reflection]]<br />
* [[Inversion]]<br />
* [[Transflection]]<br />
<br />
=== Research Articles ===<br />
<br />
* [[Projective Geometric Algebra Done Right]]<br />
* [[Symmetries in Projective Geometric Algebra]]<br />
* [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Geometric_products&diff=278Geometric products2024-01-23T02:08:21Z<p>Eric Lengyel: </p>
<hr />
<div>The ''geometric product'' is the fundamental product of geometric algebra. There are two products with symmetric properties called the geometric product and geometric antiproduct.<br />
<br />
== Geometric Product ==<br />
<br />
The geometric product between two elements $$\mathbf a$$ and $$\mathbf b$$ has often been written by simply juxtaposing its operands as $$\mathbf{ab}$$ without the use of any infix operator. However, this clearly becomes impractical when both a product and antiproduct are present in the same context, which is now known to be necessary for a proper understanding of the algebra. To remedy the situation, we write the geometric product between elements $$\mathbf a$$ and $$\mathbf b$$ as $$\mathbf a \mathbin{\unicode{x27D1}} \mathbf b$$ and read it as "$$\mathbf a$$ wedge-dot $$\mathbf b$$".<br />
<br />
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{3,0,1}$$ means that three basis vectors square to +'''1''', zero basis vectors square to &minus;'''1''', and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.<br />
<br />
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = \mathbf 1$$<br />
<br />
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = \mathbf 1$$<br />
<br />
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = \mathbf 1$$<br />
<br />
:$$\mathbf e_4 \mathbin{\unicode{x27D1}} \mathbf e_4 = 0$$<br />
<br />
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.<br />
<br />
The following Cayley table shows the geometric products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.<br />
<br />
Cells highlighted in green correspond to the contribution from the [[wedge product]].<br />
<br />
<br />
[[Image:GeometricProduct.svg|720px]]<br />
<br />
== Geometric Antiproduct ==<br />
<br />
The geometric antiproduct is a dual to the geometric product. The geometric antiproduct between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x27C7}} \mathbf b$$ and is read as "$$\mathbf a$$ antiwedge-dot $$\mathbf b$$".<br />
<br />
The same metric that defines products of basis vectors under the geometric product also applies to the geometric antiproduct, except that now it defines products of basis [[antivectors]]. Three basis antivectors square to $$+{\large\unicode{x1D7D9}}$$, zero basis antivectors square to $$-{\large\unicode{x1D7D9}}$$, and one basis antivector squares to 0. The geometric antiproduct between two different basis antivectors is given by the [[antiwedge product]]. We can write these rules as follows.<br />
<br />
:$$\overline{\mathbf e_1} \mathbin{\unicode{x27C7}} \overline{\mathbf e_1} = {\large\unicode{x1D7D9}}$$<br />
<br />
:$$\overline{\mathbf e_2} \mathbin{\unicode{x27C7}} \overline{\mathbf e_2} = {\large\unicode{x1D7D9}}$$<br />
<br />
:$$\overline{\mathbf e_3} \mathbin{\unicode{x27C7}} \overline{\mathbf e_3} = {\large\unicode{x1D7D9}}$$<br />
<br />
:$$\overline{\mathbf e_4} \mathbin{\unicode{x27C7}} \overline{\mathbf e_4} = 0$$<br />
<br />
:$$\overline{\mathbf e_i} \mathbin{\unicode{x27C7}} \overline{\mathbf e_j} = \overline{\mathbf e_i} \vee \overline{\mathbf e_j}$$, for $$i \neq j$$.<br />
<br />
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $${\large\unicode{x1D7D9}}$$.<br />
<br />
Cells highlighted in green correspond to the contribution from the [[antiwedge product]].<br />
<br />
<br />
[[Image:GeometricAntiproduct.svg|720px]]<br />
<br />
== De Morgan Laws ==<br />
<br />
There are many possible geometric products and antiproducts. The signs of the results they produce differ in grade-dependent ways, but are otherwise equivalent. The relationship between the product and antiproduct is fixed by a specific choice of dualization function that exchanges full and empty dimensions. We choose the left and right [[complements]] as the dualization function and its inverse. We can then express each product in terms of the other through an analog of De Morgan's laws as follows.<br />
<br />
:$$\overline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \overline{\mathbf b}$$<br />
<br />
:$$\overline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \overline{\mathbf b}$$<br />
<br />
:$$\underline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \underline{\mathbf b}$$<br />
<br />
:$$\underline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \underline{\mathbf b}$$<br />
<br />
== See Also ==<br />
<br />
* [[Wedge products]]<br />
* [[Dot products]]<br />
* [[Complements]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=File:GeometricAntiproduct.svg&diff=277File:GeometricAntiproduct.svg2024-01-23T02:08:01Z<p>Eric Lengyel: Eric Lengyel uploaded a new version of File:GeometricAntiproduct.svg</p>
<hr />
<div></div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=File:GeometricProduct.svg&diff=276File:GeometricProduct.svg2024-01-23T02:07:34Z<p>Eric Lengyel: Eric Lengyel uploaded a new version of File:GeometricProduct.svg</p>
<hr />
<div></div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Reverses&diff=275Reverses2024-01-22T08:01:34Z<p>Eric Lengyel: </p>
<hr />
<div>''Reverses'' are unary operations in geometric algebra that are analogs of conjugate or transpose operations.<br />
<br />
For any element $$\mathbf x$$ that is the [[wedge product]] of $$k$$ vectors, the ''reverse'' of $$\mathbf x$$, which we denote by $$\mathbf{\tilde x}$$, is the result of multiplying those same $$k$$ vectors in reverse order. For example, the reverse of $$\mathbf e_{234}$$ is $$\mathbf e_4 \wedge \mathbf e_3 \wedge \mathbf e_2$$, which we would write as $$-\mathbf e_{234}$$since 432 is an odd permutation of 234. In general, the reverse of an element $$\mathbf x$$ is given by<br />
<br />
:$$\mathbf{\tilde x} = (-1)^{\operatorname{gr}(\mathbf x)(\operatorname{gr}(\mathbf x) - 1)/2}\,\mathbf x$$ .<br />
<br />
Symmetrically, for any element $$\mathbf x$$ that is the [[antiwedge product]] of $$m$$ antivectors, the ''antireverse'' of $$\mathbf x$$, which we denote by $$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}$$, is the result of multiplying those same $$m$$ antivectors in reverse order (but this time under the [[antiwedge product]]). In general, the antireverse of an element $$\mathbf x$$ is given by<br />
<br />
:$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} = (-1)^{\operatorname{ag}(\mathbf x)(\operatorname{ag}(\mathbf x) - 1)/2}\,\mathbf x$$ .<br />
<br />
The reverse and antireverse of any element $$\mathbf x$$ are related by<br />
<br />
:$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} = (-1)^{\operatorname{gr}(\mathbf x)\operatorname{ag}(\mathbf x)}(-1)^{n(n-1)/2}\,\mathbf{\tilde x}$$ ,<br />
<br />
where $$n$$ is the number of dimensions in the algebra. To extend the reversals to all elements of an algebra, we simply require that it is a linear operation. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the reverse<br />
<br />
:$$\widetilde{(a\mathbf x + b\mathbf y)} = a\mathbf{\tilde x} + b\mathbf{\tilde y}$$ ,<br />
<br />
and similarly for the antireverse.<br />
<br />
The following table lists the reverse and antireverse for all of the basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.<br />
<br />
[[Image:Reverses.svg|720px]]<br />
<br />
== See Also ==<br />
<br />
* [[Complements]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Complements&diff=274Complements2024-01-22T08:01:26Z<p>Eric Lengyel: </p>
<hr />
<div>''Complements'' are unary operations in geometric algebra that perform a specific type of dualization.<br />
<br />
Every basis element $$\mathbf u$$ has a ''right complement'', which we denote by $$\overline{\mathbf u}$$, that satisfies the equation<br />
<br />
:$$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ .<br />
<br />
There is also a ''left complement'', which we denote by $$\underline{\mathbf u}$$, that satisfies the equation<br />
<br />
:$$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$ .<br />
<br />
Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship<br />
<br />
:$$\underline{\mathbf u} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\overline{\mathbf u}$$ .<br />
<br />
This shows that the left and right complements of an element $$\mathbf u$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf u)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf u)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf u}} = \mathbf u$$.<br />
<br />
The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write<br />
<br />
:$$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$<br />
:$$\underline{\mathbf u} \vee\mathbf u = \mathbf 1$$ .<br />
<br />
To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement,<br />
<br />
:$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ ,<br />
<br />
and similarly for the left complement.<br />
<br />
The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$.<br />
<br />
[[Image:Complements.svg|720px]]<br />
<br />
== See Also ==<br />
<br />
* [[Duality]]<br />
* [[Grade and antigrade]]<br />
* [[Bulk and weight]]<br />
* [[Reverses]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=File:Complements.svg&diff=273File:Complements.svg2024-01-22T08:01:07Z<p>Eric Lengyel: Eric Lengyel uploaded a new version of File:Complements.svg</p>
<hr />
<div></div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=File:Reverses.svg&diff=272File:Reverses.svg2024-01-22T08:00:05Z<p>Eric Lengyel: Eric Lengyel uploaded a new version of File:Reverses.svg</p>
<hr />
<div></div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Main_Page&diff=271Main Page2024-01-22T07:58:10Z<p>Eric Lengyel: /* Products and other binary operations */</p>
<hr />
<div>__NOTOC__<br />
== Rigid Geometric Algebra ==<br />
<br />
This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites:<br />
<br />
* [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site]<br />
* [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site]<br />
<br />
Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres.<br />
<br />
Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki.<br />
<br />
'''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.'''<br />
<br />
== Introduction ==<br />
<br />
[[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]]<br />
In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1.<br />
<br />
There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions.<br />
<br />
There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form<br />
<br />
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ .<br />
<br />
There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$.<br />
<br />
There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order.<br />
<br />
Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation<br />
<br />
:$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ ,<br />
<br />
with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not.<br />
<br />
As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf u$$, denoted by $$\operatorname{gr}(\mathbf u)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization.<br />
<br />
For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements.<br />
<br />
In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf u$$. Denoted by $$\operatorname{ag}(\mathbf u)$$, the antigrade of $$\mathbf u$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that<br />
<br />
:$$\operatorname{gr}(\mathbf u) + \operatorname{ag}(\mathbf u) = n$$ ,<br />
<br />
where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs.<br />
<br />
In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension.<br />
<br />
== Pages ==<br />
<br />
=== The five main types of rigid geometric objects ===<br />
<br />
* [[Point]]<br />
* [[Line]]<br />
* [[Plane]]<br />
* [[Motor]]<br />
* [[Flector]]<br />
<br />
=== Various properties and unary operations ===<br />
<br />
* [[Grade and antigrade]]<br />
* [[Complements]]<br />
* [[Reverses]]<br />
* [[Bulk and weight]]<br />
* [[Attitude]]<br />
* [[Duality]]<br />
* [[Geometric norm]]<br />
* [[Geometric property]]<br />
* [[Unitization]]<br />
<br />
=== Products and other binary operations ===<br />
<br />
* [[Geometric products]]<br />
* [[Exterior products]]<br />
* [[Dot products]]<br />
* [[Interior products]]<br />
* [[Join and meet]]<br />
* [[Projections]]<br />
* [[Euclidean distance]]<br />
<br />
=== Isometries of 3D space ===<br />
<br />
* [[Transformation groups]]<br />
* [[Translation]]<br />
* [[Rotation]]<br />
* [[Reflection]]<br />
* [[Inversion]]<br />
* [[Transflection]]<br />
<br />
=== Research Articles ===<br />
<br />
* [[Projective Geometric Algebra Done Right]]<br />
* [[Symmetries in Projective Geometric Algebra]]<br />
* [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Weight_contraction&diff=270Weight contraction2024-01-22T07:57:48Z<p>Eric Lengyel: Created page with "#REDIRECTION Interior products"</p>
<hr />
<div>#REDIRECTION [[Interior products]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Bulk_contraction&diff=269Bulk contraction2024-01-22T07:57:35Z<p>Eric Lengyel: Created page with "#REDIRECTION Interior products"</p>
<hr />
<div>#REDIRECTION [[Interior products]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Bulk_expansion&diff=268Bulk expansion2024-01-22T07:57:28Z<p>Eric Lengyel: Created page with "#REDIRECTION Interior products"</p>
<hr />
<div>#REDIRECTION [[Interior products]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Weight_expansion&diff=267Weight expansion2024-01-22T07:57:19Z<p>Eric Lengyel: Created page with "#REDIRECTION Interior products"</p>
<hr />
<div>#REDIRECTION [[Interior products]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Interior_products&diff=266Interior products2024-01-22T07:56:36Z<p>Eric Lengyel: </p>
<hr />
<div>The ''interior products'' are special products in geometric algebra that are useful for a number of operations including [[projections]]. They are defined as the [[wedge product]] or [[antiwedge product]] between one object and either the [[bulk dual]] or [[weight dual]] of another object.<br />
<br />
== Contractions ==<br />
<br />
The ''bulk contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as<br />
<br />
:$$\mathrm{bulk\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ .<br />
<br />
The ''weight contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as<br />
<br />
:$$\mathrm{weight\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ .<br />
<br />
The contractions have the effect of subtracting grades so that<br />
<br />
:$$\operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{gr}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ .<br />
<br />
In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight contractions are equal to dot products written as<br />
<br />
:$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605} = \mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$<br />
<br />
and<br />
<br />
:$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606} = (\mathbf a \mathbin{\unicode{x25CB}} \mathbf b) \vee \mathbf 1$$ .<br />
<br />
The following Cayley table shows the bulk and weight contraction products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk contraction are highlighted in green, and the values of the weight contraction are highlighted in purple. The darker green cells along the diagonal correspond to the nonzero entries of the metric $$\mathbf G$$.<br />
<br />
<br />
[[Image:Constractions.svg|720px]]<br />
<br />
== Expansions ==<br />
<br />
The ''bulk expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as<br />
<br />
:$$\mathrm{bulk\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ .<br />
<br />
The ''weight expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as<br />
<br />
:$$\mathrm{weight\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ .<br />
<br />
The expansions have the effect of subtracting antigrades so that<br />
<br />
:$$\operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{ag}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ .<br />
<br />
In the case that the grades (and thus antigrades) of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight expansions are equal to dot products written as<br />
<br />
:$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606} = \mathbf a \mathbin{\unicode{x25CB}} \mathbf b$$<br />
<br />
and<br />
<br />
:$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605} = (\mathbf a \mathbin{\unicode{x25CF}} \mathbf b) \wedge \mathbf {\large\unicode{x1D7D9}}$$ .<br />
<br />
The following Cayley table shows the bulk and weight expansion products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk expansion are highlighted in green, and the values of the weight expansion are highlighted in purple. The darker purple cells along the diagonal correspond to the nonzero entries of the antimetric $$\mathbb G$$.<br />
<br />
<br />
[[Image:Expansions.svg|720px]]<br />
<br />
== See Also ==<br />
<br />
* [[Projections]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=File:Expansions.svg&diff=265File:Expansions.svg2024-01-22T07:36:08Z<p>Eric Lengyel: </p>
<hr />
<div></div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=File:Constractions.svg&diff=264File:Constractions.svg2024-01-22T07:35:53Z<p>Eric Lengyel: </p>
<hr />
<div></div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Dot_products&diff=263Dot products2024-01-21T22:02:14Z<p>Eric Lengyel: </p>
<hr />
<div>The ''dot product'' is the inner product in geometric algebra. The dot product and its antiproduct are important for the calculation of angles and [[Geometric norm | norms]].<br />
<br />
== Dot Product ==<br />
<br />
The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$ and read "$$\mathbf a$$ dot $$\mathbf b$$". The dot product is defined as<br />
<br />
:$$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b = \mathbf a^{\mathrm T}\mathbf G \mathbf b$$ ,<br />
<br />
where $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, $$\mathbf G$$ is the $$16 \times 16$$ metric exomorphism matrix, and we are using ordinary matrix multiplication.<br />
<br />
The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is nonzero only if they have the same grade.<br />
<br />
== Antidot Product ==<br />
<br />
The antidot product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b$$ and is read as "$$\mathbf a$$ antidot $$\mathbf b$$". The antidot product is defined as<br />
<br />
:$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \mathbf a^{\mathrm T}\mathbb G \mathbf b$$ ,<br />
<br />
where, again, $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, but now $$\mathbb G$$ is the $$16 \times 16$$ metric antiexomorphism matrix.<br />
<br />
The antidot product can also be derived from the dot product using the De Morgan relationship<br />
<br />
:$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \overline{\underline{\mathbf a} \mathbin{\unicode{x25CF}} \underline{\mathbf b}}$$ .<br />
<br />
== Table ==<br />
<br />
The following table shows the dot product and antidot product of each basis element $$\mathbf u$$ in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ with itself. All other dot products and antidot products are zero.<br />
<br />
<br />
[[Image:Dots.svg|720px]]<br />
<br />
<br />
== See Also ==<br />
<br />
* [[Geometric products]]<br />
* [[Wedge products]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=File:Dots.svg&diff=262File:Dots.svg2024-01-21T21:59:08Z<p>Eric Lengyel: </p>
<hr />
<div></div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Geometric_products&diff=261Geometric products2024-01-21T21:55:08Z<p>Eric Lengyel: </p>
<hr />
<div>The ''geometric product'' is the fundamental product of geometric algebra. There are two products with symmetric properties called the geometric product and geometric antiproduct.<br />
<br />
== Geometric Product ==<br />
<br />
The geometric product between two elements $$\mathbf a$$ and $$\mathbf b$$ has often been written by simply juxtaposing its operands as $$\mathbf{ab}$$ without the use of any infix operator. However, this clearly becomes impractical when both a product and antiproduct are present in the same context, which is now known to be necessary for a proper understanding of the algebra. To remedy the situation, we write the geometric product between elements $$\mathbf a$$ and $$\mathbf b$$ as $$\mathbf a \mathbin{\unicode{x27D1}} \mathbf b$$ and read it as "$$\mathbf a$$ wedge-dot $$\mathbf b$$".<br />
<br />
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{3,0,1}$$ means that three basis vectors square to +'''1''', zero basis vectors square to &minus;'''1''', and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.<br />
<br />
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = \mathbf 1$$<br />
<br />
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = \mathbf 1$$<br />
<br />
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = \mathbf 1$$<br />
<br />
:$$\mathbf e_4 \mathbin{\unicode{x27D1}} \mathbf e_4 = 0$$<br />
<br />
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.<br />
<br />
The following Cayley table shows the geometric products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.<br />
<br />
Cells highlighted in green correspond to the contribution from the [[wedge product]].<br />
<br />
<span style="font-size: 150%;">Geometric Product $$\mathbf a \mathbin{\unicode{x27D1}} \mathbf b$$</span><br />
<br />
[[Image:GeometricProduct.svg|720px]]<br />
<br />
== Geometric Antiproduct ==<br />
<br />
The geometric antiproduct is a dual to the geometric product. The geometric antiproduct between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x27C7}} \mathbf b$$ and is read as "$$\mathbf a$$ antiwedge-dot $$\mathbf b$$".<br />
<br />
The same metric that defines products of basis vectors under the geometric product also applies to the geometric antiproduct, except that now it defines products of basis [[antivectors]]. Three basis antivectors square to $$+{\large\unicode{x1D7D9}}$$, zero basis antivectors square to $$-{\large\unicode{x1D7D9}}$$, and one basis antivector squares to 0. The geometric antiproduct between two different basis antivectors is given by the [[antiwedge product]]. We can write these rules as follows.<br />
<br />
:$$\overline{\mathbf e_1} \mathbin{\unicode{x27C7}} \overline{\mathbf e_1} = {\large\unicode{x1D7D9}}$$<br />
<br />
:$$\overline{\mathbf e_2} \mathbin{\unicode{x27C7}} \overline{\mathbf e_2} = {\large\unicode{x1D7D9}}$$<br />
<br />
:$$\overline{\mathbf e_3} \mathbin{\unicode{x27C7}} \overline{\mathbf e_3} = {\large\unicode{x1D7D9}}$$<br />
<br />
:$$\overline{\mathbf e_4} \mathbin{\unicode{x27C7}} \overline{\mathbf e_4} = 0$$<br />
<br />
:$$\overline{\mathbf e_i} \mathbin{\unicode{x27C7}} \overline{\mathbf e_j} = \overline{\mathbf e_i} \vee \overline{\mathbf e_j}$$, for $$i \neq j$$.<br />
<br />
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $${\large\unicode{x1D7D9}}$$.<br />
<br />
Cells highlighted in green correspond to the contribution from the [[antiwedge product]].<br />
<br />
<span style="font-size: 150%;">Geometric Antiproduct $$\mathbf a \mathbin{\unicode{x27C7}} \mathbf b$$</span><br />
<br />
[[Image:GeometricAntiproduct.svg|720px]]<br />
<br />
== De Morgan Laws ==<br />
<br />
There are many possible geometric products and antiproducts. The signs of the results they produce differ in grade-dependent ways, but are otherwise equivalent. The relationship between the product and antiproduct is fixed by a specific choice of dualization function that exchanges full and empty dimensions. We choose the left and right [[complements]] as the dualization function and its inverse. We can then express each product in terms of the other through an analog of De Morgan's laws as follows.<br />
<br />
:$$\overline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \overline{\mathbf b}$$<br />
<br />
:$$\overline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \overline{\mathbf b}$$<br />
<br />
:$$\underline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \underline{\mathbf b}$$<br />
<br />
:$$\underline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \underline{\mathbf b}$$<br />
<br />
== See Also ==<br />
<br />
* [[Wedge products]]<br />
* [[Dot products]]<br />
* [[Complements]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Geometric_products&diff=260Geometric products2024-01-21T21:54:31Z<p>Eric Lengyel: </p>
<hr />
<div>The ''geometric product'' is the fundamental product of geometric algebra. There are two products with symmetric properties called the geometric product and geometric antiproduct.<br />
<br />
== Geometric Product ==<br />
<br />
The geometric product between two elements $$\mathbf a$$ and $$\mathbf b$$ has often been written by simply juxtaposing its operands as $$\mathbf{ab}$$ without the use of any infix operator. However, this clearly becomes impractical when both a product and antiproduct are present in the same context, which is now known to be necessary for a proper understanding of the algebra. To remedy the situation, we write the geometric product between elements $$\mathbf a$$ and $$\mathbf b$$ as $$\mathbf a \mathbin{\unicode{x27D1}} \mathbf b$$ and read it as "$$\mathbf a$$ wedge-dot $$\mathbf b$$".<br />
<br />
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{3,0,1}$$ means that three basis vectors square to +'''1''', zero basis vectors square to &minus;'''1''', and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.<br />
<br />
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = \mathbf 1$$<br />
<br />
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = \mathbf 1$$<br />
<br />
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = \mathbf 1$$<br />
<br />
:$$\mathbf e_4 \mathbin{\unicode{x27D1}} \mathbf e_4 = 0$$<br />
<br />
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.<br />
<br />
The following Cayley table shows the geometric products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.<br />
<br />
Cells colored yellow correspond to the contribution from the [[wedge product]].<br />
<br />
<span style="font-size: 150%;">Geometric Product $$\mathbf a \mathbin{\unicode{x27D1}} \mathbf b$$</span><br />
<br />
[[Image:GeometricProduct.svg|720px]]<br />
<br />
== Geometric Antiproduct ==<br />
<br />
The geometric antiproduct is a dual to the geometric product. The geometric antiproduct between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x27C7}} \mathbf b$$ and is read as "$$\mathbf a$$ antiwedge-dot $$\mathbf b$$".<br />
<br />
The same metric that defines products of basis vectors under the geometric product also applies to the geometric antiproduct, except that now it defines products of basis [[antivectors]]. Three basis antivectors square to $$+{\large\unicode{x1D7D9}}$$, zero basis antivectors square to $$-{\large\unicode{x1D7D9}}$$, and one basis antivector squares to 0. The geometric antiproduct between two different basis antivectors is given by the [[antiwedge product]]. We can write these rules as follows.<br />
<br />
:$$\overline{\mathbf e_1} \mathbin{\unicode{x27C7}} \overline{\mathbf e_1} = {\large\unicode{x1D7D9}}$$<br />
<br />
:$$\overline{\mathbf e_2} \mathbin{\unicode{x27C7}} \overline{\mathbf e_2} = {\large\unicode{x1D7D9}}$$<br />
<br />
:$$\overline{\mathbf e_3} \mathbin{\unicode{x27C7}} \overline{\mathbf e_3} = {\large\unicode{x1D7D9}}$$<br />
<br />
:$$\overline{\mathbf e_4} \mathbin{\unicode{x27C7}} \overline{\mathbf e_4} = 0$$<br />
<br />
:$$\overline{\mathbf e_i} \mathbin{\unicode{x27C7}} \overline{\mathbf e_j} = \overline{\mathbf e_i} \vee \overline{\mathbf e_j}$$, for $$i \neq j$$.<br />
<br />
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $${\large\unicode{x1D7D9}}$$.<br />
<br />
Cells colored yellow correspond to the contribution from the [[antiwedge product]].<br />
<br />
<span style="font-size: 150%;">Geometric Antiproduct $$\mathbf a \mathbin{\unicode{x27C7}} \mathbf b$$</span><br />
<br />
[[Image:GeometricAntiproduct.svg|720px]]<br />
<br />
== De Morgan Laws ==<br />
<br />
There are many possible geometric products and antiproducts. The signs of the results they produce differ in grade-dependent ways, but are otherwise equivalent. The relationship between the product and antiproduct is fixed by a specific choice of dualization function that exchanges full and empty dimensions. We choose the left and right [[complements]] as the dualization function and its inverse. We can then express each product in terms of the other through an analog of De Morgan's laws as follows.<br />
<br />
:$$\overline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \overline{\mathbf b}$$<br />
<br />
:$$\overline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \overline{\mathbf b}$$<br />
<br />
:$$\underline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \underline{\mathbf b}$$<br />
<br />
:$$\underline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \underline{\mathbf b}$$<br />
<br />
== See Also ==<br />
<br />
* [[Wedge products]]<br />
* [[Dot products]]<br />
* [[Complements]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=File:GeometricAntiproduct.svg&diff=259File:GeometricAntiproduct.svg2024-01-21T21:54:21Z<p>Eric Lengyel: Eric Lengyel uploaded a new version of File:GeometricAntiproduct.svg</p>
<hr />
<div></div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=File:GeometricProduct.svg&diff=258File:GeometricProduct.svg2024-01-21T21:54:01Z<p>Eric Lengyel: Eric Lengyel uploaded a new version of File:GeometricProduct.svg</p>
<hr />
<div></div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Exterior_products&diff=257Exterior products2024-01-21T21:51:04Z<p>Eric Lengyel: </p>
<hr />
<div>The ''exterior product'' is the fundamental product of Grassmann Algebra, and it forms part of the [[geometric product]] in geometric algebra. There are two products with symmetric properties called the exterior product and exterior antiproduct.<br />
<br />
The exterior product between two elements $$\mathbf a$$ and $$\mathbf b$$ generally combines their spatial extents, and the magnitude of the result indicates how close they are to being orthogonal. If the spatial extents of $$\mathbf a$$ and $$\mathbf b$$ are parallel, then their exterior product is zero. (Compare this to the [[dot product]], which is zero whenever $$\mathbf a$$ and $$\mathbf b$$ are orthogonal.)<br />
<br />
== Exterior Product ==<br />
<br />
The exterior product is widely known as the ''wedge product'' because it is written with an upward pointing wedge. The exterior product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \wedge \mathbf b$$ and read "$$\mathbf a$$ wedge $$\mathbf b$$". Grassmann called this the progressive combinatorial product.<br />
<br />
The defining characteristic of the wedge product is that multiplying any vector $$\mathbf v$$ by itself produces zero: $$\mathbf v \wedge \mathbf v = 0$$. This implies that the wedge product is anticommutative for vectors, so we always have<br />
<br />
:$$\mathbf v \wedge \mathbf w = -\mathbf w \wedge \mathbf v$$<br />
<br />
for vectors $$\mathbf v$$ and $$\mathbf w$$. The wedge product is not anticommutative in general, however. For general basis elements $$\mathbf a$$ and $$\mathbf b$$, reversing the order of the operands satisfies the relationship<br />
<br />
:$$\mathbf a \wedge \mathbf b = (-1)^{\operatorname{gr}(\mathbf a)\operatorname{gr}(\mathbf b)} \mathbf b \wedge \mathbf a$$ .<br />
<br />
The wedge product adds the [[grades]] of its operands, so we have<br />
<br />
:$$\operatorname{gr}(\mathbf a \wedge \mathbf b) = \operatorname{gr}(\mathbf a) + \operatorname{gr}(\mathbf b)$$ .<br />
<br />
The following Cayley table shows the exterior products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.<br />
<br />
<span style="font-size: 150%;">Wedge Product $$\mathbf a \wedge \mathbf b$$</span><br />
<br />
[[Image:WedgeProduct.svg|720px]]<br />
<br />
== Exterior Antiproduct ==<br />
<br />
The exterior antiproduct is a dual to the exterior product. It is written with a downward pointing wedge and thus called the ''antiwedge product''. The exterior antiproduct $$\mathbf a \vee \mathbf b$$ is read "$$\mathbf a$$ antiwedge $$\mathbf b$$". Grassmann called this the regressive combinatorial product.<br />
<br />
Whereas the wedge product combines the full dimensions of its operands, the antiwedge product combines the empty dimensions of its operands. The antiwedge product adds the [[antigrades]] of its operands, so we have<br />
<br />
:$$\operatorname{ag}(\mathbf a \vee \mathbf b) = \operatorname{ag}(\mathbf a) + \operatorname{ag}(\mathbf b)$$ .<br />
<br />
The following Cayley table shows the exterior antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.<br />
<br />
<span style="font-size: 150%;">Antiwedge Product $$\mathbf a \vee \mathbf b$$</span><br />
<br />
[[Image:AntiwedgeProduct.svg|720px]]<br />
<br />
== De Morgan Laws ==<br />
<br />
There are many possible exterior products and antiproducts. The signs of the results they produce differ in grade-dependent ways, but are otherwise equivalent. The relationship between the product and antiproduct is fixed by a specific choice of dualization function that exchanges full and empty dimensions. We choose the left and right [[complements]] as the dualization function and its inverse. We can then express each product in terms of the other through an analog of De Morgan's laws as follows.<br />
<br />
:$$\overline{\mathbf a \wedge \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \vee \overline{\mathbf b}$$<br />
<br />
:$$\overline{\mathbf a \vee \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \wedge \overline{\mathbf b}$$<br />
<br />
:$$\underline{\mathbf a \wedge \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \vee \underline{\mathbf b}$$<br />
<br />
:$$\underline{\mathbf a \vee \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \wedge \underline{\mathbf b}$$<br />
<br />
== General Properties ==<br />
<br />
The following table lists several general properties of the wedge product and antiwedge product.<br />
<br />
{| class="wikitable"<br />
! Property !! Description<br />
|-<br />
| style="padding: 12px;" | $$\mathbf a \wedge \mathbf b = -\mathbf b \wedge \mathbf a$$<br />
| style="padding: 12px;" | Anticommutativity of the wedge product for vectors $$\mathbf a$$ and $$\mathbf b$$.<br />
|-<br />
| style="padding: 12px;" | $$\mathbf a \vee \mathbf b = -\mathbf b \vee \mathbf a$$<br />
| style="padding: 12px;" | Anticommutativity of the antiwedge product for antivectors $$\mathbf a$$ and $$\mathbf b$$.<br />
|-<br />
| style="padding: 12px;" | $$(\mathbf a \wedge \mathbf b) \wedge \mathbf c = \mathbf a \wedge (\mathbf b \wedge \mathbf c)$$<br />
| style="padding: 12px;" | Associative law for the wedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.<br />
|-<br />
| style="padding: 12px;" | $$(\mathbf a \vee \mathbf b) \vee \mathbf c = \mathbf a \vee (\mathbf b \vee \mathbf c)$$<br />
| style="padding: 12px;" | Associative law for the antiwedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.<br />
|-<br />
| style="padding: 12px;" | $$\mathbf a \wedge (\mathbf b + \mathbf c) = \mathbf a \wedge \mathbf b + \mathbf a \wedge \mathbf c$$<br />
| style="padding: 12px;" | Distributive law for the wedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.<br />
|-<br />
| style="padding: 12px;" | $$\mathbf a \vee (\mathbf b + \mathbf c) = \mathbf a \vee \mathbf b + \mathbf a \vee \mathbf c$$<br />
| style="padding: 12px;" | Distributive law for the antiwedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.<br />
|-<br />
| style="padding: 12px;" | $$(t\mathbf a) \wedge \mathbf b = \mathbf a \wedge (t\mathbf b) = t(\mathbf a \wedge \mathbf b)$$<br />
| style="padding: 12px;" | Scalar factorization of the wedge product.<br />
|-<br />
| style="padding: 12px;" | $$(t\mathbf a) \vee \mathbf b = \mathbf a \vee (t\mathbf b) = t(\mathbf a \vee \mathbf b)$$<br />
| style="padding: 12px;" | Scalar factorization of the antiwedge product.<br />
|-<br />
| style="padding: 12px;" | $$s \wedge \mathbf a = \mathbf a \wedge s = s\mathbf a$$<br />
| style="padding: 12px;" | Wedge product of a [[scalar]] $$s$$ and any basis element $$\mathbf a$$.<br />
|-<br />
| style="padding: 12px;" | $$s \vee \mathbf a = \mathbf a \vee s = s\mathbf a$$<br />
| style="padding: 12px;" | Antiwedge product of an [[antiscalar]] $$s$$ and any basis element $$\mathbf a$$.<br />
|-<br />
| style="padding: 12px;" | $$s \wedge t = st$$<br />
| style="padding: 12px;" | Wedge product of [[scalars]] $$s$$ and $$t$$.<br />
|-<br />
| style="padding: 12px;" | $$s \vee t = st$$<br />
| style="padding: 12px;" | Antiwedge product of [[antiscalars]] $$s$$ and $$t$$.<br />
|}<br />
<br />
== See Also ==<br />
<br />
* [[Geometric products]]<br />
* [[Dot products]]<br />
* [[Complements]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=File:AntiwedgeProduct.svg&diff=256File:AntiwedgeProduct.svg2024-01-21T21:48:10Z<p>Eric Lengyel: Eric Lengyel uploaded a new version of File:AntiwedgeProduct.svg</p>
<hr />
<div></div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=File:WedgeProduct.svg&diff=255File:WedgeProduct.svg2024-01-21T21:47:26Z<p>Eric Lengyel: Eric Lengyel uploaded a new version of File:WedgeProduct.svg</p>
<hr />
<div></div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=File:Basis.svg&diff=254File:Basis.svg2024-01-21T21:43:19Z<p>Eric Lengyel: Eric Lengyel uploaded a new version of File:Basis.svg</p>
<hr />
<div></div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Rigid_Geometric_Algebra_for_2D_Space&diff=253Rigid Geometric Algebra for 2D Space2024-01-10T08:18:42Z<p>Eric Lengyel: /* Flectors */</p>
<hr />
<div>== Introduction ==<br />
<br />
[[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]]<br />
In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1.<br />
<br />
There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions.<br />
<br />
There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form<br />
<br />
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ .<br />
<br />
There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents.<br />
<br />
Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents.<br />
<br />
__TOC__<br />
<br clear="right" /><br />
== Unary Operations ==<br />
<br />
The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table.<br />
<br />
[[Image:Unary201.svg|480px]]<br />
<br />
== Geometric Products ==<br />
<br />
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to &minus;1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.<br />
<br />
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$<br />
<br />
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$<br />
<br />
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$<br />
<br />
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.<br />
<br />
The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.<br />
<br />
[[Image:GeometricProduct201.svg|360px]]<br />
<br />
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$.<br />
<br />
[[Image:GeometricAntiproduct201.svg|360px]]<br />
<br />
== Points ==<br />
<br />
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form<br />
<br />
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ .<br />
<br />
The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$.<br />
<br />
When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself.<br />
<br />
If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]].<br />
<br />
== Lines ==<br />
<br />
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\mathbf g$$ is a bivector having the general form<br />
<br />
:$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ .<br />
<br />
The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$g_x^2 + g_y^2 = 1$$.<br />
<br />
When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself.<br />
<br />
If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$g_z = \pm 1$$. This is the ''horizon'' of two-dimensional space.<br />
<br />
== Bulk and Weight ==<br />
<br />
The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.<br />
<br />
{| class="wikitable"<br />
! Type !! Definition !! Bulk !! Weight<br />
|-<br />
| style="padding: 12px;" | [[Magnitude]]<br />
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$<br />
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$<br />
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$<br />
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$<br />
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_z \mathbf e_{12}$$<br />
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{23} + g_y \mathbf e_{31}$$<br />
|-<br />
| style="padding: 12px;" | [[Motor]]<br />
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$<br />
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$<br />
|-<br />
| style="padding: 12px;" | [[Flector]]<br />
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$<br />
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$<br />
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$<br />
|}<br />
<br />
== Unitization ==<br />
<br />
The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.<br />
<br />
{| class="wikitable"<br />
! Type !! Definition !! Unitization<br />
|-<br />
| style="padding: 12px;" | [[Magnitude]]<br />
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$y^2 = 1$$<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$<br />
| style="padding: 12px;" | $$p_z^2 = 1$$<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$<br />
| style="padding: 12px;" | $$g_x^2 + g_y^2 = 1$$<br />
|-<br />
| style="padding: 12px;" | [[Motor]]<br />
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$<br />
|-<br />
| style="padding: 12px;" | [[Flector]]<br />
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$<br />
| style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$<br />
|}<br />
<br />
== Geometric Norm ==<br />
<br />
The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.<br />
<br />
{| class="wikitable"<br />
! Type !! Definition !! Bulk Norm<br />
|-<br />
| style="padding: 12px;" | [[Magnitude]]<br />
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_z|$$<br />
|-<br />
| style="padding: 12px;" | [[Motor]]<br />
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$<br />
|-<br />
| style="padding: 12px;" | [[Flector]]<br />
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$<br />
|}<br />
<br />
The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.<br />
<br />
{| class="wikitable"<br />
! Type !! Definition !! Weight Norm<br />
|-<br />
| style="padding: 12px;" | [[Magnitude]]<br />
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2}$$<br />
|-<br />
| style="padding: 12px;" | [[Motor]]<br />
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$<br />
|-<br />
| style="padding: 12px;" | [[Flector]]<br />
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$<br />
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$<br />
|}<br />
<br />
The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.<br />
<br />
{| class="wikitable"<br />
! Type !! Definition !! Geometric Norm !! Interpretation<br />
|-<br />
| style="padding: 12px;" | [[Magnitude]]<br />
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$<br />
| style="padding: 12px;" | A Euclidean distance.<br />
|-<br />
| style="padding: 12px;" | [[Point]]<br />
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$<br />
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$<br />
| style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$.<br />
<br />
Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$.<br />
|-<br />
| style="padding: 12px;" | [[Line]]<br />
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$<br />
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_z|}{\sqrt{g_x^2 + g_y^2}}$$<br />
| style="padding: 12px;" | Perpendicular distance from the origin to the line $$\mathbf g$$.<br />
<br />
Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$.<br />
|-<br />
| style="padding: 12px;" | [[Motor]]<br />
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$<br />
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$<br />
| style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$.<br />
|-<br />
| style="padding: 12px;" | [[Flector]]<br />
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$<br />
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$<br />
| style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$.<br />
|}<br />
<br />
== Join and Meet ==<br />
<br />
The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection.<br />
<br />
The points and lines appearing in the following tables are defined as follows:<br />
<br />
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$<br />
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$<br />
:$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$<br />
:$$\mathbf h = h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$<br />
<br />
The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects.<br />
<br />
{| class="wikitable"<br />
! Formula || Description<br />
|-<br />
| style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$<br />
| style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$.<br />
<br />
Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.<br />
|-<br />
| style="padding: 12px;" | $$\mathbf g \vee \mathbf h = (g_yh_z - h_yg_z)\mathbf e_1 + (g_zh_x - g_xh_z)\mathbf e_2 + (g_xh_y - g_yh_x)\mathbf e_3$$<br />
| style="padding: 12px;" | Point where lines $$\mathbf g$$ and $$\mathbf h$$ intersect.<br />
<br />
Point at infinity if $$\mathbf g$$ and $$\mathbf h$$ are parallel.<br />
|-<br />
| style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p = -g_yp_z\mathbf e_{23} + g_xp_z\mathbf e_{31} + (g_yp_x - g_xp_y)\mathbf e_{12}$$<br />
| style="padding: 12px;" | Line perpendicular to line $$\mathbf g$$ passing through point $$\mathbf p$$.<br />
|}<br />
<br />
== Projections ==<br />
<br />
The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas.<br />
<br />
{| class="wikitable"<br />
! Formula !! Description<br />
|-<br />
| style="padding: 12px;" | $$\left(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p\right) \vee \mathbf g = (g_x^2 + g_y^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z)(g_x \mathbf e_1 + g_y \mathbf e_2)$$<br />
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\mathbf g$$.<br />
|-<br />
| style="padding: 12px;" | $$\left(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g\right) \wedge \mathbf p = g_xp_z^2 \mathbf e_{23} + g_yp_z^2 \mathbf e_{31} - (g_xp_x + g_yp_y)p_z \mathbf e_{12}$$<br />
| style="padding: 12px;" | Antiprojection of line $$\mathbf g$$ onto point $$\mathbf p$$.<br />
|}<br />
<br />
Projecting the origin onto a line gives us the following formula for the point on a line $$\mathbf g$$ closest to the origin.<br />
<br />
:$$\left(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_3\right) \vee \mathbf g = -g_xg_z \mathbf e_1 - g_yg_z \mathbf e_2 + (g_x^2 + g_y^2)\mathbf e_3$$<br />
<br />
Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$.<br />
<br />
:$$\left(\mathbf p^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$<br />
<br />
== Motors ==<br />
<br />
The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form<br />
<br />
:$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ .<br />
<br />
A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$.<br />
<br />
A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as<br />
<br />
:$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ .<br />
<br />
== Flectors ==<br />
<br />
The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form<br />
<br />
:$$\mathbf F = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12} + g_w \mathbf 1$$ .<br />
<br />
A flector represents a transflection with respect to the line $$g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$. When the line is unitized, $$g_w$$ is half the translation distance parallel to the line.</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Reverses&diff=252Reverses2024-01-10T00:49:36Z<p>Eric Lengyel: </p>
<hr />
<div>''Reverses'' are unary operations in geometric algebra that are analogs of conjugate or transpose operations.<br />
<br />
For any element $$\mathbf x$$ that is the [[wedge product]] of $$k$$ vectors, the ''reverse'' of $$\mathbf x$$, which we denote by $$\mathbf{\tilde x}$$, is the result of multiplying those same $$k$$ vectors in reverse order. For example, the reverse of $$\mathbf e_{234}$$ is $$\mathbf e_4 \wedge \mathbf e_3 \wedge \mathbf e_2$$, which we would write as $$-\mathbf e_{234}$$since 432 is an odd permutation of 234. In general, the reverse of an element $$\mathbf x$$ is given by<br />
<br />
:$$\mathbf{\tilde x} = (-1)^{\operatorname{gr}(\mathbf x)(\operatorname{gr}(\mathbf x) - 1)/2}\,\mathbf x$$ .<br />
<br />
Symmetrically, for any element $$\mathbf x$$ that is the [[antiwedge product]] of $$m$$ antivectors, the ''antireverse'' of $$\mathbf x$$, which we denote by $$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}$$, is the result of multiplying those same $$m$$ antivectors in reverse order (but this time under the [[antiwedge product]]). In general, the antireverse of an element $$\mathbf x$$ is given by<br />
<br />
:$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} = (-1)^{\operatorname{ag}(\mathbf x)(\operatorname{ag}(\mathbf x) - 1)/2}\,\mathbf x$$ .<br />
<br />
The reverse and antireverse of any element $$\mathbf x$$ are related by<br />
<br />
:$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} = (-1)^{\operatorname{gr}(\mathbf x)\operatorname{ag}(\mathbf x)}(-1)^{n(n-1)/2}\,\mathbf{\tilde x}$$ ,<br />
<br />
where $$n$$ is the number of dimensions in the algebra. To extend the reversals to all elements of an algebra, we simply require that it is a linear operation. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the reverse<br />
<br />
:$$\widetilde{(a\mathbf x + b\mathbf y)} = a\mathbf{\tilde x} + b\mathbf{\tilde y}$$ ,<br />
<br />
and similarly for the antireverse.<br />
<br />
The following table lists the reverse and antireverse for all of the basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.<br />
<br />
[[Image:Reverses.svg|820px]]<br />
<br />
== See Also ==<br />
<br />
* [[Complements]]</div>Eric Lengyelhttps://rigidgeometricalgebra.org/wiki/index.php?title=Space-Antispace_Transform_Correspondence_in_Projective_Geometric_Algebra&diff=251Space-Antispace Transform Correspondence in Projective Geometric Algebra2024-01-01T05:10:18Z<p>Eric Lengyel: </p>
<hr />
<div>'''By Eric Lengyel'''<br /><br />
May 20, 2022<br />
<br />
<br />
[[Image:Antispace1.svg|480px|thumb|right|'''Figure 1.''' The coordinates $$(p_x, p_y, p_z)$$ can be interpreted as the one-dimensional span of a single vector representing a homogeneous point or as the $$(n - 1)$$-dimensional span of all orthogonal vectors representing a homogeneous hyperplane, which is a line when $$n = 3$$. Geometrically, these two interpretations are dual to each other, and their distances to the origin are reciprocals of each other.]]<br />
The concept of duality can be understood geometrically in an ''n''-dimensional projective setting by considering both the subspace that an object occupies and the complementary subspace that the object concurrently does not occupy. The dimensionalities of these two components always sum to ''n'', and they represent the ''space'' and ''antispace'' associated with the object. (Antispace is also known as negative space or counterspace.) The example shown in Figure 1 demonstrates the duality between homogeneous points and lines in a three-dimensional projective space. The triplet of coordinates $$(p_x, p_y, p_z)$$ can be interpreted as a vector pointing from the origin toward a specific location on the projection plane $$z = 1$$. This vector corresponds to the one-dimensional space of the point that it represents. The dual of a point materializes when we consider all of the directions of space that are orthogonal to the single direction $$(p_x, p_y, p_z)$$. As illustrated by the figure, these directions span an $$(n - 1)$$-dimensional subspace that intersects the projection plane at a line when $$n = 3$$. In this way, the coordinates $$(p_x, p_y, p_z)$$ can be interpreted as both a point and a line, and they are ''duals'' of each other.<br />
<br />
When we express the coordinates $$(p_x, p_y, p_z)$$ on the vector basis as $$p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$, it explicitly states that we are working with a single spatial dimension representing a point, and the ambiguity is removed. Similarly, if we express the coordinates on the bivector basis as $$p_x \mathbf e_{23} + p_y \mathbf e_{31} + p_z \mathbf e_{12}$$, then we are working with the two orthogonal spatial dimensions representing a line. In each case, the subscripts of the basis elements tell us which basis vectors are present in the representation, and this defines the ''space'' of the object. The subscripts also tell us which basis vectors are absent in the representation, and this defines the ''antispace'' of the object. Acknowledging the existence of both the space and the antispace of any object and assigning equal meaningfulness to them allows us to explore the nature of duality to its fullest. A vector $$p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ is never only a point, but both a point and a line simultaneously, where the point exists in space, and the line exists in antispace. Likewise, a bivector $$p_x \mathbf e_{23} + p_y \mathbf e_{31} + p_z \mathbf e_{12}$$ is never only a line, but both a line and a point simultaneously, where the line exists in space, and the point exists in antispace. If we study only the spatial facet of these objects and their higher-dimensional counterparts, then we are missing half of a bigger picture.<br />
<br />
It is particularly interesting to consider the Euclidean isometries that map ''n''-dimensional space onto itself while preserving distances and angles. We know how each isometry transforms the space of a point, line, plane, etc., but for a complete understanding of the geometry, we must ask ourselves what happens to the antispace of those objects at the same time. Equivalently, when an object is transformed by an isometry, we would like to know how its dual is transformed. The answer requires that we first look at the invariants associated with each Euclidean isometry.<br />
<br />
In the two-dimensional plane, the Euclidean isometries consist of a rotation about point, a translation in a specific direction, and a transflection with respect to a specific mirroring line. A reflection is a special case of transflection in which there is no motion parallel to the line, and translation is a special case of rotation in which the center lies in the horizon. Naturally, the invariant of a rotation is its center point, and the invariant of a transflection is its mirroring line. These objects are mapped onto themselves by their associated transforms, and this necessitates that their duals also be mapped onto themselves by whatever corresponding transforms occur in antispace. Because a rotation fixes its center point, the corresponding transform in antispace must fix the line that is dual to that point. And because a transflection fixes its mirroring line, the corresponding transform in antispace must fix the point that is dual to that line. These transforms occurring in antispace are reciprocal analogs of the transforms occurring in space. There is a direct correspondence between the two transforms, and they are inextricably linked. Whenever one transform is applied in space, the other is applied in antispace, and vice-versa.<br />
<br />
[[Image:Antispace2.svg|640px|thumb|right|'''Figure 2.''' (Left) A regular rotation fixes the green center point at $$(1, 0)$$ and the horizon. (Right) The corresponding reciprocal rotation fixes the green line at $$x = -1$$ dual to the center point and the origin.]]<br />
Figure 2 shows a two-dimensional rotation transform and its reciprocal analog. The green point represents the center of rotation, and the green line is the dual of that point. Under the regular rotation, the center point is fixed, and under the reciprocal rotation, the line dual to the center point is fixed. These are not, however, the only fixed geometries. A regular rotation also fixes the horizon line, and thus its dual, the origin, must be fixed in the reciprocal rotation. This is illustrated by the red point in the figure, which is the focus of the various conic-section orbits. Here, the green line is the directrix.<br />
<br />
[[Image:Antispace3.svg|640px|thumb|right|'''Figure 3.''' (Left) A regular reflection fixes the green mirroring line at $$x = -1/2$$ and the point in the horizon in the perpendicular direction. (Right) The corresponding reciprocal reflection fixes the green point $$(2, 0)$$ dual to the mirroring line and the line through the origin parallel to the mirroring line.]]<br />
Figure 3 shows a two-dimensional reflection transform and its reciprocal analog. The green line represents the mirroring plane of the reflection, and the green point is the dual of that line. Under the regular reflection, the mirroring line is fixed, and under the reciprocal reflection, the point dual to the mirroring line is fixed. As with rotation, there are additional fixed geometries under these transforms. A regular reflection fixes the point in the horizon in the direction perpendicular to the mirroring plane. The dual of this point is a line parallel to the mirroring line and containing the origin that remains fixed by the reciprocal reflection. This is illustrated by the red line in the figure, which is clearly a reflection boundary in a sense.<br />
<br />
[[Image:Antispace4.svg|640px|thumb|right|'''Figure 4.''' (Left) A regular translation fixes the point in the horizon perpendicular to the direction of translation and every line parallel to the direction of translation. (Right) The corresponding reciprocal translation (a perspective projection) fixes the line parallel to the direction of translation through the origin and every point in the line through the origin perpendicular to the direction of translation.]]<br />
Finally, Figure 4 shows a two-dimensional translation transform and its reciprocal analog. As mentioned above, a translation is a special case of rotation in which the center lies in the horizon. As such, there is no finite fixed geometry that can be shown in the figure for a regular translation. However, the dual of the center in the horizon must be a line containing the origin that is fixed by the reciprocal translation, and that is illustrated by the red line in the figure. Reciprocal translation is especially important because it is the one to which we can most easily assign some practical meaning. It is a ''perspective projection'' onto the line through the origin perpendicular to the direction of translation.<br />
<br />
In the three-dimensional projective geometric algebra $$\mathbb R_{2,0,1}$$, a homogeneous representation of two-dimensional space, a regular rotation about a center point $$\mathbf c$$ is given by<br />
<br />
:$$\mathbf Q = c_x \mathbf e_1 + c_y \mathbf e_2 + c_z \mathbf e_3 + r {\large\unicode{x1D7D9}}$$,<br />
<br />
and this becomes a translation when $$c_z = 0$$. A regular transflection across the line $$\mathbf h$$ is given by<br />
<br />
:$$\mathbf F = s + h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$,<br />
<br />
and this becomes a pure reflection when $$s = 0$$. Together, these operators include all possible Euclidean isometries in the two-dimensional plane. Under the geometric antiproduct $$\unicode{x27C7}$$, arbitrary products of these operators form the group $$\mathrm E(2)$$ with $${\large\unicode{x1D7D9}}$$ as the identity, and they covariantly transform any object $$\mathbf a$$ in the algebra through the sandwich products<br />
<br />
:$$\mathbf a' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf a \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$<br />
<br />
and<br />
<br />
:$$\mathbf a' = \mathbf F \mathbin{\unicode{x27C7}} \mathbf a \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$.<br />
<br />
Symmetrically, a reciprocal rotation about the line $$\mathbf c$$ is given by<br />
<br />
:$$\mathcal Q = c_x \mathbf e_{23} + c_y \mathbf e_{31} + c_z \mathbf e_{12} - r$$,<br />
<br />
and a reciprocal transflection across the point $$\mathbf h$$ is given by<br />
<br />
:$$\mathcal F = h_x \mathbf e_1 + h_y \mathbf e_2 + h_z \mathbf e_3 - s {\large\unicode{x1D7D9}}$$.<br />
<br />
These two operators generate a different group of transformations under the geometric product $$\unicode{x27D1}$$. Arbitrary products of these operators form the reciprocal Euclidean group $$\mathrm{RE}(2)$$ with $$\mathbf 1$$ as the identity, and they covariantly transform any object $$\mathbf a$$ in the algebra through the sandwich products<br />
<br />
:$$\mathbf a' = \mathcal Q \mathbin{\unicode{x27D1}} \mathbf a \mathbin{\unicode{x27D1}} \mathcal{\tilde Q}$$<br />
<br />
and<br />
<br />
:$$\mathbf a' = \mathcal F \mathbin{\unicode{x27D1}} \mathbf a \mathbin{\unicode{x27D1}} \mathcal{\tilde F}$$<br />
<br />
The groups $$\mathrm E(2)$$ and $$\mathrm{RE}(2)$$ are isomorphic, and they each contain the orthogonal group $$\mathrm O(2)$$ as a common subgroup. The complement operation provides a two-way mapping between transforms associated with members of $$\mathrm E(2)$$ and $$\mathrm{RE}(2)$$.<br />
<br />
The invariant geometries of the four types of transforms described above are summarized in Table 1. The Euclidean isometries always fix a coinvariant contained in the horizon, and the corresponding reciprocal transforms always fix a coinvariant containing the origin. In general, if $$\mathbf x$$ is the primary invariant of a Euclidean isometry, then the complement of the weight of $$\mathbf x$$ gives the coinvariant. Symmetrically, if $$\mathbf x$$ is the primary invariant of a reciprocal transform, then the complement of the bulk of $$\mathbf x$$ gives the coinvariant. When the primary invariant of a Euclidean isometry contains the origin, there is a corresponding reciprocal transform that performs the same operation. Symmetrically, when the primary invariant of a projective transform is contained in the horizon, there is a corresponding Euclidean isometry that performs the same operation. These are where $$\mathrm E(2)$$ and $$\mathrm{RE}(2)$$ intersect at $$\mathrm O(2)$$.<br />
<br />
{| class="wikitable"<br />
|+ style="caption-side: bottom; padding-top: 0.5em; text-align: left; font-size: 92%; font-weight: normal;" | '''Table 1.''' These are the invariants of transforms occurring in the 3D projective geometric algebra representing the 2D plane. The primary invariant of any regular transform (a Euclidean isometry) or dual transform is given by the vector or bivector components of the operator itself. The coinvariant is given by the weight complement of the primary invariant in the case of regular transforms and by the bulk complement of the primary invariant in the case of dual transforms.<br />
|-<br />
! Transform !! Primary Invariant !! Coinvariant<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Regular rotation<br />$$\mathbf Q = c_x \mathbf e_1 + c_y \mathbf e_2 + c_z \mathbf e_3 + r {\large\unicode{x1D7D9}}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Point $$c_x \mathbf e_1 + c_y \mathbf e_2 + c_z \mathbf e_3$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Horizon line $$\mathbf e_{12}$$<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Regular transflection<br />$$\mathbf F = s + h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Line $$h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Point in horizon $$h_x \mathbf e_1 + h_y \mathbf e_2$$<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Reciprocal rotation<br />$$\mathcal Q = c_x \mathbf e_{23} + c_y \mathbf e_{31} + c_z \mathbf e_{12} - r$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Line $$c_x \mathbf e_{23} + c_y \mathbf e_{31} + c_z \mathbf e_{12}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Origin point $$\mathbf e_3$$<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Reciprocal transflection<br />$$\mathcal F = h_x \mathbf e_1 + h_y \mathbf e_2 + h_z \mathbf e_3 - s {\large\unicode{x1D7D9}}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Point $$h_x \mathbf e_1 + h_y \mathbf e_2 + h_z \mathbf e_3$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Line through origin $$h_x \mathbf e_{23} + h_y \mathbf e_{31}$$<br />
|}<br />
<br />
<br />
In the four-dimensional projective geometric algebra $$\mathbb R_{3,0,1}$$ representing three-dimensional space, every Euclidean isometry is either a screw transform $$\mathbf Q$$ or a rotoreflection $$\mathbf F$$. (The only geometrical difference between these is that the displacement along the rotation axis in a screw transform is replaced by a reflection in a plane perpendicular to the rotation axis in a rotoreflection.) The primary invariant of a screw transform is its bivector components, which corresponds to the line about which a rotation is taking place. A rotoreflection can have two primary invariants, one associated with its vector components and a second associated with its trivector components. These invariants, the invariants of the corresponding projective transforms, and the coinvariants for each are summarized in Table 2.<br />
<br />
{| class="wikitable"<br />
|+ style="caption-side: bottom; padding-top: 0.5em; text-align: left; font-size: 92%; font-weight: normal;" | '''Table 2.''' These are the invariants of transforms occurring in the 4D projective geometric algebra representing 3D space. The primary invariant of any regular transform (a Euclidean isometry) or reciprocal transform is given by the vector, bivector, or trivector components of the operator itself. The coinvariants are given by the weight complement of each primary invariant in the case of regular transforms and by the bulk complement of each primary invariant in the case of projective transforms.<br />
|-<br />
! Transform !! Primary Invariants !! Coinvariants<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Regular screw transform<br />$$\mathbf Q = r_x \mathbf e_{41} + r_y \mathbf e_{42} + r_z \mathbf e_{43} + r_w {\large\unicode{x1D7D9}} + u_x \mathbf e_{23} + u_y \mathbf e_{31} + u_z \mathbf e_{12} + u_w$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Line $$r_x \mathbf e_{41} + r_y \mathbf e_{42} + r_z \mathbf e_{43} + u_x \mathbf e_{23} + u_y \mathbf e_{31} + u_z \mathbf e_{12}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Line in horizon $$r_x \mathbf e_{23} + r_y \mathbf e_{31} + r_z \mathbf e_{12}$$<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Regular rotoreflection<br />$$\mathbf F = s_x \mathbf e_1 + s_y \mathbf e_2 + s_z \mathbf e_3 + s_w \mathbf e_4 + h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Plane $$h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$,<br />Point $$s_x \mathbf e_1 + s_y \mathbf e_2 + s_z \mathbf e_3 + s_w \mathbf e_4$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Point in horizon $$h_x \mathbf e_1 + h_y \mathbf e_2 + h_z \mathbf e_3$$,<br />Horizon $$e_{321}$$<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Reciprocal screw transform<br />$$\mathbf Q = u_x \mathbf e_{41} + u_y \mathbf e_{42} + u_z \mathbf e_{43} - u_w {\large\unicode{x1D7D9}} + r_x \mathbf e_{23} + r_y \mathbf e_{31} + r_z \mathbf e_{12} - r_w$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Line $$u_x \mathbf e_{41} + u_y \mathbf e_{42} + u_z \mathbf e_{43} + r_x \mathbf e_{23} + r_y \mathbf e_{31} + r_z \mathbf e_{12}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Line through origin $$r_x \mathbf e_{41} + r_y \mathbf e_{42} + r_z \mathbf e_{43}$$<br />
|-<br />
| style="padding-left: 1em; padding-right: 1em;" | Reciprocal rotoreflection<br />$$\mathcal F = h_x \mathbf e_1 + h_y \mathbf e_2 + h_z \mathbf e_3 - s {\large\unicode{x1D7D9}}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Point $$h_x \mathbf e_1 + h_y \mathbf e_2 + h_z \mathbf e_3 + h_w \mathbf e_4$$,<br />Plane $$s_x \mathbf e_{423} + s_y \mathbf e_{431} + s_z \mathbf e_{412} + s_w \mathbf e_{321}$$<br />
| style="padding-left: 1em; padding-right: 1em;" | Plane through origin $$h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412}$$,<br />Origin $$\mathbf e_4$$<br />
|}<br />
<br />
<br />
The unit-weight invertible elements of the $$(n + 1)$$-dimensional projective geometric algebra $$\mathbb R_{n,0,1}$$ constitute a double cover of both the groups $$\mathrm E(n)$$ and $$\mathrm{RE}(n)$$. The geometric product corresponds to transform composition in the group $$\mathrm{RE}(n)$$, and the geometric antiproduct corresponds to transform com-position in the group $$\mathrm E(n)$$. Regular reflections across planes are represented by antivectors (having antigrade one), and they meet at lower-dimensional invariants under the geometric antiproduct. Symmetrically, reciprocal reflections across points are represented by vectors (having grade one), and they join at higher-dimensional invariants under the geometric product. A sandwich product<br />
<br />
:$$\mathcal Q \mathbin{\unicode{x27D1}} \mathbf a \mathbin{\unicode{x27D1}} \mathcal{\tilde Q}$$<br />
<br />
transforms the space of $$\mathbf a$$ with an element of $$\mathrm{RE}(n)$$, and it transforms the antispace of $$\mathbf a$$ with the complementary element of $$\mathrm E(n)$$. Symmetrically, a sandwich product<br />
<br />
:$$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf a \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$<br />
<br />
transforms the space of $$\mathbf a$$ with an element of $$\mathrm E(n)$$, and it transforms the antispace of $$\mathbf a$$ with the complementary element of $$\mathrm{RE}(n)$$.<br />
<br />
[[Image:Antispace5.svg|640px|thumb|right|'''Figure 5.''' The unit-weight invertible elements of the projective geometric algebra $$\mathbb R_{n,0,1}$$ are a double cover of both the Euclidean group $$\mathrm E(n)$$ and the reciprocal Euclidean group $$\mathrm{RE}(n)$$. Elements corresponding to transforms in $$\mathrm E(n)$$ are composed with the geometric antiproduct, and elements corresponding to transforms in $$\mathrm{RE}(n)$$ are composed with the geometric product. Transforms belonging to the common subgroup $$\mathrm O(n)$$ have two representations in $$\mathbb R_{n,0,1}$$, one associated with the geometric product, and one associated with the geometric antiproduct.]]<br />
The groups $$\mathrm E(n)$$ and $$\mathrm{RE}(n)$$ have a number of subgroups, and the hierarchical relationships among them are shown in Figure 5. In particular, the Euclidean group $$\mathrm E(n)$$ contains the special Euclidean subgroup $$\mathrm{SE}(n)$$ consisting of all combinations of regular rotations, which are covered by the antigrade 2 elements of $$\mathbb R_{n,0,1}$$. Correspondingly, the reciprocal Euclidean group $$\mathrm{RE}(n)$$ contains the reciprocal special Euclidean subgroup $$\mathrm{RSE}(n)$$ consisting of all combinations of reciprocal rotations, which are covered by the grade 2 elements of $$\mathbb R_{n,0,1}$$. The subgroups $$\mathrm{SE}(n)$$ and $$\mathrm{RSE}(n)$$ further contain translation subgroups $$\mathrm T(n)$$ and $$\mathrm{RT}(n)$$, respectively.<br />
<br />
Transforms about invariants containing the origin are the same in both $$\mathrm E(n)$$ and $$\mathrm{RE}(n)$$, and they constitute the common subgroup $$\mathrm O(n)$$. Every member of $$\mathrm O(n)$$ has a representation in $$\mathbb R_{n,0,1}$$ that transforms elements with the geometric product and a complementary representation that transforms elements with the geometric antiproduct. For example, in $$\mathbb R_{3,0,1}$$, a conventional quaternion $$\mathbf q$$ can be expressed as<br />
<br />
:$$\mathbf q = x \mathbf e_{23} + y \mathbf e_{31} + z \mathbf e_{12} - w \mathbf 1$$,<br />
<br />
which covariantly transforms any object $$\mathbf a$$ with the sandwich product $$\mathbf q \mathbin{\unicode{x27D1}} \mathbf a \mathbin{\unicode{x27D1}} \mathbf{\tilde q}$$, and it can be expressed as<br />
<br />
:$$\mathbf q = x \mathbf e_{41} + y \mathbf e_{42} + z \mathbf e_{43} + w {\large\unicode{x1D7D9}}$$,<br />
<br />
which covariantly transforms any object $$\mathbf a$$ with the sandwich product $$\mathbf q \mathbin{\unicode{x27C7}} \mathbf a \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{q}}}$$.<br />
<br />
In terms of matrix multiplication, a general element of the group $$\mathrm E(n)$$ transforms a point by multiplying on the left by an $$(n + 1) \times (n + 1)$$ matrix of the form<br />
<br />
:$$\begin{bmatrix} \mathbf m_{n \times n} & \mathbf t_{n \times 1} \\ \mathbf 0_{1 \times n} & 1\end{bmatrix}$$<br />
<br />
where the $$n \times n$$ submatrix $$\mathbf m$$ is orthogonal. A general element of the corresponding group $$\mathrm{RE}(n)$$ transforms points with matrices of the form<br />
<br />
:$$\begin{bmatrix} \mathbf m_{n \times n} & \mathbf 0_{n \times 1} \\ \mathbf t_{1 \times n} & 1\end{bmatrix}$$<br />
<br />
In the special subgroups of $$\mathrm E(n)$$ and $$\mathrm{RE}(n)$$, the submatrix $$\mathbf m$$ has a determinant of $$+1$$. In the translation subgroups $$\mathrm T(n)$$ and $$\mathrm{RT}(n)$$, $$\mathbf m$$ is the identity matrix. Finally, when $$\mathbf t = \mathbf 0$$, both matrices have the same form and belong to $$\mathrm O(n)$$.<br />
<br />
The isomorphic mapping between $$\mathrm E(n)$$ and $$\mathrm{RE}(n)$$ is given by the inverse transpose operation on the matrix representatives. That is, if $$\mathbf M$$ is an $$(n + 1) \times (n + 1)$$ matrix representing an element of $$\mathrm E(n)$$, then the corresponding element of $$\mathrm{RE}(n)$$ is given by $$\mathbf (M^{-1})^{\mathrm T}$$. Of course, this operation is an involution, and the mapping works both ways.</div>Eric Lengyel