Cadabra
Computer algebra system for field theory problems
Public Member Functions | Public Attributes | Private Attributes | Friends | List of all members
combin::symmetriser< T > Class Template Reference

#include <Combinatorics.hh>

Public Member Functions

 symmetriser ()
 
void apply_symmetry (long start=-1, long end=-1)
 
range_t values_to_locations (const std::vector< T > &values) const
 Convert vectors of values to vectors of locations in the original (mainly useful to create input_asym for permutation by value). More...
 
const std::vector< T > & operator[] (unsigned int) const
 
int signature (unsigned int) const
 
void set_multiplicity (unsigned int pos, int val)
 
unsigned int size () const
 
void clear ()
 
void collect ()
 Collect equal entries, and adjust the multiplier field accordingly. More...
 
void remove_multiplicity_zero ()
 

Public Attributes

std::vector< T > original
 
unsigned int block_length
 
std::vector< unsigned int > permute_blocks
 
std::vector< T > value_permute
 
int permutation_sign
 
std::vector< unsigned int > sublengths
 
range_vector_t input_asym
 
range_vector_t sublengths_scattered
 

Private Attributes

symm_helper< T > sh_
 
symm_val_helper< T > svh_
 
unsigned int current_
 
std::vector< std::vector< T > > originals
 
std::vector< int > multiplicity
 

Friends

class symm_helper< T >
 
class symm_val_helper< T >
 

Constructor & Destructor Documentation

◆ symmetriser()

template<class T >
combin::symmetriser< T >::symmetriser ( )

Member Function Documentation

◆ apply_symmetry()

template<class T >
void combin::symmetriser< T >::apply_symmetry ( long  start = -1,
long  end = -1 
)

◆ clear()

template<class T >
void combin::symmetriser< T >::clear ( )

◆ collect()

template<class T >
void combin::symmetriser< T >::collect ( )

Collect equal entries, and adjust the multiplier field accordingly.

◆ operator[]()

template<class T >
const std::vector< T > & combin::symmetriser< T >::operator[] ( unsigned int  i) const

◆ remove_multiplicity_zero()

template<class T >
void combin::symmetriser< T >::remove_multiplicity_zero ( )

◆ set_multiplicity()

template<class T >
void combin::symmetriser< T >::set_multiplicity ( unsigned int  pos,
int  val 
)

◆ signature()

template<class T >
int combin::symmetriser< T >::signature ( unsigned int  i) const

◆ size()

template<class T >
unsigned int combin::symmetriser< T >::size ( ) const

◆ values_to_locations()

template<class T>
range_t combin::symmetriser< T >::values_to_locations ( const std::vector< T > &  values) const

Convert vectors of values to vectors of locations in the original (mainly useful to create input_asym for permutation by value).

Friends And Related Function Documentation

◆ symm_helper< T >

template<class T>
friend class symm_helper< T >
friend

◆ symm_val_helper< T >

template<class T>
friend class symm_val_helper< T >
friend

Member Data Documentation

◆ block_length

template<class T>
unsigned int combin::symmetriser< T >::block_length

◆ current_

template<class T>
unsigned int combin::symmetriser< T >::current_
private

◆ input_asym

template<class T>
range_vector_t combin::symmetriser< T >::input_asym

◆ multiplicity

template<class T>
std::vector<int> combin::symmetriser< T >::multiplicity
private

◆ original

template<class T>
std::vector<T> combin::symmetriser< T >::original

◆ originals

template<class T>
std::vector<std::vector<T> > combin::symmetriser< T >::originals
private

◆ permutation_sign

template<class T>
int combin::symmetriser< T >::permutation_sign

◆ permute_blocks

template<class T>
std::vector<unsigned int> combin::symmetriser< T >::permute_blocks

◆ sh_

template<class T>
symm_helper<T> combin::symmetriser< T >::sh_
private

◆ sublengths

template<class T>
std::vector<unsigned int> combin::symmetriser< T >::sublengths

◆ sublengths_scattered

template<class T>
range_vector_t combin::symmetriser< T >::sublengths_scattered

◆ svh_

template<class T>
symm_val_helper<T> combin::symmetriser< T >::svh_
private

◆ value_permute

template<class T>
std::vector<T> combin::symmetriser< T >::value_permute

The documentation for this class was generated from the following file: