######################################################### 1) First load the file "CoxGrpGens.g" into GAP using the Read function. This file will give you a set of simple reflections (as permutations) for each of the irreducible Coxeter groups. E.g. "CoxGrpGensB(5)" will give you a set of simple reflections for the Coxeter group of type B_5. The commands are explained within the file. Using the GAP function "GroupByGenerators()" you will obtain the corresponding Coxeter group. The permutation degrees used here are proven to be minimal in (Table 1): N. Saunders, Minimal faithful permutation degrees for irreducible Coxeter groups and binary polyhedral groups, J. Group Theory 17 (2014), 805 -- 832. Furthermore "CoxGrpGens.g" contains the function "Reflections()" which takes a Coxeter group W as an input. E.g. W:=GroupByGenerators(CoxGrpGensB(5)); Reflections(W); will give you the set of reflections for the Coxeter group of type B_5. 2) The file "qcclasses.txt" contains the number of conjugacy classes of quasi-Coxeter elements for each irreducible type. Furthermore it contains representatives for the types H_3 and H_4 (in terms of the permutation presentation offered in 1)). 3) Load the file "QuasiCoxeterClasses.g" into GAP. This file provides the function "QuasiCoxeterClasses()", which makes it possible to compute representatives for the conjugacy classes of the quasi-Coxeter elements in the crystallographic types. Details are explained within the file. 4) Load the file "Hurwitz.g". The file provides the function "HurwitzOrbit()" which expects as an input a list of reflections in a Coxeter group. E.g. if you want to calculate the Hurwitz orbit for a quasi-Coxeter element, you can use the function "QuasiCoxeterClasses()" described in 3) or the lists of representatives for H_3 and H_4 in "qcclasses.txt" to obtain a list w which corresponds to a reduced reflection decomposition of a quasi-Coxeter element; HurwitOrbit(w) will give you the orbit for the decomposition w.