# I need to make and manipulate a group ( the quaternion)

I am trying to define a group and use it to defined its classes, its character table, and irreducible representations. I am having trouble finding code to define a group and use it.

The FiniteGroupData paclet provides information about the "Quaternion" group:

Elements of the group:

In[1]:= FiniteGroupData["Quaternion", "ElementNames"]
Out[1]= {"1", "i", "j", "k", "-1", "-i", "-j", "-k"}


Group them in classes (numbers are positions in that list):

In[2]:= FiniteGroupData["Quaternion", "ConjugacyClasses"]
Out[2]= {{1}, {5}, {2, 6}, {3, 7}, {4, 8}}


The character table:

In[3]:= FiniteGroupData["Quaternion", "CharacterTable"]
Out[3]= {{1, 1, 1, 1, 1}, {1, 1, 1, -1, -1}, {1, 1, -1, 1, -1}, {1, 1, -1, -1, 1}, {2, -2, 0, 0, 0}}


A permutation group representation:

In[4]:= FiniteGroupData["Quaternion", "PermutationGroupRepresentation"]
Out[4]= PermutationGroup[{Cycles[{{1, 2, 5, 6}, {3, 4, 7, 8}}], Cycles[{{1, 3, 5, 7}, {2, 8, 6, 4}}]}]


You can now use that representation to perform some computations:

In[5]:= GroupOrder[%]
Out[5]= 8

In[6]:= GroupElements[%%]
Out[6]= {Cycles[{}], Cycles[{{1, 2, 5, 6}, {3, 4, 7, 8}}], Cycles[{{1, 3, 5, 7}, {2, 8, 6, 4}}],  Cycles[{{1, 4, 5, 8}, {2, 3, 6, 7}}], Cycles[{{1, 5}, {2, 6}, {3, 7}, {4, 8}}],  Cycles[{{1, 6, 5, 2}, {3, 8, 7, 4}}], Cycles[{{1, 7, 5, 3}, {2, 4, 6, 8}}],  Cycles[{{1, 8, 5, 4}, {2, 7, 6, 3}}]}


The Quaternions Package has a bit of code to define some basic algebra such as addition and multiplication, as well as conversion to/from quaternions. It use the head Quaternion and defines operations between items with that head. Not quite the same thing, but there's a Wolfram Demonstration of quaternion arithmetic.