45 (
const RootDatum& rd,
const TorusElement& t,
RankFlags imag);
49 (
const TitsCoset& Tc,
const TitsElt& a,
RankFlags imag);
104 (
const RootDatum& dual_rd,
114 {
return w == a.
w and t == a.
t; }
117 {
return w != a.
w or t != a.
t; }
120 {
return w!=a.w ? w<a.w : t<a.t ; }
165 size_t rank()
const {
return prd.rank(); }
171 TorusPart
m_alpha(
size_t j)
const {
return alpha_v[j]; }
177 using TwistedWeylGroup::twisted;
178 using TwistedWeylGroup::dual_twisted;
179 using TwistedWeylGroup::twist;
181 TorusElement twisted(
const TorusElement& x)
const;
182 TorusElement dual_twisted(
const TorusElement& x)
const;
187 {
return square_class_gen; }
193 { t.simple_reflect(prd,s); }
201 const SubSystem&
sub)
const;
210 {
return t.negative_at(prd.simple_coroots()[s]); }
216 { leftMult(a.
w,s);
return a; }
229 bool compact(
const RootSystem& rs,
246 { cross_act(s,a);
return a; }
248 { cross_act(w,a);
return a; }
250 { cross_act(a,w);
return a; }
351 : d_t(t),d_w(WeylElt())
367 const WeylElt&
w()
const {
return d_w; }
379 {
return d_w == a.
d_w and d_t == a.
d_t; }
382 {
return d_w != a.
d_w or d_t != a.
d_t; }
386 return d_t != a.d_t ? d_t < a.d_t : d_w < a.d_w;
399 TorusPart
t()
const {
return d_t; }
491 : TwistedWeylGroup(W,Tg.twist())
493 , d_simpleRoot(Tg.d_simpleRoot)
494 , d_simpleCoroot(Tg.d_simpleCoroot)
495 , d_involution(Tg.d_involution)
496 , dual_involution(Tg.dual_involution)
504 const size_t rank()
const {
return d_rank; }
506 {
return TwistedWeylGroup::rank(); }
509 TorusPart
m_alpha(
size_t j)
const {
return d_simpleCoroot[j]; }
525 {
if (d_simpleRoot[s].dot(x))
526 x += d_simpleCoroot[s];
530 TorusPart push_across(TorusPart x,
const WeylElt&
w)
const;
531 TorusPart pull_across(
const WeylElt& w, TorusPart y)
const;
533 using TwistedWeylGroup::twisted;
534 using TwistedWeylGroup::twist;
537 TorusPart
twisted(
const TorusPart x)
const {
return d_involution*x; }
538 TorusPart
dual_twisted(
const TorusPart x)
const {
return dual_involution*x; }
544 void twist(TorusPart x)
const { x=twisted(x); }
547 BinaryMap involutionMatrix(
const WeylWord&
tw)
const;
554 {
return weylGroup().length(a.
w()); }
559 {
return push_across(a.
d_t,a.
d_w); }
574 { a.
d_t += pull_across(a.
d_w,t); }
581 sigma_mult(s,a); mult_sigma_inv(a,s);
586 sigma_inv_mult(s,a); mult_sigma(a,s);
603 { sigma_mult(s,a); mult_sigma_inv(a,twisted(s)); }
607 { sigma_inv_mult(s,a); mult_sigma(a,twisted(s)); }
616 : d_t(Tits.rank()), d_w(WeylElt())
620 :
d_t(Tits.rank()),
d_w(w)
637 return (
ti().hashCode(modulus)+
t().data().to_ulong()) & (modulus-1);
678 const RootSystem&
rs;
693 const WeylGroup&
weylGroup()
const {
return Tg.weylGroup(); }
695 bool hasTwistedCommutation
697 {
return Tg.hasTwistedCommutation(s,tw); }
701 bool is_valid(
TitsElt a)
const;
704 inline bool simple_grading(
const TitsElt& a,
size_t s)
const;
707 bool simple_imaginary_grading(TorusPart x,
RootNbr alpha)
const;
713 inline void basedTwistedConjugate(
TitsElt& a,
size_t s)
const;
717 void strict_based_twisted_conjugate(
TitsElt& a,
size_t s)
const;
719 void basedTwistedConjugate(
TitsElt& a,
const WeylWord& w)
const;
720 void basedTwistedConjugate(
const WeylWord& w,
TitsElt& a)
const;
728 void inverse_Cayley_transform(
TitsElt& a,
size_t s,
754 TitsElt backtrack_seed (
const InnerClass& G,
819 if (grading_offset[s])
TitsElt & reduce(const SmallSubspace &V)
Definition: tits.h:393
const TwistedInvolution & tw() const
Definition: tits.h:98
WeylElt TwistedInvolution
Definition: Atlas.h:231
const WeylGroup & weylGroup() const
Definition: tits.h:693
unsigned short square_class
Definition: Atlas.h:312
TorusPart twisted(const TorusPart &t) const
Definition: tits.h:734
Grading base_grading() const
Definition: tits.h:699
bool compact(weyl::Generator s, const TorusElement &t) const
Definition: tits.h:209
GlobalTitsElement twisted(const GlobalTitsElement &a) const
Definition: tits.h:202
BitVector< constants::RANK_MAX > SmallBitVector
Definition: Atlas.h:181
TorusPart t() const
Definition: tits.h:399
TitsGroup(const TitsGroup &Tg, const WeylGroup &W)
Definition: tits.h:490
void add(TorusPart tp, GlobalTitsElement &a) const
Definition: tits.h:252
size_t rank() const
Definition: tits.h:165
TorusElement t
Definition: tits.h:71
subquotient::Subspace< constants::RANK_MAX > SmallSubspace
Definition: Atlas.h:191
GlobalTitsElement simple_imaginary_cross(const RootDatum &dual_rd, RootNbr alpha) const
Definition: tits.cpp:73
void add(const RatWeight &rw, GlobalTitsElement &a) const
Definition: tits.h:259
bool operator!=(const GlobalTitsElement &a) const
Definition: tits.h:116
void inverseTwistedConjugate(TitsElt &a, weyl::Generator s) const
Definition: tits.h:606
BitSet< constants::RANK_MAX > RankFlags
Definition: Atlas.h:60
TE_Entry(const TitsElt &t)
Definition: tits.h:631
#define shift()
Definition: cweave.c:116
const TitsGroup & Tg
Definition: tits.h:662
TorusPart right_torus_part(const TitsElt &a) const
Definition: tits.h:558
const size_t rank() const
Definition: tits.h:504
void twist(TorusPart x) const
Definition: tits.h:544
const TitsGroup & titsGroup() const
Definition: tits.h:692
size_t d_rank
Definition: tits.h:445
WeightInvolution delta_tr
Definition: tits.h:148
unsigned long length(const TitsElt &a) const
Definition: tits.h:553
const WeylElt & w() const
Definition: tits.h:367
const size_t semisimple_rank() const
Definition: tits.h:505
size_t hashCode(size_t modulus) const
Definition: tits.h:635
bool is_compact(const TorusPart &x, RootNbr n) const
Definition: tits.h:751
void Cayley_transform(TitsElt &a, size_t s) const
Definition: tits.h:723
size_t semisimple_rank() const
Definition: tits.h:164
GlobalTitsElement(const TorusElement &te)
Definition: tits.h:82
void reflect(TorusPart &x, weyl::Generator s) const
Definition: tits.h:524
const PreRootDatum prd
Definition: tits.h:147
TorusElement torus_element_offset() const
Definition: tits.h:167
std::vector< TorusPart > d_simpleCoroot
Definition: tits.h:456
bool simple_grading(const TitsElt &a, size_t s) const
Definition: tits.h:791
GlobalTitsElement dual_twisted(const GlobalTitsElement &a) const
Definition: tits.h:204
TitsElt(const TitsGroup &, TorusPart t, const WeylElt &w)
Definition: tits.h:356
void sigma_mult(weyl::Generator s, TitsElt &a) const
Left multiplication of |a| by the canonical generator $$.
Definition: tits.cpp:489
TitsElt(const TitsGroup &Tits)
Definition: tits.h:615
const TorusElement & torus_part() const
Definition: tits.h:96
bool operator==(const GlobalTitsElement &a) const
Definition: tits.h:113
const std::vector< Grading > & square_class_generators() const
Definition: tits.h:186
friend class GlobalTitsGroup
Definition: tits.h:68
weyl::TI_Entry d_w
Definition: tits.h:335
void left_add(TorusPart t, TitsElt &a) const
Definition: tits.h:575
cartanclass::fiber_orbit f_orbit() const
Definition: tits.h:747
void twistedConjugate(TitsElt &a, weyl::Generator s) const
Definition: tits.h:602
const RatWeight half_rho_v
Definition: tits.h:150
TorusPart left_torus_part(const TitsElt &a) const
Definition: tits.h:556
~TitsCoset()
Definition: tits.h:688
BitVector< dim > mod_image(const BitVector< dim > &w) const
Definition: subquotient.h:117
GlobalTitsElement cross(GlobalTitsElement a, const WeylWord &w) const
Definition: tits.h:249
void sigma_inv_conjugate(TitsElt &a, weyl::Generator s) const
Definition: tits.h:584
Class definitions and function declarations for WeylGroup.
GlobalTitsElement Cayley(weyl::Generator s, GlobalTitsElement a) const
Definition: tits.h:215
bool compact(weyl::Generator s, const GlobalTitsElement &a) const
Definition: tits.h:211
GlobalTitsElement(size_t rank)
Definition: tits.h:77
std::vector< Grading > square_class_gen
Definition: tits.h:153
GlobalTitsElement(const WeylElt &we, size_t rank)
Definition: tits.h:80
TitsGroup * my_Tits_group
Definition: tits.h:661
void sigma_conjugate(TitsElt &a, weyl::Generator s) const
Definition: tits.h:579
void mult(TitsElt &a, const TitsElt &b) const
Definition: tits.h:571
TwistedInvolution tw() const
Definition: tits.h:374
SmallSubspace fiber_denom(const WeightInvolution &theta)
Definition: tits.cpp:854
TwistedInvolution w
Definition: tits.h:72
const cartanclass::StrongRealFormRep srf
Definition: tits.h:742
TorusPart twisted(const TorusPart x) const
Definition: tits.h:537
cartanclass::square_class square() const
Definition: tits.h:748
struct subscription_node * sub
Definition: parse_types.h:102
std::vector< TorusPart > alpha_v
Definition: tits.h:149
A mapping between one interpretation of Generators and another.
Definition: weyl.h:53
std::vector< TE_Entry > Pooltype
Definition: tits.h:634
unsigned short RealFormNbr
Definition: Atlas.h:302
void basedTwistedConjugate(TitsElt &a, size_t s) const
Definition: tits.h:816
TorusElement & torus_part()
Definition: tits.h:109
TorusPart m_alpha(size_t j) const
Definition: tits.h:171
int_Matrix WeightInvolution
Definition: Atlas.h:159
bool operator<(const GlobalTitsElement &a) const
Definition: tits.h:119
GlobalTitsElement(const TorusElement &te, const WeylElt &we)
Definition: tits.h:84
TorusPart dual_m_alpha(size_t j) const
Definition: tits.h:512
Grading grading_offset
Definition: tits.h:676
unsigned long n
Definition: axis.cpp:77
TorusPart dual_twisted(const TorusPart x) const
Definition: tits.h:538
std::vector< TorusPart > d_simpleRoot
Definition: tits.h:453
TorusPart m_alpha(size_t j) const
Definition: tits.h:509
TorusPart d_t
Definition: tits.h:325
TitsElt(const TitsGroup &, TorusPart t)
Definition: tits.h:350
GlobalTitsElement cross(const WeylWord &w, GlobalTitsElement a) const
Definition: tits.h:247
void complex_cross_act(weyl::Generator s, TorusElement &t) const
Definition: tits.h:192
BitMatrix< constants::RANK_MAX > BinaryMap
Definition: Atlas.h:185
unsigned short RootNbr
Definition: Atlas.h:216
TorusPart pull_across(const WeylElt &w, TorusPart y) const
Definition: tits.cpp:451
BinaryMap dual_involution
Definition: tits.h:468
SmallBitVector TorusPart
Definition: Atlas.h:256
unsigned short fiber_orbit
Definition: Atlas.h:310
const weyl::TI_Entry & ti() const
Definition: tits.h:402
unsigned char Generator
Definition: Atlas.h:226
GlobalTitsElement cross(weyl::Generator s, GlobalTitsElement a) const
Definition: tits.h:245
std::bitset< 32 > RankFlags
Definition: KLread.cpp:39
void add(const RatWeight &rw, TorusElement &t) const
Definition: tits.h:256
BinaryMap d_involution
Definition: tits.h:465
RankFlags Grading
Definition: Atlas.h:289
const RootSystem & rs
Definition: tits.h:678
TorusElement exp_2pi(const RatWeight &r)
Definition: y_values.h:108
std::pair< fiber_orbit, square_class > StrongRealFormRep
Definition: Atlas.h:313
void right_add(TitsElt &a, TorusPart t) const
Definition: tits.h:573
Grading grading
Definition: output.cpp:73
Grading compact_simples(const RootDatum &rd, const TorusElement &t, RankFlags imag)
Definition: tits.cpp:861