Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

/home/r0/dav/atlas.dir/atlas3/sources/gkmod/involutions.h

Go to the documentation of this file.
00001 /*!
00002 \file
00003 \brief Class definitions and function declarations for the class InvolutionSet.
00004 */
00005 /*
00006   This is involutions.h
00007 
00008   Copyright (C) 2004,2005 Fokko du Cloux
00009   part of the Atlas of Reductive Lie Groups
00010 
00011   See file main.cpp for full copyright notice
00012 */
00013 
00014 #ifndef INVOLUTIONS_H  /* guard against multiple inclusions */
00015 #define INVOLUTIONS_H
00016 
00017 #include "involutions_fwd.h"
00018 
00019 #include "complexredgp_fwd.h"
00020 #include "weyl.h"
00021 
00022 namespace atlas {
00023 
00024 /******** constant declarations *********************************************/
00025 
00026 namespace involutions {
00027 
00028   const size_t UndefInvolution = ~0ul;
00029 
00030 }
00031 
00032 /******** function declarations *********************************************/
00033 
00034 /******** type definitions **************************************************/
00035 
00036 namespace involutions {
00037 
00038 class InvolutionSet {
00039 
00040  protected:
00041 
00042   size_t d_size;
00043   size_t d_rank;
00044   std::vector<std::vector<size_t> > d_action;
00045   std::vector<size_t> d_cartan;
00046   std::vector<weyl::TwistedInvolution> d_involution;
00047   std::vector<weyl::TwistedInvolution> d_dualInvolution;
00048 
00049  public:
00050   // constructors and destructors
00051   InvolutionSet();
00052 
00053   explicit InvolutionSet(complexredgp::ComplexReductiveGroup&);
00054 
00055   virtual ~InvolutionSet() {}
00056 
00057   // copy, assignment and swap
00058   void swap(InvolutionSet&);
00059 
00060   // accessors
00061   size_t action(size_t s, size_t w) const {
00062     return d_action[s][w];
00063   }
00064 
00065   const weyl::TwistedInvolution& dualInvolution(size_t j) const {
00066     return d_dualInvolution[j];
00067   }
00068 
00069   const weyl::TwistedInvolution& involution(size_t j) const {
00070     return d_involution[j];
00071   }
00072 
00073   size_t involutionNbr(const weyl::TwistedInvolution&, const weyl::WeylGroup&)
00074     const;
00075 
00076   const size_t rank() const {
00077     return d_rank;
00078   }
00079 
00080   const size_t size() const {
00081     return d_size;
00082   }
00083 
00084   // manipulators
00085 };
00086 
00087 }
00088 
00089 }
00090 
00091 #endif

Generated on Wed Mar 26 16:49:33 2008 for atlas by  doxygen 1.3.9.1