Cadabra
Computer algebra system for field theory problems
Loading...
Searching...
No Matches
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).
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.
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).

◆ 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: