#include <subquotient.h>
Collaboration diagram for atlas::subquotient::Subquotient< dim >:

Public Member Functions | |
| Subquotient () | |
| Subquotient (size_t n) | |
| Subquotient (const bitvector::BitVectorList< dim > &bsp, const bitvector::BitVectorList< dim > &bsub, size_t n) | |
| constructs the subquotient where |bsp| generates the space, |bsub| the subspace. | |
| ~Subquotient () | |
| size_t | dimension () const |
| Dimension of the subquotient. | |
| size_t | rank () const |
| Dimension of the ambient vector space in which the larger and smaller subspaces live. | |
| const Subspace< dim > & | space () const |
| const Subspace< dim > & | subspace () const |
| const bitset::BitSet< dim > & | support () const |
| unsigned long | size () const |
| Cardinality of the subquotient: 2^dimension. | |
| void | representative (bitvector::BitVector< dim > &r, const bitvector::BitVector< dim > &w) const |
| Puts in |r| the canonical representative of |w| modulo |d_subspace|. | |
| void | mod_reduce (bitvector::BitVector< dim > &w) const |
| bitvector::BitVector< dim > | mod_image (const bitvector::BitVector< dim > &w) const |
| bitset::BitSet< dim > | significantBits () const |
| bitvector::BitVector< dim > | toBasis (const bitvector::BitVector< dim > &v) const |
| Expresses |v| in the subquotient basis. | |
| bitvector::BitVector< dim > | fromBasis (bitvector::BitVector< dim > v) const |
| Interprets |v| in the subspace basis and returns external form. | |
| void | apply (const bitvector::BitMatrix< dim > &) |
| void | swap (Subquotient &) |
Private Attributes | |
| Subspace< dim > | d_space |
| Subspace< dim > | d_subspace |
| bitset::BitSet< dim > | d_rel_support |
| Flags the row-reduced basis vectors for the (larger) |d_space| that span the canonical complement to the (smaller) |d_subspace|. | |
Elements of the vector space are BitVector's of capacity dim; the first d_rank coordinates are significant. (The number d_rank is owned by d_space and by d_subspace, not directly by Subquotient. The number is accessible by the public member function rank().) The larger subspace is specified by the Subspace d_space. The smaller subspace is specified by the Subspace d_subspace.
A consequence of (d_subspace contained in d_space) is that the collection of leading bits for d_subspace is a subset of the collection of leading bits for d_space. The difference of these two sets is flagged by the BitSet d_support. The number of set bets in d_support is therefore the dimension of the subquotient.
Definition at line 190 of file subquotient.h.
|
|||||||||
|
Definition at line 232 of file subquotient.h. |
|
||||||||||
|
Definition at line 234 of file subquotient.h. |
|
||||||||||||||||||||
|
constructs the subquotient where |bsp| generates the space, |bsub| the subspace. Constructs a subquotient of $(Z/2Z)^n$, formed by the space generated by |bsp| modulo the space generated by |bsub| Definition at line 134 of file subquotient_def.h. References atlas::subquotient::Subquotient< dim >::d_rel_support, atlas::subquotient::Subquotient< dim >::d_space, atlas::subquotient::Subquotient< dim >::d_subspace, and atlas::bitset::BitSet< n >::slice(). |
|
|||||||||
|
Definition at line 244 of file subquotient.h. |
|
||||||||||
|
Synopsis: applies |r| to the data. Definition at line 158 of file subquotient_def.h. References atlas::subquotient::Subquotient< dim >::d_rel_support, atlas::subquotient::Subquotient< dim >::d_space, atlas::subquotient::Subquotient< dim >::d_subspace, and atlas::bitset::BitSet< n >::slice(). |
|
|||||||||
|
Dimension of the subquotient.
Definition at line 253 of file subquotient.h. Referenced by atlas::cartanclass::Fiber::adjointFiberRank(), atlas::cartanclass::Fiber::fiberRank(), atlas::cartanclass::Fiber::makeFiberMap(), atlas::cartanclass::Fiber::makeRealFormPartition(), atlas::tori::RealTorus::RealTorus(), and atlas::subquotient::subquotientMap(). |
|
||||||||||
|
Interprets |v| in the subspace basis and returns external form.
Definition at line 343 of file subquotient.h. Referenced by atlas::kgb::KGBHelp::backtrack_seed(), and atlas::kgb::KGBHelp::naive_seed(). |
|
||||||||||
|
Definition at line 304 of file subquotient.h. |
|
||||||||||
|
Definition at line 300 of file subquotient.h. |
|
|||||||||
|
Dimension of the ambient vector space in which the larger and smaller subspaces live.
Definition at line 261 of file subquotient.h. Referenced by atlas::tori::dualPi0(), atlas::cartanclass::Fiber::makeAdjointFiberGroup(), and atlas::subquotient::subquotientMap(). |
|
||||||||||||||||
|
Puts in |r| the canonical representative of |w| modulo |d_subspace|. Express the image of w in the subquotient using the image of the standard basis of the larger space. Then r is the corresponding combination of those standard basis vectors. It is assumed that w belongs to the larger space. Definition at line 294 of file subquotient.h. |
|
|||||||||
|
Definition at line 308 of file subquotient.h. |
|
|||||||||
|
Cardinality of the subquotient: 2^dimension.
Definition at line 282 of file subquotient.h. Referenced by atlas::cartanclass::Fiber::adjointFiberSize(), and atlas::cartanclass::Fiber::fiberSize(). |
|
|||||||||
|
Definition at line 265 of file subquotient.h. Referenced by atlas::cartanclass::Fiber::gradingGroup(), atlas::cartanclass::Fiber::makeFiberMap(), atlas::tori::RealTorus::RealTorus(), and atlas::subquotient::subquotientMap(). |
|
|||||||||
|
Definition at line 269 of file subquotient.h. |
|
|||||||||
|
Definition at line 275 of file subquotient.h. Referenced by atlas::cartanclass::Fiber::makeFiberMap(), and atlas::subquotient::subquotientMap(). |
|
||||||||||
|
Definition at line 175 of file subquotient_def.h. References atlas::subquotient::Subquotient< dim >::d_rel_support, atlas::subquotient::Subquotient< dim >::d_space, atlas::subquotient::Subquotient< dim >::d_subspace, and atlas::bitset::BitSet< n >::swap(). Referenced by atlas::tori::dualPi0(), and atlas::cartanclass::Fiber::swap(). |
|
||||||||||
|
Expresses |v| in the subquotient basis. It is assumed that |v| belongs to |d_space|. We know that the subset of basis vectors of |d_space| selected by |d_rel_support| is independent modulo |d_subspace|, so if |v| is any linear combination of them, it suffices to extract and pack those coefficients. We can reduce to that situation by reducing |v| modulo |d_subspace|, which is what the call to |mod_image| below does; this will clear the bits for the support of |d_subspace|, while not taking us out of |d_space|. Definition at line 325 of file subquotient.h. Referenced by atlas::cartanclass::Fiber::adjointMAlphas(), atlas::cartanclass::Fiber::makeFiberMap(), atlas::cartanclass::Fiber::mAlpha(), atlas::cartanclass::Fiber::mAlphas(), and atlas::subquotient::subquotientMap(). |
|
|||||
|
Flags the row-reduced basis vectors for the (larger) |d_space| that span the canonical complement to the (smaller) |d_subspace|. The bits are set at the positions indexing the basis vectors whose leading bits do _not_ appear as leading bits of row-reduced basis vectors for the smaller space. The flagged set of basis vectors for |d_space| constitute a basis for a cross section of the subquotient in the larger space. In particular, the number of set bits is equal to the dimension of the subquotient. Note that what is flagged is are numbers of basis vectors of the larger space, _not_ the positions of their leading bits in $(Z/2Z)^n$. Consequently the effective number of bits is |d_space.dimension()| rather than |rank()|, although this number is not recorded in the value |d_rel_support| itself. Example: d_space=(1010,0110,0001) d_space.support={0,1,3} d_subspace=(0111) d_subspace.support={1} d_rel_support={0,2} (corresponding to the basis vectors 1010 and 0001 for d_space spanning the canonical complement to d_subspace). Definition at line 227 of file subquotient.h. Referenced by atlas::subquotient::Subquotient< dim >::apply(), atlas::subquotient::Subquotient< dim >::Subquotient(), and atlas::subquotient::Subquotient< dim >::swap(). |
|
|||||
|
Larger space, expressed as a Subspace. Definition at line 197 of file subquotient.h. Referenced by atlas::subquotient::Subquotient< dim >::apply(), atlas::subquotient::Subquotient< dim >::Subquotient(), and atlas::subquotient::Subquotient< dim >::swap(). |
|
|||||
|
Smaller space, expressed as a Subspace. Definition at line 202 of file subquotient.h. Referenced by atlas::subquotient::Subquotient< dim >::apply(), atlas::subquotient::Subquotient< dim >::Subquotient(), and atlas::subquotient::Subquotient< dim >::swap(). |
1.3.9.1