atlas
0.6
|
Represents a torus defined over R. More...
#include <tori.h>
Public Member Functions | |
RealTorus (const WeightInvolution &) | |
RealTorus (const RealTorus &, tags::DualTag) | |
const WeightInvolution & | involution () const |
size_t | rank () const |
size_t | complexRank () const |
size_t | compactRank () const |
size_t | splitRank () const |
size_t | plusRank () const |
size_t | minusRank () const |
size_t | twoRank () const |
bool | isCompact () const |
bool | isSplit () const |
BinaryMap | componentMap (const LatticeMatrix &, const RealTorus &) const |
const WeightList & | plusLattice () const |
const WeightList & | minusLattice () const |
void | toPlus (Weight &dest, const Weight &source) const |
void | toMinus (Weight &dest, const Weight &source) const |
const SmallSubquotient & | topology () const |
Private Attributes | |
size_t | d_rank |
size_t | d_complexRank |
WeightInvolution | d_involution |
WeightList | d_plus |
WeightList | d_minus |
LatticeMatrix | d_toPlus |
LatticeMatrix | d_toMinus |
SmallSubquotient | d_topology |
Represents a torus defined over R.
This is equivalent to the datum of a lattice with an involution; to be consistent with the rest of the program, we use the Cartan involution tau which is the negative of the Galois involution on the character lattice.
The fundamental data are the rank d_rank (allowing us to identify the character lattice X with d_rank-tuples of integers) and the integer matrix d_involution of tau.
The software constructs two sublattices X_+ and X_-, the +1 and -1 eigenspaces for the involution. The datum d_plus is a basis of X_+, and d_minus is a basis of X_-. Both X_+ and X_- are supplementable in X, but in general X is not equal to the direct sum X_+ + X_-.
The most delicate invariant we shall have to deal with is the component group of the group of real points of T. This is an elementary abelian 2-group; we shall rather consider its dual dpi0(T). To describe its rank is fairly easy. Indeed, T may be decomposed as a product of compact, split and complex factors; denote r_u, r_s and r_c the number of factors of each type, so that the rank n of T is r_u + r_s + 2 r_c, then the rank of the component group is r_s. We have moreover : rk(X_+) = r_u + r_c; rk(X_-) = r_s + r_c. Denote V = X/2X, a vector space over the two-element field F_2, and denote V_+,V_- the images of X_+, X_- in V. Then it is not hard to show that r_c = dim(V_+ cap V_-), which allows computing r_s once rk(X_-) is known. One may prove that V_+- := V_+ cap V_- is also the image of tau - 1 in V.
It is a little bit harder to describe dpi0(T) functorially as a vector space. The group T(2)(R) of real points of the group of elements of order 2 in T is in natural duality with V/V_+-. There is a natural surjection from T(2)(R) to pi0(T), so dpi0(T) is a sub-vector space of V/V_+-, which may in fact be described as the image of V_-. This is how we will consider it.
|
explicit |
atlas::tori::RealTorus::RealTorus | ( | const RealTorus & | T, |
tags::DualTag | |||
) |
|
inline |
|
inline |
BinaryMap atlas::tori::RealTorus::componentMap | ( | const LatticeMatrix & | m, |
const RealTorus & | T_dest | ||
) | const |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
private |
number of C^x-factors
|
private |
matrix of the Cartan involution
|
private |
basis for -1 eigenlattice of the Cartan involution
|
private |
basis for +1 eigenlattice of the Cartan involution
|
private |
rank of torus
|
private |
coordinate transformation from standard basis of $X$ to basis |d_minus| of $X_-$; should be applied only to elements of $X_-$
|
private |
coordinate transformation from standard basis of $X$ to basis |d_plus| of $X_+$; should be applied only to elements of $X_+$
|
private |
dual component group of real torus (a vector space over $Z/2Z$), realised as the subquotient $(V_+ + V_-)/V_+$ of the $Z/2Z$ vector space $X/2X$