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

Public Member Functions | |
| Subspace () | |
| Subspace (size_t n) | |
| Subspace (const bitvector::BitVectorList< dim > &, size_t) | |
| Constructs the normal subspace generated by the collection of |BitVectors| |b|, each of which has rank |n|. | |
| ~Subspace () | |
| const bitvector::BitVector< dim > & | basis (size_t j) const |
| const bitvector::BitVectorList< dim > & | basis () const |
| size_t | dimension () const |
| const size_t | rank () const |
| const bitset::BitSet< dim > & | support () const |
| bitvector::BitVector< dim > | toBasis (bitvector::BitVector< dim > v) const |
| Expresses |v| in the subspace basis. | |
| bitvector::BitVector< dim > | fromBasis (bitvector::BitVector< dim > v) const |
| Interprets |v| in the subspace basis and returns external form. | |
| bool | contains (const bitvector::BitVector< dim > &v) const |
| bool | contains (const bitvector::BitVectorList< dim > &m) const |
| void | representative (bitvector::BitVector< dim > &, const bitvector::BitVector< dim > &) const |
| Put in |r| the canonical representative of |v| modulo our subspace. | |
| void | mod_reduce (bitvector::BitVector< dim > &w) const |
| bitvector::BitVector< dim > | mod_image (const bitvector::BitVector< dim > &w) const |
| void | apply (const bitvector::BitMatrix< dim > &) |
| void | swap (Subspace &) |
Private Attributes | |
| size_t | d_rank |
| Dimension of the ambient vector space. | |
| bitvector::BitVectorList< dim > | d_basis |
| Basis of our |Subspace| in reduced form. | |
| bitset::BitSet< dim > | d_support |
| |BitSet| flagging the positions of the leading nonzero bits in the basis of our |Subspace|. | |
Elements of the vector space are |BitVector|s of capacity |dim| and actual size |d_rank|. The subspace is recorded by its (unique) ordered canonical basis |d_basis|. This means its vectors are reduced (in the sense of row-reduced matrices); that is (in the binary case) in the position of the leading (nonzero) bit of each vector, the other vectors heve a bit $0$, and the vectors are ordered by increasing position of their leading bit.
The locations of the leading bits are flagged by the |BitSet| |d_support| (of capacity |d_rank|); the number of set bits in |d_support| is equal to the dimension |d_basis.size()| of the |Subspace|.
Definition at line 58 of file subquotient.h.
|
|||||||||
|
Definition at line 82 of file subquotient.h. |
|
||||||||||
|
Definition at line 84 of file subquotient.h. |
|
||||||||||||||||
|
Constructs the normal subspace generated by the collection of |BitVectors| |b|, each of which has rank |n|.
Definition at line 35 of file subquotient_def.h. References atlas::subquotient::Subspace< dim >::d_basis, atlas::subquotient::Subspace< dim >::d_support, and atlas::dynkin::normalize(). |
|
|||||||||
|
Definition at line 88 of file subquotient.h. |
|
||||||||||
|
Synopsis: applies |r| to our subspace, normalizing the resulting subspace. Precondition: r is a matrix of the appropriate size (it could go to a space of another dimension, even.) Definition at line 91 of file subquotient_def.h. References atlas::bitvector::BitMatrix< dim >::apply(), atlas::bitvector::BitMatrix< dim >::numColumns(), atlas::bitvector::BitMatrix< dim >::numRows(), and atlas::subquotient::Subspace< dim >::swap(). |
|
|||||||||
|
Definition at line 98 of file subquotient.h. |
|
||||||||||
|
Definition at line 93 of file subquotient.h. |
|
||||||||||
|
Definition at line 143 of file subquotient.h. |
|
||||||||||
|
Definition at line 140 of file subquotient.h. References atlas::bitvector::BitVector< dim >::isZero(). |
|
|||||||||
|
||||||||||
|
Interprets |v| in the subspace basis and returns external form.
Definition at line 129 of file subquotient.h. References atlas::bitvector::combination(), atlas::bitvector::BitVector< dim >::data(), atlas::lietype::rank(), and atlas::bitvector::BitVector< dim >::size(). Referenced by atlas::subquotient::Subquotient< constants::RANK_MAX >::fromBasis(). |
|
||||||||||
|
Definition at line 159 of file subquotient.h. Referenced by atlas::subquotient::Subquotient< constants::RANK_MAX >::mod_image(). |
|
||||||||||
|
Definition at line 156 of file subquotient.h. Referenced by atlas::subquotient::Subquotient< constants::RANK_MAX >::mod_reduce(). |
|
|||||||||
|
Definition at line 106 of file subquotient.h. Referenced by atlas::subquotient::Subquotient< constants::RANK_MAX >::rank(). |
|
||||||||||||||||
|
Put in |r| the canonical representative of |v| modulo our subspace. This |r| is characterized by the vanishing of its bits in positions |d_support| (the leading bits of the canonical basis of our subspace). Note that we are making no reference to the space from which our subspace is divided out; this could be the whole space $(Z/2Z)^n$ (in any case |r| is expressed in its canonical basis) or some subspace containing our subspace. The algorithm projects v onto pv in the subspace expressed in the canonical basis of the subspace. The coordinates of pv are the entries of v in the coordinates flagged by d_support. Then w is the BitVector in (Z/2Z)^n given by combining the canonical basis with coefficients pv. Finally r is equal to v-w. Definition at line 66 of file subquotient_def.h. References atlas::bitvector::combination(), and atlas::lietype::rank(). Referenced by atlas::subquotient::Subquotient< constants::RANK_MAX >::representative(). |
|
|||||||||
|
Definition at line 110 of file subquotient.h. Referenced by atlas::subquotient::Subquotient< constants::RANK_MAX >::significantBits(). |
|
||||||||||
|
Definition at line 115 of file subquotient_def.h. References atlas::subquotient::Subspace< dim >::d_basis, atlas::subquotient::Subspace< dim >::d_rank, atlas::subquotient::Subspace< dim >::d_support, atlas::bitset::BitSet< n >::swap(), and atlas::bitvector::BitMatrix< dim >::swap(). Referenced by atlas::subquotient::Subspace< dim >::apply(). |
|
||||||||||
|
Expresses |v| in the subspace basis.
Definition at line 117 of file subquotient.h. References atlas::bitvector::BitVector< dim >::size(), and atlas::bitvector::BitVector< dim >::slice(). Referenced by atlas::subquotient::Subquotient< constants::RANK_MAX >::toBasis(). |
|
|||||
|
Basis of our |Subspace| in reduced form.
Definition at line 70 of file subquotient.h. Referenced by atlas::subquotient::Subspace< dim >::Subspace(), and atlas::subquotient::Subspace< dim >::swap(). |
|
|||||
|
Dimension of the ambient vector space.
Definition at line 65 of file subquotient.h. Referenced by atlas::subquotient::Subspace< dim >::swap(). |
|
|||||
|
|BitSet| flagging the positions of the leading nonzero bits in the basis of our |Subspace|.
Definition at line 75 of file subquotient.h. Referenced by atlas::subquotient::Subspace< dim >::Subspace(), and atlas::subquotient::Subspace< dim >::swap(). |
1.3.9.1