permlib 0.2.9
Library for permutation computations
Loading...
Searching...
No Matches
permlib::BaseTranspose< PERM, TRANS > Class Template Referenceabstract

abstract base class for base transposition More...

#include <base_transpose.h>

Inheritance diagram for permlib::BaseTranspose< PERM, TRANS >:
permlib::DeterministicBaseTranspose< PERM, TRANS > permlib::RandomBaseTranspose< PERM, TRANS >

Public Member Functions

 BaseTranspose ()
 constructor
virtual ~BaseTranspose ()
 virtual destructor
void transpose (BSGS< PERM, TRANS > &bsgs, unsigned int i) const
 performs a base transposition on bsgs between bsgs.B[i] and bsgs.B[i+1]

Public Attributes

unsigned int m_statScheierGeneratorsConsidered
 number of Schreier generators that have been considered during the last transpose call
unsigned int m_statNewGenerators
 number of new strong generators that have been added during the last transpose call

Protected Types

typedef std::list< typename PERM::ptr > PERMlist

Protected Member Functions

virtual Generator< PERM > * setupGenerator (BSGS< PERM, TRANS > &bsgs, unsigned int i, const PERMlist &S_i, const TRANS &U_i) const =0
 initializes the specific Schreier Generator that is used for the BaseTranpose implementation

Detailed Description

template<class PERM, class TRANS>
class permlib::BaseTranspose< PERM, TRANS >

abstract base class for base transposition

A base transposition is a base change where two adjacent base points are exchanged.

Member Function Documentation

◆ setupGenerator()

template<class PERM, class TRANS>
virtual Generator< PERM > * permlib::BaseTranspose< PERM, TRANS >::setupGenerator ( BSGS< PERM, TRANS > & bsgs,
unsigned int i,
const PERMlist & S_i,
const TRANS & U_i ) const
protectedpure virtual

initializes the specific Schreier Generator that is used for the BaseTranpose implementation

Parameters
bsgsthe BSGS that the generator is contructed for
isetup Schreier Generator for the i-th base element
S_igroup generators for Schreier generator
U_itransversal for Schreier generator

Implemented in permlib::DeterministicBaseTranspose< PERM, TRANS >, and permlib::RandomBaseTranspose< PERM, TRANS >.

◆ transpose()

template<class PERM, class TRANS>
void permlib::BaseTranspose< PERM, TRANS >::transpose ( BSGS< PERM, TRANS > & bsgs,
unsigned int i ) const

performs a base transposition on bsgs between bsgs.B[i] and bsgs.B[i+1]

Parameters
bsgsthe BSGS that the transposition is performed on
iexchanges i-th and (i+1)-st base point

The documentation for this class was generated from the following file: