fprintf(file,"A := [];\nB := ["                                        );
void GAP_auts ( file, central, stabiliser, pga, pcp )    FILE_TYPE           file;    int             *** central;    int             *** stabiliser;    struct pga_vars   * pga;    struct pcp_vars   * pcp;{#include "define_y.h"   int                 i, j, k, ngens,  first;   /* if this is the first call something is wrong  '                     */   if ( countcall == 0 )   {      fprintf( stderr, "internal error in 'GAP_auts'" );      exit( FAILURE );   }   /* write function call to <countcall>.th position of <ANUPQgroups>     */   fprintf( file, "## automorphisms number: %d\n", countcall             );   fprintf( file, "ANUPQautos[%d] := function( G )\n", countcall         );   fprintf( file, "local   A,  B;\n"                                     );   /*   fprintf (file, "G.nrCentralAutomorphisms := %d;\n", pga->nmr_centrals );   */   /* write information about automorphisms to file                       */   ngens= y[pcp->clend + 1];   fprintf(file,"SetIsPcgsAutomorphisms(G,%s);\n",pga->soluble?"true":"false");   fprintf(file,"SetIsCapable(G,%s);\n", pga->capable ? "true" : "false"  );   fprintf(file,"A := [];\nB := ["                                        );   /* first write the Frattini generators                                 */   for ( k = 1;  k <= ngens; k++ )   {      if ( k != 1 )	 fprintf( file, "," );      fprintf( file, "G.%d", k );   }   fprintf( file, "];\n" );   /* write out all central automorphisms                                 */   for ( i = 1;  i <= pga->nmr_centrals;  ++i )   {      fprintf( file, "Add( A, [" );      for ( j = 1;  j <= pga->ndgen;  ++j )      {	 if ( j != 1 )            fprintf( file, "," );	 first = 1;	 for ( k = 1;  k <= pcp->lastg;  ++k )	 {	    if ( 0 != central[i][j][k] )	    {	       if ( !first )		  fprintf( file, "*" );	       first = 0;	       if ( 1 != central[i][j][k] )		  fprintf( file, "G.%d^%d", k, central[i][j][k] );	       else		  fprintf( file, "G.%d", k );	    }	 }	 if ( first )	 {	    fprintf( stderr, "internal error in 'GAP_auts'\n" );	    exit( FAILURE );	 }      }      fprintf( file, "] );\n" );   }   /* write out all other automorphisms                                   */   for ( i = 1;  i <= pga->nmr_stabilisers;  ++i )   {      fprintf( file, "Add( A, [" );      for ( j = 1;  j <= pga->ndgen;  ++j )      {	 if ( j != 1 )            fprintf( file, "," );	 first = 1;	 for ( k = 1;  k <= pcp->lastg;  ++k )	 {	    if ( 0 != stabiliser[i][j][k] )	    {	       if ( !first )		  fprintf( file, "*" );	       first = 0;	       if ( 1 != stabiliser[i][j][k] )		  fprintf( file, "G.%d^%d", k, stabiliser[i][j][k] );	       else		  fprintf( file, "G.%d", k );	    }	 }	 if ( first )	 {	    fprintf( stderr, "internal error in 'GAP_auts'\n" );	    exit( FAILURE );	 }      }      fprintf( file, "] );\n" );   }   fprintf( file, "ANUPQSetAutomorphismGroup( G, B, A, %s );\n",                                          pga->soluble?"true":"false");    fprintf( file, "end;\n\n\n" );}