Public Types | |
typedef std::set< SignedSet > ::iterator | vector_iterator |
typedef std::set< SignedSet > ::reverse_iterator | reverse_vector_iterator |
Public Member Functions | |
Vectors (const Circuits &) | |
Vectors (const Vectors &) | |
size_t | getRank () const |
size_t | getNumElements () const |
size_t | getNumVectors () const |
void | relabel (index_t, index_t) |
void | relabel (const Permutation &) |
void | reorient (size_t) |
void | reorient (const Combination &) |
bool | operator== (const Vectors &C) const |
vector_iterator | vector_begin () |
vector_iterator | vector_end () |
reverse_vector_iterator | vector_rbegin () |
reverse_vector_iterator | vector_rend () |
Protected Member Functions | |
void | generate_vectors () |
Protected Attributes | |
Circuits | m_circuits |
std::set< SignedSet > | m_Vector |
omc::Vectors::Vectors | ( | const Circuits & | C | ) | [inline] |
Constructor.
omc::Vectors::Vectors | ( | const Vectors & | V | ) | [inline] |
Copy constructor.
void omc::Vectors::generate_vectors | ( | ) | [protected] |
Generate the vectors from the circuits by repeated composition: --------------------------------------------------------------------- 1. V = C, where V and C denotes the positive sets of vectors and circuits respectively. 2. For all c C, v v, add v*c and |v*(-c)| to V, where * denotes composition and |s| the positive representative of c. 3. If the size of V does not increase, return. Otherwise go to 2. ---------------------------------------------------------------------- Note that since only the positive half of the vectors are stored, we do not consider: 1) The compositions of a negative v with a negative c, which are always negative; 2) The compositions of a negative v with a positive c, which are the negations of the compositions of a positive v with a negative c.
size_t omc::Vectors::getNumElements | ( | ) | const [inline] |
Get the number of elements in the ground set of the OM.
size_t omc::Vectors::getNumVectors | ( | ) | const [inline] |
Get the number of vectors.
size_t omc::Vectors::getRank | ( | ) | const [inline] |
Get the rank of the OM.
bool omc::Vectors::operator== | ( | const Vectors & | V | ) | const [inline] |
Operator ==.
void omc::Vectors::relabel | ( | const Permutation & | perm | ) | [inline] |
Relabel using a given permutation.
void omc::Vectors::relabel | ( | index_t | i, | |
index_t | j | |||
) | [inline] |
Relabel a pair of elements.
void omc::Vectors::reorient | ( | const Combination & | comb | ) | [inline] |
Reorient a set of elements specified by a Combination object.
void omc::Vectors::reorient | ( | size_t | i | ) | [inline] |
Reorient a single element.
Vectors::vector_iterator omc::Vectors::vector_begin | ( | ) | [inline] |
Get the first position of vector iterator.
Vectors::vector_iterator omc::Vectors::vector_end | ( | ) | [inline] |
Get the end position of vector iterator.
Vectors::reverse_vector_iterator omc::Vectors::vector_rbegin | ( | ) | [inline] |
Get the first position of reverse vector iterator.
Vectors::reverse_vector_iterator omc::Vectors::vector_rend | ( | ) | [inline] |
Get the end position of reverse vector iterator.