abstract base class for base transposition More...
#include <base_transpose.h>
Public Member Functions | |
BaseTranspose () | |
constructor | |
virtual | ~BaseTranspose () |
virtual destructor | |
void | transpose (BSGS< PERM, TRANS > &bsgs, uint i) const |
performs a base transposition on bsgs between bsgs.B[i] and bsgs.B[i+1] | |
BaseTranspose () | |
constructor | |
virtual | ~BaseTranspose () |
virtual destructor | |
void | transpose (BSGS< PERM, TRANS > &bsgs, uint i) const |
performs a base transposition on bsgs between bsgs.B[i] and bsgs.B[i+1] | |
Public Attributes | |
uint | m_statScheierGeneratorsConsidered |
number of Schreier generators that have been considered during the last transpose call | |
uint | m_statNewGenerators |
number of new strong generators that have been added during the last transpose call | |
Protected Member Functions | |
virtual Generator< PERM > * | setupGenerator (BSGS< PERM, TRANS > &bsgs, uint i, const PERMlist &S_i, const TRANS &U_i) const =0 |
initializes the specific Schreier Generator that is used for the BaseTranpose implementation | |
virtual Generator< PERM > * | setupGenerator (BSGS< PERM, TRANS > &bsgs, uint i, const PERMlist &S_i, const TRANS &U_i) const =0 |
initializes the specific Schreier Generator that is used for the BaseTranpose implementation |
abstract base class for base transposition
A base transposition is a base change where two adjacent base points are exchanged.
virtual Generator<PERM>* permlib::BaseTranspose< PERM, TRANS >::setupGenerator | ( | BSGS< PERM, TRANS > & | bsgs, | |
uint | i, | |||
const PERMlist & | S_i, | |||
const TRANS & | U_i | |||
) | const [protected, pure virtual] |
initializes the specific Schreier Generator that is used for the BaseTranpose implementation
bsgs | the BSGS that the generator is contructed for | |
i | setup Schreier Generator for the i-th base element | |
S_i | group generators for Schreier generator | |
U_i | transversal for Schreier generator |
Implemented in permlib::DeterministicBaseTranspose< PERM, TRANS >, permlib::RandomBaseTranspose< PERM, TRANS >, permlib::DeterministicBaseTranspose< PERM, TRANS >, and permlib::RandomBaseTranspose< PERM, TRANS >.
virtual Generator<PERM>* permlib::BaseTranspose< PERM, TRANS >::setupGenerator | ( | BSGS< PERM, TRANS > & | bsgs, | |
uint | i, | |||
const PERMlist & | S_i, | |||
const TRANS & | U_i | |||
) | const [protected, pure virtual] |
initializes the specific Schreier Generator that is used for the BaseTranpose implementation
bsgs | the BSGS that the generator is contructed for | |
i | setup Schreier Generator for the i-th base element | |
S_i | group generators for Schreier generator | |
U_i | transversal for Schreier generator |
Implemented in permlib::DeterministicBaseTranspose< PERM, TRANS >, permlib::RandomBaseTranspose< PERM, TRANS >, permlib::DeterministicBaseTranspose< PERM, TRANS >, and permlib::RandomBaseTranspose< PERM, TRANS >.
void permlib::BaseTranspose< PERM, TRANS >::transpose | ( | BSGS< PERM, TRANS > & | bsgs, | |
uint | i | |||
) | const |
performs a base transposition on bsgs between bsgs.B[i] and bsgs.B[i+1]
bsgs | the BSGS that the transposition is performed on | |
i | exchanges i-th and (i+1)-st base point |
void permlib::BaseTranspose< PERM, TRANS >::transpose | ( | BSGS< PERM, TRANS > & | bsgs, | |
uint | i | |||
) | const [inline] |
performs a base transposition on bsgs between bsgs.B[i] and bsgs.B[i+1]
bsgs | the BSGS that the transposition is performed on | |
i | exchanges i-th and (i+1)-st base point |