"Source: Text/Group/GrpMatQZ.text";
"Line: 525";
"Date: Thu Sep 25 14:47:45 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Group/GrpMatQZ.text, line: 525
// Example: H69E4 ()
print "Example: H69E4";
ei := GetEchoInput();
SetEchoInput(true);
A := GL(4, Integers ())! 
 [ 1, 0, 0, -3, 1, 1, -4, -3,
   0, 0, -1, 0, 5, 5, -21, -14 ];
B := GL(4, Integers ())! 
[-104, -21, -8, -3, 7729, 1552, 253, 218, 
  0, 0, -1, 0, -51848, -10407, -1532, -1460 ];
flag, C := AreGLConjugate (A, B);
flag;
assert C^-1 * A * C eq B;
C := GLCentraliser (A);
assert forall{c * A eq A * c: c in Generators (C)};

// another example with rational entries 
Q := Rationals ();
A := GL(3,Q)!
[ -5/3, -13/3, 25/3, 
  -7/3, 19/3, -16/3, 
  -5/3, 5/3, -2/3 ];
B := GL(3, Q) ! 
[ -19/3, -21, -119/3, 
   -1, 1, -2, 
   5/3, 5, 28/3 ];
f, C := AreGLConjugate (A, B);
C; 
C := GL(3, Q) ! C;
assert A^C eq B;
C := GLCentraliser (A);
C := sub<GL(3, Q) | Generators (C)>;
assert forall{c * A eq A * c: c in Generators (C)};
SetEchoInput(ei);
