Motivation
Canonical Rubik’s Cube solver algorithm1 constructs cube state from face colors and a lot of permutation rules. That may waste too many coding :) Face color is merely appearance, cubies’ orientation is essential. Since Rubik’s Cube seems already been used as the avatar of group theory (check this wikipedia entry), it’s better to clarify all details of the cube rotation group structure, and construct the whole Rubik’s Cube representations based on cubies’ orientation.
Regardless of Rubik’s Cube, orthogonal rotation in 3D space is usual and connected with interesting problems. E.g. how to quickly tell if 2 orthogonal Euler angles are the same rotation, purely by algebra without experiment? Quaternion calculus may be a short answer, but when you do that, irrational numbers are inevitable, and that seems wasting and precise problematic.
Programmers prefer easy implementation, which based on a set of simple representation and rules applied to them. No float numbers, no redundancy. All you need is a multiplication table, and the table is highly symmetric, so let’s begin from analyzing the R3 orthogonal rotation group structure.
Quaternion space half reduction
In fact, we can invent a new symbol system to represent every element, but it may be a better choice to keep compatible with quaternion. However, by quaternion we should solve an ambiguity issue firstly. Because in R3 geometry, a pair of quaternion ±q represent a same rotation. We need an assistant function to reduce redundancy.
We define a space half reduction sign function sgnh:
$$sgn_{h}(a+bi+cj+dk) = \begin{cases} 1 & \text{ if } a>0, \\ & \text{ or } a=0, b>0, \\ & \text{ or } a=b=0, c>0, \\ & \text{ or } a=b=c=0, d>0, \\ \\ 0 & \text{ if } a=b=c=d=0, \\ \\ -1 & \text{ otherwise. } \end{cases}$$
Then define the space half reduction absolute function absh:
$$abs_{h}(q) = sgn_{h}(q) \cdot q$$
In the quaternion R4 space, this function reflect (by centrosymmetric) a half space to the other side. And right on the reflection interface R3 subspace, do the same thing, and also for R2 interface, R1 interface recursively.
Then we define a shorthand representation
$$q \cong p$$
to stand for:
$$abs_{h}(q) = abs_{h}( p ),$$
which means q = p or q = -p, i.e. they represent the same R3 orientation/rotation. Obviously, this half-reduction equal also has transitivity as plain equal.
Calculus
Before calculus, here are tips for readers unfamiliar with quaternion:
- imagine units i, j, k stand for 180° rotation along 3 axes in R3 respectively;
- quaternion multiplication stands for rotations concatenation (not exchangable);
- square root of imagine unit stands for 90° rotation;
- q-1 stands for the opponent rotation of q.
Now we have these obvious facts:
$$i^{2} \cong j^{2} \cong k^{2} \cong 1$$
means 360° rotation returns to origin.
$$ i \cong i^{-1} \\ j \cong j^{-1} \\ k \cong k^{-1} $$
means ±180° rotation (along a same axis) arrives the same orientation.
$$ i^{\frac{3}{2}} \cong i^{-\frac{1}{2}} \\ j^{\frac{3}{2}} \cong j^{-\frac{1}{2}} \\ k^{\frac{3}{2}} \cong k^{-\frac{1}{2}} $$
means 270° rotation equal -90° rotation (along a same axis).
Not very obvious, but we can get rest items by computaion. The twice heterogeneous quarter rotation (can also be treated as 120° rotation along a cube diagonal):
$$ \sqrt{i}\sqrt{j} = \sqrt{j}\sqrt{k} = \sqrt{k}\sqrt{i} \\ \sqrt{i}\sqrt[-]{j} = \sqrt[-]{j}\sqrt[-]{k} = \sqrt[-]{k}\sqrt{i} \\ \sqrt[-]{i}\sqrt{j} = \sqrt{j}\sqrt[-]{k} = \sqrt[-]{k}\sqrt[-]{i} \\ \sqrt[-]{i}\sqrt[-]{j} = \sqrt[-]{j}\sqrt{k} = \sqrt[-]{i}\sqrt{k} $$
$$ \sqrt{j}\sqrt{i} = \sqrt[-]{k}\sqrt{j} = \sqrt{i}\sqrt[-]{k} \\ \sqrt[-]{j}\sqrt{i} = \sqrt{k}\sqrt[-]{j} = \sqrt{i}\sqrt{k} \\ \sqrt{j}\sqrt[-]{i} = \sqrt{k}\sqrt{j} = \sqrt[-]{i}\sqrt{k} \\ \sqrt[-]{j}\sqrt[-]{i} = \sqrt[-]{k}\sqrt[-]{j} = \sqrt[-]{i}\sqrt[-]{k} $$
Which $\sqrt[-]{x}$ stand for $x^{-\frac{1}{2}}$.
(Wait, does $\sqrt{i}$ make sense? Yes, $\sqrt{i} = \frac{\sqrt{2}}{2}(1 + i)$, try to do this math: $(\frac{\sqrt{2}}{2}(1 + i))^2$.)
These 8 lines don’t equal each other (notice that quaternion multiplication is not exchangable, so $\sqrt{i}\sqrt{j} \neq \sqrt{j}\sqrt{i}$). In fact, in additonal form, they are values of all the permutations among 0.5±0.5i±0.5j±0.5k.
Look at these equations carefully, they are highly symmetric. For i-j-k cycle, minus is even, for k-j-i cycle, minus is odds. Based on these rules, we can do most of algebra deductions to simplify a complex mutiplication expression. We can call this kind of symmetry ternary permutability. And I think ternary permutability can be treated as the core of quaternion.
And thrice quarter rotation (can also be treated as 180° rotation along a section square diagonal):
$$ \sqrt{i}j = \sqrt[-]{i}k = j\sqrt[-]{i} = k\sqrt[]{i} \\ \sqrt[-]{i}j = \sqrt[]{i}k = j\sqrt[]{i} = k\sqrt[-]{i} \\ \sqrt{j}k = \sqrt[-]{j}i = k\sqrt[-]{j} = i\sqrt[]{j} \\ \sqrt[-]{j}k = \sqrt[]{j}i = k\sqrt[]{j} = i\sqrt[-]{j} \\ \sqrt{k}i = \sqrt[-]{k}j = i\sqrt[-]{k} = j\sqrt[]{k} \\ \sqrt[-]{k}i = \sqrt[]{k}j = i\sqrt[]{k} = j\sqrt[-]{k} $$
These 6 lines, plus basic $±\sqrt{i}$, $±\sqrt{j}$, $±\sqrt{k}$, these 12 items are values of all reposition permutations of $(\frac{\sqrt{2}}{2}, ±\frac{\sqrt{2}}{2}, 0, 0)$ multipy by $(1, i, j, k)^{T}$, which $\frac{\sqrt{2}}{2}$ should be prior than $±\frac{\sqrt{2}}{2}$ to satisfy space half-reduction. Because these items’ order number is $\frac{1}{2}$ or $\frac{3}{2}$, we call them odds items, correspondingly, items with order number 0 or 1, called even items.
Now this is an example to show orthogonal rotation combination simplification, purely by symbol replacement and avoid number calculations. (Also an answer to Euler angles problem mentioned ealier.)
$$ \begin{aligned} \sqrt{i}\sqrt{j}\sqrt{k}\sqrt{i}\sqrt{j}\sqrt{k} &= \sqrt{i}(\sqrt{\textbf{j}}\sqrt{\textbf{k}})\sqrt{i}\sqrt{j}\sqrt{k} \\ & = \sqrt{i}(\sqrt{i}\sqrt{j})\sqrt{i}\sqrt{j}\sqrt{k} \\ & = \sqrt{i}\sqrt{i}(\sqrt{\textbf{j}}\sqrt{\textbf{i}})\sqrt{j}\sqrt{k} \\ & = \sqrt{i}\sqrt{i}(\sqrt{i}\sqrt[-]{k})\sqrt{j}\sqrt{k} \\ & = \sqrt{i}\sqrt{i}\sqrt{i}(\sqrt[-]{\textbf{k}}\sqrt{\textbf{j}})\sqrt{k} \\ & = \sqrt{i}\sqrt{i}\sqrt{i}(\sqrt{i}\sqrt[-]{k})\sqrt{k} \\ & = (\sqrt{i}\sqrt{i}\sqrt{i}\sqrt{i})(\sqrt[-]{k}\sqrt{k}) \\ & = i^{2} \cdot 1 \\ & = -1 \cong 1 \end{aligned} $$
Elements and group
Enumerated all possible combinations, we have all 24 individual elements of group. In additional form, they can be listed as:
$\cdot (1, i, j, k)^{T}$ | how many items | |
---|---|---|
1, 0, 0, 0 | 4 | even |
$\frac{\sqrt{2}}{2}$, $±\frac{\sqrt{2}}{2}$, 0, 0 | 12 | odds |
0.5, ±0.5, ±0.5, ±0.5 | 8 | even |
Which 0s’ position in tuples are arbitrary.
Though addtional form has advantage of unique form for every element, but long for written, and identification confusable. So I prefer to use multiplication form, and which is consistent with Euler angle, therefore geometry instinct and easy to comprehend. To reduce redundancy items in multiplication form, I picks item by alphabetical order, and in the same letter, by order of $\sqrt{i}$, $\sqrt[-]{i}$, $i$.
Then we get the 24 elements set:
$$ O_{24}: \{ 1, \sqrt{i}, \sqrt[-]{i}, \sqrt{j}, \sqrt[-]{j}, \sqrt{k}, \sqrt[-]{k}, i, j, k, \sqrt{i}\sqrt{j}, \sqrt{i}\sqrt[-]{j}, \sqrt{i}\sqrt{k}, \sqrt{i}\sqrt[-]{k}, \sqrt[-]{i}\sqrt{j}, \sqrt[-]{i}\sqrt[-]{j}, \sqrt[-]{i}\sqrt{k}, \sqrt[-]{i}\sqrt[-]{k}, \sqrt{i}j, \sqrt[-]{i}j, i\sqrt{j}, i\sqrt[-]{j}, i\sqrt{k}, i\sqrt[-]{k} \} $$
And categorization by distance from origin:
elements | how many quarters rotations | |
---|---|---|
1 | 0 | identity |
$\sqrt{i}, \sqrt[-]{i}, \sqrt{j}, \sqrt[-]{j}, \sqrt{k}, \sqrt[-]{k}$ | 1 | one quarter |
$i, j, k$ | 2 | half |
$\sqrt{i}\sqrt{j}, \sqrt{i}\sqrt[-]{j}, \sqrt[-]{i}\sqrt{j}, \sqrt[-]{i}\sqrt[-]{j}, \sqrt{i}\sqrt{k}, \sqrt{i}\sqrt[-]{k}, \sqrt[-]{i}\sqrt{k}, \sqrt[-]{i}\sqrt[-]{k}$ | 2 | two quaters |
$\sqrt{i}j, \sqrt[-]{i}j, i\sqrt{j}, i\sqrt[-]{j}, i\sqrt{k}, i\sqrt[-]{k}$ | 3 | three quarters |
The visualization:
Now only one more thing, define a half-reduction multiplication as operation:
$$ q \otimes p := abs_{h}(q \cdot p) $$
$O_{24}$ is closed for this operation, i.e. all results by half-reduction multipy between 2 arbitrary elements in $O_{24}$ are returned in 24 elements.
$1$ is the identity element, $\{ \sqrt{i}, \sqrt{j}, \sqrt{k} \}$ is the generating set, i.e. all 24 elements can be generated by multiplication among this 3 elements. Every element has a corresponding inverse element.
Then we get the cube symmetry group (or full octahedral symmetry group):
$$ O_{h}: \{ O_{24}, 1, \otimes \} $$
This is the group table:
$ \begin{matrix} \otimes & \textbf{1} & \textbf{i} & \textbf{j} & \textbf{k} & \sqrt{\textbf{i}} & \sqrt{\textbf{j}} & \sqrt{\textbf{k}} & \sqrt[-]{\textbf{i}} & \sqrt[-]{\textbf{j}} & \sqrt[-]{\textbf{k}} & \sqrt{\textbf{i}}\sqrt{\textbf{j}} & \sqrt{\textbf{i}}\sqrt[-]{\textbf{j}} & \sqrt{\textbf{i}}\sqrt{\textbf{k}} & \sqrt{\textbf{i}}\sqrt[-]{\textbf{k}} & \sqrt[-]{\textbf{i}}\sqrt{\textbf{j}} & \sqrt[-]{\textbf{i}}\sqrt[-]{\textbf{j}} & \sqrt[-]{\textbf{i}}\sqrt{\textbf{k}} & \sqrt[-]{\textbf{i}}\sqrt[-]{\textbf{k}} & \sqrt{\textbf{i}}\textbf{j} & \sqrt[-]{\textbf{i}}\textbf{j} & \textbf{i}\sqrt{\textbf{j}} & \textbf{i}\sqrt[-]{\textbf{j}} & \textbf{i}\sqrt{\textbf{k}} & \textbf{i}\sqrt[-]{\textbf{k}} \\\\ \textbf{1} & 1 & i & j & k & \sqrt{i} & \sqrt{j} & \sqrt{k} & \sqrt[-]{i} & \sqrt[-]{j} & \sqrt[-]{k} & \sqrt{i}\sqrt{j} & \sqrt{i}\sqrt[-]{j} & \sqrt{i}\sqrt{k} & \sqrt{i}\sqrt[-]{k} & \sqrt[-]{i}\sqrt{j} & \sqrt[-]{i}\sqrt[-]{j} & \sqrt[-]{i}\sqrt{k} & \sqrt[-]{i}\sqrt[-]{k} & \sqrt{i}j & \sqrt[-]{i}j & i\sqrt{j} & i\sqrt[-]{j} & i\sqrt{k} & i\sqrt[-]{k} \\\\ \textbf{i} & i & 1 & k & j & \sqrt[-]{i} & i\sqrt{j} & i\sqrt{k} & \sqrt{i} & i\sqrt[-]{j} & i\sqrt[-]{k} & \sqrt{i}\sqrt{k} & \sqrt{i}\sqrt[-]{k} & \sqrt{i}\sqrt{j} & \sqrt{i}\sqrt[-]{j} & \sqrt[-]{i}\sqrt{k} & \sqrt[-]{i}\sqrt[-]{k} & \sqrt[-]{i}\sqrt{j} & \sqrt[-]{i}\sqrt[-]{j} & \sqrt[-]{i}j & \sqrt{i}j & \sqrt{j} & \sqrt[-]{j} & \sqrt{k} & \sqrt[-]{k} \\\\ \textbf{j} & j & k & 1 & i & \sqrt[-]{i}j & \sqrt[-]{j} & i\sqrt[-]{k} & \sqrt{i}j & \sqrt{j} & i\sqrt{k} & \sqrt{i}\sqrt[-]{k} & \sqrt{i}\sqrt{k} & \sqrt{i}\sqrt[-]{j} & \sqrt{i}\sqrt{j} & \sqrt[-]{i}\sqrt[-]{j} & \sqrt[-]{i}\sqrt{j} & \sqrt[-]{i}\sqrt[-]{k} & \sqrt[-]{i}\sqrt{k} & \sqrt[-]{i} & \sqrt{i} & i\sqrt[-]{j} & i\sqrt{j} & \sqrt[-]{k} & \sqrt{k} \\\\ \textbf{k} & k & j & i & 1 & \sqrt{i}j & i\sqrt[-]{j} & \sqrt[-]{k} & \sqrt[-]{i}j & i\sqrt{j} & \sqrt{k} & \sqrt{i}\sqrt[-]{j} & \sqrt{i}\sqrt{j} & \sqrt{i}\sqrt[-]{k} & \sqrt{i}\sqrt{k} & \sqrt[-]{i}\sqrt[-]{k} & \sqrt[-]{i}\sqrt{k} & \sqrt[-]{i}\sqrt[-]{j} & \sqrt[-]{i}\sqrt{j} & \sqrt{i} & \sqrt[-]{i} & \sqrt[-]{j} & \sqrt{j} & i\sqrt[-]{k} & i\sqrt{k} \\\\ \sqrt{\textbf{i}} & \sqrt{i} & \sqrt[-]{i} & \sqrt{i}j & \sqrt[-]{i}j & i & \sqrt{i}\sqrt{j} & \sqrt[-]{i}\sqrt{j} & 1 & \sqrt{i}\sqrt[-]{j} & \sqrt[-]{i}\sqrt[-]{j} & i\sqrt{j} & i\sqrt[-]{j} & \sqrt{j} & \sqrt[-]{j} & i\sqrt{k} & i\sqrt[-]{k} & \sqrt{k} & \sqrt[-]{k} & k & j & \sqrt{i}\sqrt{k} & \sqrt{i}\sqrt[-]{k} & \sqrt[-]{i}\sqrt{k} & \sqrt[-]{i}\sqrt[-]{k} \\\\ \sqrt{\textbf{j}} & \sqrt{j} & i\sqrt[-]{j} & \sqrt[-]{j} & i\sqrt{j} & \sqrt[-]{i}\sqrt[-]{j} & j & \sqrt{i}\sqrt{j} & \sqrt[-]{i}\sqrt{k} & 1 & \sqrt{i}\sqrt{k} & i\sqrt[-]{k} & \sqrt[-]{k} & i\sqrt{k} & \sqrt{k} & \sqrt{i} & \sqrt[-]{i}j & \sqrt{i}j & \sqrt[-]{i} & \sqrt[-]{i}\sqrt[-]{k} & \sqrt[-]{i}\sqrt{j} & i & k & \sqrt{i}\sqrt[-]{j} & \sqrt{i}\sqrt[-]{k} \\\\ \sqrt{\textbf{k}} & \sqrt{k} & i\sqrt[-]{k} & i\sqrt{k} & \sqrt[-]{k} & \sqrt{i}\sqrt{j} & \sqrt[-]{i}\sqrt{k} & k & \sqrt{i}\sqrt[-]{k} & \sqrt[-]{i}\sqrt{j} & 1 & \sqrt{i}j & \sqrt{i} & \sqrt[-]{i} & \sqrt[-]{i}j & i\sqrt{j} & \sqrt{j} & i\sqrt[-]{j} & \sqrt[-]{j} & \sqrt{i}\sqrt[-]{j} & \sqrt{i}\sqrt{k} & \sqrt[-]{i}\sqrt[-]{k} & \sqrt[-]{i}\sqrt[-]{j} & i & j \\\\ \sqrt[-]{\textbf{i}} & \sqrt[-]{i} & \sqrt{i} & \sqrt[-]{i}j & \sqrt{i}j & 1 & \sqrt{i}\sqrt{k} & \sqrt[-]{i}\sqrt{k} & i & \sqrt{i}\sqrt[-]{k} & \sqrt[-]{i}\sqrt[-]{k} & \sqrt{j} & \sqrt[-]{j} & i\sqrt{j} & i\sqrt[-]{j} & \sqrt{k} & \sqrt[-]{k} & i\sqrt{k} & i\sqrt[-]{k} & j & k & \sqrt{i}\sqrt{j} & \sqrt{i}\sqrt[-]{j} & \sqrt[-]{i}\sqrt{j} & \sqrt[-]{i}\sqrt[-]{j} \\\\ \sqrt[-]{\textbf{j}} & \sqrt[-]{j} & i\sqrt{j} & \sqrt{j} & i\sqrt[-]{j} & \sqrt[-]{i}\sqrt{j} & 1 & \sqrt{i}\sqrt[-]{k} & \sqrt[-]{i}\sqrt[-]{k} & j & \sqrt{i}\sqrt[-]{j} & \sqrt{k} & i\sqrt{k} & \sqrt[-]{k} & i\sqrt[-]{k} & \sqrt[-]{i}j & \sqrt{i} & \sqrt[-]{i} & \sqrt{i}j & \sqrt[-]{i}\sqrt{k} & \sqrt[-]{i}\sqrt[-]{j} & k & i & \sqrt{i}\sqrt{k} & \sqrt{i}\sqrt{j} \\\\ \sqrt[-]{\textbf{k}} & \sqrt[-]{k} & i\sqrt{k} & i\sqrt[-]{k} & \sqrt{k} & \sqrt{i}\sqrt[-]{j} & \sqrt[-]{i}\sqrt[-]{j} & 1 & \sqrt{i}\sqrt{k} & \sqrt[-]{i}\sqrt[-]{k} & k & \sqrt{i} & \sqrt{i}j & \sqrt[-]{i}j & \sqrt[-]{i} & \sqrt[-]{j} & i\sqrt[-]{j} & \sqrt{j} & i\sqrt{j} & \sqrt{i}\sqrt{j} & \sqrt{i}\sqrt[-]{k} & \sqrt[-]{i}\sqrt{j} & \sqrt[-]{i}\sqrt{k} & j & i \\\\ \sqrt{\textbf{i}}\sqrt{\textbf{j}} & \sqrt{i}\sqrt{j} & \sqrt{i}\sqrt[-]{k} & \sqrt{i}\sqrt[-]{j} & \sqrt{i}\sqrt{k} & i\sqrt[-]{k} & \sqrt{i}j & i\sqrt{j} & \sqrt{k} & \sqrt{i} & \sqrt{j} & \sqrt[-]{i}\sqrt[-]{k} & \sqrt[-]{i}\sqrt[-]{j} & \sqrt[-]{i}\sqrt{k} & \sqrt[-]{i}\sqrt{j} & i & j & k & 1 & \sqrt[-]{k} & i\sqrt{k} & \sqrt[-]{i} & \sqrt[-]{i}j & i\sqrt[-]{j} & \sqrt[-]{j} \\\\ \sqrt{\textbf{i}}\sqrt[-]{\textbf{j}} & \sqrt{i}\sqrt[-]{j} & \sqrt{i}\sqrt{k} & \sqrt{i}\sqrt{j} & \sqrt{i}\sqrt[-]{k} & i\sqrt{k} & \sqrt{i} & \sqrt[-]{j} & \sqrt[-]{k} & \sqrt{i}j & i\sqrt[-]{j} & \sqrt[-]{i}\sqrt{j} & \sqrt[-]{i}\sqrt{k} & \sqrt[-]{i}\sqrt[-]{j} & \sqrt[-]{i}\sqrt[-]{k} & j & i & 1 & k & \sqrt{k} & i\sqrt[-]{k} & \sqrt[-]{i}j & \sqrt[-]{i} & \sqrt{j} & i\sqrt{j} \\\\ \sqrt{\textbf{i}}\sqrt{\textbf{k}} & \sqrt{i}\sqrt{k} & \sqrt{i}\sqrt[-]{j} & \sqrt{i}\sqrt[-]{k} & \sqrt{i}\sqrt{j} & \sqrt[-]{k} & \sqrt[-]{i}j & \sqrt{j} & i\sqrt{k} & \sqrt[-]{i} & i\sqrt{j} & \sqrt[-]{i}\sqrt[-]{j} & \sqrt[-]{i}\sqrt[-]{k} & \sqrt[-]{i}\sqrt{j} & \sqrt[-]{i}\sqrt{k} & 1 & k & j & i & i\sqrt[-]{k} & \sqrt{k} & \sqrt{i} & \sqrt{i}j & \sqrt[-]{j} & i\sqrt[-]{j} \\\\ \sqrt{\textbf{i}}\sqrt[-]{\textbf{k}} & \sqrt{i}\sqrt[-]{k} & \sqrt{i}\sqrt{j} & \sqrt{i}\sqrt{k} & \sqrt{i}\sqrt[-]{j} & \sqrt{k} & \sqrt[-]{i} & i\sqrt[-]{j} & i\sqrt[-]{k} & \sqrt[-]{i}j & \sqrt[-]{j} & \sqrt[-]{i}\sqrt{k} & \sqrt[-]{i}\sqrt{j} & \sqrt[-]{i}\sqrt[-]{k} & \sqrt[-]{i}\sqrt[-]{j} & k & 1 & i & j & i\sqrt{k} & \sqrt[-]{k} & \sqrt{i}j & \sqrt{i} & i\sqrt{j} & \sqrt{j} \\\\ \sqrt[-]{\textbf{i}}\sqrt{\textbf{j}} & \sqrt[-]{i}\sqrt{j} & \sqrt[-]{i}\sqrt[-]{k} & \sqrt[-]{i}\sqrt{k} & \sqrt[-]{i}\sqrt[-]{j} & i\sqrt{j} & \sqrt{k} & \sqrt[-]{i}j & \sqrt[-]{j} & i\sqrt{k} & \sqrt{i} & k & i & 1 & j & \sqrt{i}\sqrt{k} & \sqrt{i}\sqrt{j} & \sqrt{i}\sqrt[-]{k} & \sqrt{i}\sqrt[-]{j} & i\sqrt[-]{j} & \sqrt{j} & \sqrt[-]{k} & i\sqrt[-]{k} & \sqrt[-]{i} & \sqrt{i}j \\\\ \sqrt[-]{\textbf{i}}\sqrt[-]{\textbf{j}} & \sqrt[-]{i}\sqrt[-]{j} & \sqrt[-]{i}\sqrt{k} & \sqrt[-]{i}\sqrt[-]{k} & \sqrt[-]{i}\sqrt{j} & i\sqrt[-]{j} & i\sqrt[-]{k} & \sqrt{i} & \sqrt{j} & \sqrt[-]{k} & \sqrt[-]{i}j & i & k & j & 1 & \sqrt{i}\sqrt[-]{j} & \sqrt{i}\sqrt[-]{k} & \sqrt{i}\sqrt{j} & \sqrt{i}\sqrt{k} & i\sqrt{j} & \sqrt[-]{j} & i\sqrt{k} & \sqrt{k} & \sqrt{i}j & \sqrt[-]{i} \\\\ \sqrt[-]{\textbf{i}}\sqrt{\textbf{k}} & \sqrt[-]{i}\sqrt{k} & \sqrt[-]{i}\sqrt[-]{j} & \sqrt[-]{i}\sqrt{j} & \sqrt[-]{i}\sqrt[-]{k} & \sqrt{j} & i\sqrt{k} & \sqrt{i}j & i\sqrt[-]{j} & \sqrt{k} & \sqrt[-]{i} & j & 1 & i & k & \sqrt{i}\sqrt{j} & \sqrt{i}\sqrt{k} & \sqrt{i}\sqrt[-]{j} & \sqrt{i}\sqrt[-]{k} & \sqrt[-]{j} & i\sqrt{j} & i\sqrt[-]{k} & \sqrt[-]{k} & \sqrt{i} & \sqrt[-]{i}j \\\\ \sqrt[-]{\textbf{i}}\sqrt[-]{\textbf{k}} & \sqrt[-]{i}\sqrt[-]{k} & \sqrt[-]{i}\sqrt{j} & \sqrt[-]{i}\sqrt[-]{j} & \sqrt[-]{i}\sqrt{k} & \sqrt[-]{j} & \sqrt[-]{k} & \sqrt[-]{i} & i\sqrt{j} & i\sqrt[-]{k} & \sqrt{i}j & 1 & j & k & i & \sqrt{i}\sqrt[-]{k} & \sqrt{i}\sqrt[-]{j} & \sqrt{i}\sqrt{k} & \sqrt{i}\sqrt{j} & \sqrt{j} & i\sqrt[-]{j} & \sqrt{k} & i\sqrt{k} & \sqrt[-]{i}j & \sqrt{i} \\\\ \sqrt{\textbf{i}}\textbf{j} & \sqrt{i}j & \sqrt[-]{i}j & \sqrt{i} & \sqrt[-]{i} & j & \sqrt{i}\sqrt[-]{j} & \sqrt[-]{i}\sqrt[-]{k} & k & \sqrt{i}\sqrt{j} & \sqrt[-]{i}\sqrt{k} & \sqrt[-]{j} & \sqrt{j} & i\sqrt[-]{j} & i\sqrt{j} & i\sqrt[-]{k} & i\sqrt{k} & \sqrt[-]{k} & \sqrt{k} & 1 & i & \sqrt{i}\sqrt[-]{k} & \sqrt{i}\sqrt{k} & \sqrt[-]{i}\sqrt[-]{j} & \sqrt[-]{i}\sqrt{j} \\\\ \sqrt[-]{\textbf{i}}\textbf{j} & \sqrt[-]{i}j & \sqrt{i}j & \sqrt[-]{i} & \sqrt{i} & k & \sqrt{i}\sqrt[-]{k} & \sqrt[-]{i}\sqrt[-]{j} & j & \sqrt{i}\sqrt{k} & \sqrt[-]{i}\sqrt{j} & i\sqrt[-]{j} & i\sqrt{j} & \sqrt[-]{j} & \sqrt{j} & \sqrt[-]{k} & \sqrt{k} & i\sqrt[-]{k} & i\sqrt{k} & i & 1 & \sqrt{i}\sqrt[-]{j} & \sqrt{i}\sqrt{j} & \sqrt[-]{i}\sqrt[-]{k} & \sqrt[-]{i}\sqrt{k} \\\\ \textbf{i}\sqrt{\textbf{j}} & i\sqrt{j} & \sqrt[-]{j} & i\sqrt[-]{j} & \sqrt{j} & \sqrt[-]{i}\sqrt[-]{k} & k & \sqrt{i}\sqrt{k} & \sqrt[-]{i}\sqrt{j} & i & \sqrt{i}\sqrt{j} & \sqrt[-]{k} & i\sqrt[-]{k} & \sqrt{k} & i\sqrt{k} & \sqrt[-]{i} & \sqrt{i}j & \sqrt[-]{i}j & \sqrt{i} & \sqrt[-]{i}\sqrt[-]{j} & \sqrt[-]{i}\sqrt{k} & 1 & j & \sqrt{i}\sqrt[-]{k} & \sqrt{i}\sqrt[-]{j} \\\\ \textbf{i}\sqrt[-]{\textbf{j}} & i\sqrt[-]{j} & \sqrt{j} & i\sqrt{j} & \sqrt[-]{j} & \sqrt[-]{i}\sqrt{k} & i & \sqrt{i}\sqrt[-]{j} & \sqrt[-]{i}\sqrt[-]{j} & k & \sqrt{i}\sqrt[-]{k} & i\sqrt{k} & \sqrt{k} & i\sqrt[-]{k} & \sqrt[-]{k} & \sqrt{i}j & \sqrt[-]{i} & \sqrt{i} & \sqrt[-]{i}j & \sqrt[-]{i}\sqrt{j} & \sqrt[-]{i}\sqrt[-]{k} & j & 1 & \sqrt{i}\sqrt{j} & \sqrt{i}\sqrt{k} \\\\ \textbf{i}\sqrt{\textbf{k}} & i\sqrt{k} & \sqrt[-]{k} & \sqrt{k} & i\sqrt[-]{k} & \sqrt{i}\sqrt{k} & \sqrt[-]{i}\sqrt{j} & j & \sqrt{i}\sqrt[-]{j} & \sqrt[-]{i}\sqrt{k} & i & \sqrt[-]{i}j & \sqrt[-]{i} & \sqrt{i} & \sqrt{i}j & \sqrt{j} & i\sqrt{j} & \sqrt[-]{j} & i\sqrt[-]{j} & \sqrt{i}\sqrt[-]{k} & \sqrt{i}\sqrt{j} & \sqrt[-]{i}\sqrt[-]{j} & \sqrt[-]{i}\sqrt[-]{k} & 1 & k \\\\ \textbf{i}\sqrt[-]{\textbf{k}} & i\sqrt[-]{k} & \sqrt{k} & \sqrt[-]{k} & i\sqrt{k} & \sqrt{i}\sqrt[-]{k} & \sqrt[-]{i}\sqrt[-]{k} & i & \sqrt{i}\sqrt{j} & \sqrt[-]{i}\sqrt[-]{j} & j & \sqrt[-]{i} & \sqrt[-]{i}j & \sqrt{i}j & \sqrt{i} & i\sqrt[-]{j} & \sqrt[-]{j} & i\sqrt{j} & \sqrt{j} & \sqrt{i}\sqrt{k} & \sqrt{i}\sqrt[-]{j} & \sqrt[-]{i}\sqrt{k} & \sqrt[-]{i}\sqrt{j} & k & 1 \end{matrix} $
You may notice that top-left 4×4 area in the table is a subgroup by only half rotation elements.
3D Cayley graph for the group:
I have to confess this graph’s architecture configuration is far from perfection, any good idea about $O_{h}$ visualization please tell me.
Next step
Soon later, I will talk about some thinking about Rubik’s Cube representation in computer and some ideas maybe helpful for solver algorithm2.