"Source: Text/Group/GrpMatGen.text";
"Line: 2962";
"Date: Thu Sep 25 14:47:45 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Group/GrpMatGen.text, line: 2962
// Example: H66E16 ()
print "Example: H66E16";
ei := GetEchoInput();
SetEchoInput(true);
iseq := function(d,q)
  G := Sp(d,q);
  cc := ConjugacyClasses(G);
  reps := [{ One(G) }];
  labels := [{@ IsometryGroupClassLabel("Sp",One(G)) @}];
  R := {c[3] : c in cc | c[1] eq 2};
  T := &join[ Class(G,x) : x in R ];
  L := {@ IsometryGroupClassLabel("Sp",t) : t in R @};
  k := 1;
  total := 1 + #R;
  print "Layer", k, ":", #R;;
  repeat
    Append(~reps, R);
    Append(~labels, L);
    if total eq #cc then break; end if;
    R := { };
    L := {@  @};
    k +:= 1;
    for g in reps[k] do
      for t in T do
        h := g*t;
        mu := IsometryGroupClassLabel("Sp",h);
        if mu notin labels[k-1] and mu notin labels[k] and mu notin L then
          Include(~R,h);
          Include(~L, mu);
          if total + #R eq #cc then break g; end if;
        end if;
      end for;
    end for;
    total +:= #R;
    print "Layer", k, ":", #R;;
  until IsEmpty(R);
  return reps;
end function;
reps := iseq(4,3);
SetEchoInput(ei);
