Orientation group is used to represent orientation of cubies, and cube as a whole.
- class Monoid a => Group a where
- inv :: a -> a
- data Orient = Orient [Vec]
- cons :: Char -> Orient
- to :: Orient -> Matrix
- eid :: Orient -> Char
- getVec :: Orient -> [Vec]
- vecToSide :: Vec -> Side
- sideToVec :: Side -> Vec
- rawToOrientNumber :: Numb -> Numb
- orientNumberToRaw :: Numb -> Numb
- rawOrientNum :: Orient -> Numb
- spanDomain :: (Enum a, Num a, Ord b) => (Orient -> b) -> [(a, b)]
- vecToColor :: Vec -> Color
- colorToVec :: Color -> Vec
- orientChrDomain :: [Char]
Logical extension of Monoid to a group.
Representation of Cubie orientation.
Maps an element of the orientation group to a matrix. Orient tranformation matrix is determined by specifing, (1,0,0) goes to v1 and (0,1,0) goes to v2.
Raw number is an intermediate step in associating two vectors to an orientation. The orientation number 1 corresponds to an orientation of ''a'' and so on.
Maps a function of orientation over orient domain.
Gives the color of the side identified by the vector, in a solved state.