IsCharacter( obj )
returns true if obj is a character, and false otherwise.
For a class function obj that does not know whether it is a
character, the scalar products with all irreducible characters of the
source of obj are computed. If they are all integral and nonegative then
obj is turned into a character record.
gap> psi:= ClassFunction( S4, S4.charTable.centralizers );
ClassFunction( S4, [ 24, 8, 3, 4, 4 ] )
gap> IsCharacter( psi ); psi;
true
Character( S4, [ 24, 8, 3, 4, 4 ] )
gap> cf:= ClassFunction( S4, irr[3] - irr[1] );
ClassFunction( S4, [ 1, 1, -2, -1, -1 ] )
gap> IsCharacter( cf ); cf;
false
VirtualCharacter( S4, [ 1, 1, -2, -1, -1 ] )
GAP 3.4.4