Charles V. Schaefer, Jr. School of Engineering and Science
 
 
ACC Top Page » Algebra and Cryptology Center » Software

Software

The CRAG Software Library FAQ

// Copyright (C) 2006 Alexander Ushakov
// Contents: Example for SubgroupFG::normalizer( )
//
// Principal Authors: Alexander Ushakov
//
// Revision History:
//

#include 
#include "SubgroupFG.h"


int main( )
{
  // Create a subgroup of a free group (it will be normal)
  vector< Word > gens;

  Word x(1);
  Word y(2);
  gens.push_back( x^2 );
  gens.push_back( y^2 );
  gens.push_back( -x*-y*x*y );
  gens.push_back( x^2^y );
  gens.push_back( y^2^x );
  SubgroupFG Sbgp( 2 , gens );
  

 
// How do I compute a normalizer of a subgroup of a free group?
  SubgroupFG N = Sbgp.normalizer( );
  
  
  // Output generators of the centralizer
  vector< Word > gs = N.getGenerators( );
  cout << "Generators of the normalizer:" << endl;
  for( vector< Word >::const_iterator g_it = gs.begin( ) ; g_it!=gs.end( ) ; ++g_it )
    cout << *g_it << endl;
  
  return 0;
}