Cadabra
Computer algebra system for field theory problems
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
combin::combinations_base< T > Class Template Referenceabstract

#include <Combinatorics.hh>

Inheritance diagram for combin::combinations_base< T >:
combin::combinations< T > combin::symm_helper< T > combin::symm_val_helper< T >

Public Types

enum  weight_cond { weight_equals, weight_less, weight_greater }
 

Public Member Functions

 combinations_base ()
 
 combinations_base (const std::vector< T > &)
 
virtual ~combinations_base ()
 
void permute (long start=-1, long end=-1)
 
virtual void clear ()
 
virtual void clear_results ()
 
unsigned int sum_of_sublengths () const
 
void set_unit_sublengths ()
 
unsigned int multiplier (const std::vector< T > &) const
 
unsigned int total_permutations () const
 

Public Attributes

unsigned int block_length
 
std::vector< unsigned int > sublengths
 
range_vector_t input_asym
 
std::vector< T > original
 
bool multiple_pick
 
std::vector< weights_tweights
 
std::vector< int > max_weights
 
std::vector< weight_condweight_conditions
 
unsigned int sub_problem_blocksize
 

Protected Member Functions

virtual void vector_generated (const std::vector< unsigned int > &)=0
 
virtual bool entry_accepted (unsigned int current) const
 

Protected Attributes

std::vector< unsigned int > temparr
 
long start_
 
long end_
 
long vector_generated_called_
 
std::vector< int > current_weight
 

Private Member Functions

bool is_allowed_by_weight_constraints (unsigned int i)
 
bool final_weight_constraints_check () const
 
void update_weights (unsigned int i)
 
void restore_weights (unsigned int i)
 
void nextstep (unsigned int current, unsigned int fromalgehad, unsigned int groupindex, std::vector< bool > algehad)
 

Member Enumeration Documentation

Enumerator
weight_equals 
weight_less 
weight_greater 

Constructor & Destructor Documentation

template<class T >
combin::combinations_base< T >::combinations_base ( )
template<class T>
combin::combinations_base< T >::combinations_base ( const std::vector< T > &  oa)
template<class T >
combin::combinations_base< T >::~combinations_base ( )
virtual

Member Function Documentation

template<class T >
void combin::combinations_base< T >::clear ( )
virtual
template<class T >
void combin::combinations_base< T >::clear_results ( )
virtual
template<class T >
bool combin::combinations_base< T >::entry_accepted ( unsigned int  current) const
protectedvirtual
template<class T >
bool combin::combinations_base< T >::final_weight_constraints_check ( ) const
private
template<class T >
bool combin::combinations_base< T >::is_allowed_by_weight_constraints ( unsigned int  i)
private
template<class T>
unsigned int combin::combinations_base< T >::multiplier ( const std::vector< T > &  stor) const
template<class T >
void combin::combinations_base< T >::nextstep ( unsigned int  current,
unsigned int  fromalgehad,
unsigned int  groupindex,
std::vector< bool >  algehad 
)
private
template<class T >
void combin::combinations_base< T >::permute ( long  start = -1,
long  end = -1 
)
template<class T >
void combin::combinations_base< T >::restore_weights ( unsigned int  i)
private
template<class T >
void combin::combinations_base< T >::set_unit_sublengths ( )
template<class T >
unsigned int combin::combinations_base< T >::sum_of_sublengths ( ) const
template<class T >
unsigned int combin::combinations_base< T >::total_permutations ( ) const
template<class T >
void combin::combinations_base< T >::update_weights ( unsigned int  i)
private
template<class T>
virtual void combin::combinations_base< T >::vector_generated ( const std::vector< unsigned int > &  )
protectedpure virtual

Member Data Documentation

template<class T>
unsigned int combin::combinations_base< T >::block_length
template<class T>
std::vector<int> combin::combinations_base< T >::current_weight
protected
template<class T>
long combin::combinations_base< T >::end_
protected
template<class T>
range_vector_t combin::combinations_base< T >::input_asym
template<class T>
std::vector<int> combin::combinations_base< T >::max_weights
template<class T>
bool combin::combinations_base< T >::multiple_pick
template<class T>
std::vector<T> combin::combinations_base< T >::original
template<class T>
long combin::combinations_base< T >::start_
protected
template<class T>
unsigned int combin::combinations_base< T >::sub_problem_blocksize
template<class T>
std::vector<unsigned int> combin::combinations_base< T >::sublengths
template<class T>
std::vector<unsigned int> combin::combinations_base< T >::temparr
protected
template<class T>
long combin::combinations_base< T >::vector_generated_called_
protected
template<class T>
std::vector<weight_cond> combin::combinations_base< T >::weight_conditions
template<class T>
std::vector<weights_t> combin::combinations_base< T >::weights

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