Realization of the Modulor group $M_{16}$ of order $16$. Consider the Modulor group $M_{16}$ of order $16$ given by the presentation
$$
M_{16}=\langle a,b:a^8=b^2=1,ba=ab^5\rangle
$$
Is there a known realization of $M_{16}$ by matrices?
 A: There is a theorem saying that a $p$-group has a faithful irreducible complex character if and only if the center is cyclic. The modular group has a cyclic center and all irreducible character has degree 1 or 2. Hence, you can represent this group by complex $2\times 2$-matrices.
To be more precise: Let $\zeta\in\mathbb{C}$ be a primitive $8$-th root of unity, $a=\mathrm{diag}(\zeta,\zeta^5)$ and $b=\bigl(\begin{smallmatrix}0&1\\1&0\end{smallmatrix}\bigr)$.
A: One automatic way to get a faithful matrix representation of a group is to construct the regular representation, where we assign a basis vector $v_g$ to each group element $g$, and construct the linear transformation $T_h$ of $h$ by left-multiplication by $h$, i.e.
$$
T_hv_g = v_{hg}\,.
$$
Then, one can see that
$$
T_{h_1}T_{h_2}v_g = T_{h_1}v_{h_2g} = v_{h_1h_2g} = T_{h_1h_2}v_{g}\,.
$$
Ordering the group elements $\{g_1=e, g_2, g_3, \dots, g_{16}\}$, we can construct the Cayley table, and from each column $c_j$ of the table, we can construct a corresponding permutation matrix as
$$
P_{i,c_i} = 1\,,
$$
with all other matrix elements equal to zero.

Here's an implementation in Mathematica.  Using the permutation representation from the list of groups of order 16, which is
$$
M_{16} = \langle (1, 2, 3, 4, 5, 6, 7, 8), (1, 5)(3,7)\rangle\,,
$$
we can construct the group in Mathematica as
group = PermutationGroup[{Cycles[{Range[8]}], Cycles[{{1, 5}, {3, 7}}]}];

The group multiplication table is given by
GroupMultiplicationTable[group] // TableForm


and so we can construct the set of permutation matrices via
matrixRep = IdentityMatrix[16][[#]] & /@ Transpose@GroupMultiplicationTable[group];

This set of matrices matches the group multiplication.  For example, multiplying the 2nd and third elements and finding the position of the result in the original list yields
PermutationProduct[elements[[2]], elements[[3]]];
First@Position[elements, %]
(* Cycles[{{1, 2, 7, 8, 5, 6, 3, 4}}] *)
(* {4} )*

whereas multiplying the corresponding matrices yields
matrixRep[[2]].matrixRep[[3]];
First@Position[matrixRep, %]
(* {4} *)


If you want a list of all of the matrices, I can include them elsewhere.

Finally, I do not know the minimum dimension required to get a faithful matrix representation of this group.
