Documentation of MARTY
A Modern ARtificial Theoretical phYsicist
Data Structures | Namespaces | Enumerations | Functions
semiSimpleAlgebra.h File Reference

Semi simple Lie algebras: calculations of highest weight representations, products and sums of representations. More...

#include <vector>
#include <algorithm>
#include <iostream>
#include <initializer_list>
#include <string>
#include <csl.h>
#include "algebraState.h"

Go to the source code of this file.

Data Structures

struct  mty::IndexData
 
class  mty::SemiSimpleAlgebra
 Abstract base class for all semi-simple Lie algebras. More...
 
class  mty::algebra::R
 Algebra (R, +) of the U(1) group. More...
 
class  mty::algebra::A
 Semi-simple Lie algebra A(l) == su(l+1). More...
 
class  mty::algebra::B
 Semi-simple Lie algebra B(l) == so(2l+1). More...
 
class  mty::algebra::C
 Semi-simple Lie algebra C(l) == sp(2l). More...
 
class  mty::algebra::D
 Semi-simple Lie algebra D(l) == so(2l). More...
 
class  mty::algebra::E6
 Exceptional semi-simple Lie algebra E6. More...
 
class  mty::algebra::E7
 Exceptional semi-simple Lie algebra E7. More...
 
class  mty::algebra::E8
 Exceptional semi-simple Lie algebra E8. More...
 
class  mty::algebra::F4
 Exceptional semi-simple Lie algebra F4. More...
 
class  mty::algebra::G2
 Exceptional semi-simple Lie algebra G2. More...
 

Namespaces

 mty
 Namespace of MARTY.
 
 mty::algebra
 Enumeration of types of semi simple Lie algebras. The names being very small, we use a namespace to avoid conflicts.
 

Enumerations

enum  mty::algebra::Type {
  mty::algebra::Type::R,
  mty::algebra::Type::A,
  mty::algebra::Type::B,
  mty::algebra::Type::C,
  mty::algebra::Type::D,
  mty::algebra::Type::E6,
  mty::algebra::Type::E7,
  mty::algebra::Type::E8,
  mty::algebra::Type::F4,
  mty::algebra::Type::G2
}
 Different types of semi-simple Lie algebras. More...
 

Functions

std::ostream & mty::algebra::operator<< (std::ostream &fout, mty::algebra::Type obj)
 Overload of operator<< for algebra::Type. Allows to display a string corresponding to the type of algebra instead of an integer. More...
 
int mty::getCoxeterNumber (algebra::Type type, int l=0)
 
template<typename T >
std::ostream & operator<< (std::ostream &fout, const std::vector< T > &vec)
 
template<typename T >
int findInVector (const std::vector< T > &v, const T &element)
 
template<typename T >
int binaryFindInVector (const std::vector< T > &v, const T &element)
 
template<typename T >
bool addCarefully (std::vector< T > &vec, T element)
 
template<typename T >
std::vector< T > operator+ (const std::vector< T > &x, const std::vector< T > &y)
 
template<typename T >
std::vector< T > operator- (const std::vector< T > &x, const std::vector< T > &y)
 
template<typename T >
std::vector< T > operator- (const std::vector< T > &x)
 
template<typename T >
std::vector< T > operator* (T a, const std::vector< T > &x)
 
template<typename T >
std::vector< T > operator* (const std::vector< T > &x, T a)
 
template<typename T >
operator* (const std::vector< T > &x, const std::vector< T > &y)
 
template<typename T >
std::vector< T > operator* (const std::vector< std::vector< T >> &A, const std::vector< T > &x)
 
template<typename T >
std::vector< T > operator* (const std::vector< T > &x, const std::vector< std::vector< T >> &A)
 
template<typename T >
std::vector< std::vector< T > > operator* (const std::vector< std::vector< T >> &A, const std::vector< std::vector< T >> &B)
 

Detailed Description

Semi simple Lie algebras: calculations of highest weight representations, products and sums of representations.

Author
Gregoire Uhlrich
Version
1.3

Handles all semi-simple Lie algebras, including the exceptionnal ones ( \( E_6 \), \( E_7 \), \( E_8 \), \( F_4 \), \( G_2 \)). For more technical details see the manual that explains more deeply some concepts and gives references.