C++ main module for mmsd Package  1.0
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
STAT_Combinatorial< T > Class Template Reference

This class is the class to generate combinations, permutation, etc... More...

#include <STAT_Combinatorial.h>

Inheritance diagram for STAT_Combinatorial< T >:
Inheritance graph
[legend]
Collaboration diagram for STAT_Combinatorial< T >:
Collaboration graph
[legend]

Public Member Functions

void getSharedPointer (boost::shared_ptr< STAT_Combinatorial< T > > &p)
 return the shared pointer corresponding to the class with casting More...
 
void getSharedPointer (boost::shared_ptr< const STAT_Combinatorial< T > > &p) const
 return the shared pointer corresponding to the class whith casting More...
 
const T & operator[] (const int &i) const
 get the i-th element Assert in (i>-1) Assert in (i<size()); More...
 
T & operator[] (const int &i)
 get the i-th element Assert in (i>-1) Assert in (i<size()); More...
 
void resize (const size_t &n)
 resize the vector & set the End index & the size More...
 
void setSize (const size_t &n)
 resize More...
 
void initVector ()
 init the vector to index More...
 
void setIsDisplay (const tBoolean &b)
 
template<class UINT >
UINT getCombinationsNumber (const UINT &p)
 compute the number of combinations to take p elements among n n!/(n-p)!*p! More...
 
template<class UINT >
UINT getPermutationsNumber (const UINT &p)
 compute the number of permutations to take p elements among n n!/(n-p)! More...
 
template<class UINT >
UINT getCircularPermutationsNumber (const UINT &p)
 compute the number of circular permutations to take p elements among n n!/(p*(n-p)!) More...
 
int computeCombinations (const int &p)
 compute all combinations of size p More...
 
int computeCombinations (T *combinations, const int &p)
 compute all combinations of size p combinations is assumed to have the size of getCombinationsNumber(p)*p; More...
 
int computePermutations (const int &p)
 compute all permutations of size p More...
 
int computePermutations (T *cpermutations, const int &p)
 compute all permutations of size p combinations is assumed to have the size of getPermutationsNumber(p)*p; More...
 
int computeCircularPermutations (const int &p)
 compute all circular permutations of size p More...
 
int computeCircularPermutations (T *combinations, const int &p)
 compute all circular permutations of size p combinations is assumed to have the size of getCircularPermutationsNumber(p)*p; More...
 
tBoolean oneCombinationDone ()
 method called at each combination done if return true succeeds More...
 
tBoolean onePermutationDone ()
 method called at each permutation done if return true succeeds More...
 
void display ()
 display on screnn the computation More...
 
void getSharedPointer (SP::CORE_Object &p)
 get the shared pointer of this class into p More...
 
void getSharedPointer (SPC::CORE_Object &p) const
 get the shared pointer of this class into p More...
 
tString getClassName () const
 return the class name of the object More...
 
tString getIdentityString () const
 return the identity string of the object of the form className_at_address More...
 
tString getPointerAddress () const
 return the identity string of the object More...
 
template<class T >
tBoolean isInstanceOf () const
 return true if the object is an instance of T More...
 
virtual tString toString () const
 return the string representation of the object node More...
 
virtual void print ()
 print the class More...
 
virtual ostream & print (ostream &out) const
 print the class More...
 
virtual void print (const tString &message)
 print the class More...
 
virtual void print (const tInteger &str)
 print More...
 
virtual void print (const tRelativeInteger &str)
 print More...
 
virtual void print (const tReal &str)
 print More...
 
virtual void print (const int &str)
 print More...
 

Static Public Member Functions

static boost::shared_ptr
< STAT_Combinatorial< T > > 
New ()
 return a STAT_Combinatorial shared pointer More...
 
static boost::shared_ptr
< STAT_Combinatorial< T > > 
New (const int &n)
 return a STAT_Combinatorial shared pointer More...
 
static void initSeed (const long int &v)
 init the seed for random computation More...
 
static void initSeed ()
 init the seed for random computation More...
 
template<class UINT >
static UINT getCombinationsNumber (const UINT &p, const UINT &n)
 compute the number of combinations to take p elements among n n!/(n-p)!*p! More...
 
template<class UINT >
static UINT getPermutationsNumber (const UINT &p, const UINT &n)
 compute the number of permutations to take p elements among n n!/(n-p)! More...
 
template<class UINT >
static UINT getCircularPermutationsNumber (const UINT &p, const UINT &n)
 compute the number of circular permutations to take p elements among n n!/(p*(n-p)!) More...
 
static void computeRandomPermutation (T *vect, const int &s)
 permute all the values of vector of size s in an random order More...
 
static void computeRandomPermutation (T *vect, const int &s, const int &q)
 permute all the values by block of size q of the vector of size s More...
 
static tString getClassName (const tString &identityString)
 return the class name of the object using only the identity string More...
 
template<class T >
static tString getTypeName ()
 get type name More...
 
static tBoolean is64Architecture ()
 return true if the machine is a 64 bits machine More...
 
static tBoolean is32Architecture ()
 return true if the machine is a 32 bits machine More...
 
static tString pointer2String (const void *obj)
 return the string represantation of a pointer More...
 
static void setOutput (ostream &out)
 set output More...
 
static ostream & getOutput ()
 get output More...
 
static void printObjectsInMemory ()
 print object in memory More...
 
static ostream & print (ostream &out, const tString &message)
 print the class More...
 
static void outputPrint (const tString &message)
 

Static Public Attributes

static tBoolean mIsMemoryTesting =false
 indicator to store all classes created and deleted only for debuging version More...
 

Protected Member Functions

 STAT_Combinatorial (void)
 create an object More...
 
virtual ~STAT_Combinatorial (void)
 destroy an object. More...
 
void setThis (SP::CORE_Object p)
 set this weak shared pointer called toDoAfterThis setting method More...
 
virtual void setType (tString type)
 set the type of the object More...
 
virtual void toDoAfterThisSetting ()
 method called after setThis() method this method can oly be called once. More...
 

Detailed Description

template<class T>
class STAT_Combinatorial< T >

This class is the class to generate combinations, permutation, etc...

the last considered index is at index mLastIndex

Constructor & Destructor Documentation

template<class T >
STAT_Combinatorial< T >::STAT_Combinatorial ( void  )
protected

create an object

References null, and CORE_Object::setType().

Here is the call graph for this function:

template<class T >
STAT_Combinatorial< T >::~STAT_Combinatorial ( void  )
protectedvirtual

destroy an object.

References null.

Member Function Documentation

template<class T >
int STAT_Combinatorial< T >::computeCircularPermutations ( const int &  p)

compute all circular permutations of size p

Returns
the number of combinations

References ASSERT_IN.

Referenced by STAT_Combinatorial< T >::computeCircularPermutations().

Here is the caller graph for this function:

template<class T >
int STAT_Combinatorial< T >::computeCircularPermutations ( T *  combinations,
const int &  p 
)
inline

compute all circular permutations of size p combinations is assumed to have the size of getCircularPermutationsNumber(p)*p;

References STAT_Combinatorial< T >::computeCircularPermutations().

Here is the call graph for this function:

template<class T >
int STAT_Combinatorial< T >::computeCombinations ( const int &  p)

compute all combinations of size p

Returns
the number of combinations

References ASSERT_IN.

Referenced by STAT_Combinatorial< T >::computeCombinations().

Here is the caller graph for this function:

template<class T >
int STAT_Combinatorial< T >::computeCombinations ( T *  combinations,
const int &  p 
)
inline

compute all combinations of size p combinations is assumed to have the size of getCombinationsNumber(p)*p;

References STAT_Combinatorial< T >::computeCombinations().

Here is the call graph for this function:

template<class T >
int STAT_Combinatorial< T >::computePermutations ( const int &  p)

compute all permutations of size p

Returns
the number of combinations

References ASSERT_IN.

Referenced by STAT_Combinatorial< T >::computePermutations().

Here is the caller graph for this function:

template<class T >
int STAT_Combinatorial< T >::computePermutations ( T *  cpermutations,
const int &  p 
)
inline

compute all permutations of size p combinations is assumed to have the size of getPermutationsNumber(p)*p;

References STAT_Combinatorial< T >::computePermutations().

Here is the call graph for this function:

template<class T >
static void STAT_Combinatorial< T >::computeRandomPermutation ( T *  vect,
const int &  s 
)
inlinestatic

permute all the values of vector of size s in an random order

Parameters
vectorvalues to permute
s: size of vector

Referenced by MMSD_IntegerFullMatrix::randomizeColumns().

Here is the caller graph for this function:

template<class T >
static void STAT_Combinatorial< T >::computeRandomPermutation ( T *  vect,
const int &  s,
const int &  q 
)
inlinestatic

permute all the values by block of size q of the vector of size s

Parameters
vectorvalues to permute
s: size of vector
qis the block size
template<class T >
void STAT_Combinatorial< T >::display ( )

display on screnn the computation

Referenced by STAT_Combinatorial< T >::oneCombinationDone().

Here is the caller graph for this function:

template<class T >
template<class UINT >
UINT STAT_Combinatorial< T >::getCircularPermutationsNumber ( const UINT &  p,
const UINT &  n 
)
static

compute the number of circular permutations to take p elements among n n!/(p*(n-p)!)

Referenced by STAT_Combinatorial< T >::getCircularPermutationsNumber().

Here is the caller graph for this function:

template<class T >
template<class UINT >
UINT STAT_Combinatorial< T >::getCircularPermutationsNumber ( const UINT &  p)
inline

compute the number of circular permutations to take p elements among n n!/(p*(n-p)!)

References ASSERT_IN, and STAT_Combinatorial< T >::getCircularPermutationsNumber().

Here is the call graph for this function:

static tString CORE_Object::getClassName ( const tString identityString)
inlinestaticinherited

return the class name of the object using only the identity string

Referenced by UI_Class::createVector2D(), LAP_DoublePackedUpperMatrix::matrixProduct(), LAP_DoubleBandedUpperMatrix::matrixProduct(), LAP_DoubleFullUpperMatrix::matrixProduct(), and CORE_Object::printObjectsInMemory().

Here is the caller graph for this function:

tString CORE_Object::getClassName ( ) const
inherited

return the class name of the object

Returns
the class name of the object

References tString.

Referenced by CORE_Object::getIdentityString().

Here is the caller graph for this function:

template<class T >
template<class UINT >
UINT STAT_Combinatorial< T >::getCombinationsNumber ( const UINT &  p,
const UINT &  n 
)
static

compute the number of combinations to take p elements among n n!/(n-p)!*p!

Referenced by STAT_Combinatorial< T >::getCombinationsNumber().

Here is the caller graph for this function:

template<class T >
template<class UINT >
UINT STAT_Combinatorial< T >::getCombinationsNumber ( const UINT &  p)
inline

compute the number of combinations to take p elements among n n!/(n-p)!*p!

References ASSERT_IN, and STAT_Combinatorial< T >::getCombinationsNumber().

Here is the call graph for this function:

tString CORE_Object::getIdentityString ( ) const
inlineinherited

return the identity string of the object of the form className_at_address

Returns
the identity string of the object

References CORE_Object::getClassName(), CORE_Object::pointer2String(), and tString.

Referenced by UI_Class::createPrimitiveMap(), UI_Class::saveAssociation(), UI_Class::saveClass(), UI_ClassFactory::saveIntoClass(), MATH_StiefelFunction::toString(), LAP_2DView::toString(), CORE_Object::toString(), MATH_StiefelOptimizer::toString(), and MM_Class::toString().

Here is the call graph for this function:

Here is the caller graph for this function:

static ostream& CORE_Object::getOutput ( )
inlinestaticinherited

get output

template<class T >
template<class UINT >
UINT STAT_Combinatorial< T >::getPermutationsNumber ( const UINT &  p,
const UINT &  n 
)
static

compute the number of permutations to take p elements among n n!/(n-p)!

Referenced by STAT_Combinatorial< T >::getPermutationsNumber().

Here is the caller graph for this function:

template<class T >
template<class UINT >
UINT STAT_Combinatorial< T >::getPermutationsNumber ( const UINT &  p)
inline

compute the number of permutations to take p elements among n n!/(n-p)!

References ASSERT_IN, and STAT_Combinatorial< T >::getPermutationsNumber().

Here is the call graph for this function:

tString CORE_Object::getPointerAddress ( ) const
inlineinherited

return the identity string of the object

Returns
the identity string of the object

References CORE_Object::pointer2String().

Here is the call graph for this function:

void CORE_Object::getSharedPointer ( SP::CORE_Object &  p)
inlineinherited
void CORE_Object::getSharedPointer ( SPC::CORE_Object &  p) const
inlineinherited

get the shared pointer of this class into p

template<class T >
void STAT_Combinatorial< T >::getSharedPointer ( boost::shared_ptr< STAT_Combinatorial< T > > &  p)
inline

return the shared pointer corresponding to the class with casting

References CORE_Object::getSharedPointer().

Here is the call graph for this function:

template<class T >
void STAT_Combinatorial< T >::getSharedPointer ( boost::shared_ptr< const STAT_Combinatorial< T > > &  p) const
inline

return the shared pointer corresponding to the class whith casting

References CORE_Object::getSharedPointer().

Here is the call graph for this function:

template<class T >
static tString CORE_Object::getTypeName ( )
inlinestaticinherited

get type name

References tString.

template<class T >
static void STAT_Combinatorial< T >::initSeed ( const long int &  v)
inlinestatic

init the seed for random computation

template<class T >
static void STAT_Combinatorial< T >::initSeed ( )
inlinestatic

init the seed for random computation

template<class T >
void STAT_Combinatorial< T >::initVector ( )
inline

init the vector to index

static tBoolean CORE_Object::is32Architecture ( )
inlinestaticinherited

return true if the machine is a 32 bits machine

References CORE_Object::is64Architecture().

Here is the call graph for this function:

tBoolean CORE_Object::is64Architecture ( )
staticinherited

return true if the machine is a 64 bits machine

Referenced by CORE_Object::is32Architecture().

Here is the caller graph for this function:

template<class T >
tBoolean CORE_Object::isInstanceOf ( ) const
inlineinherited

return true if the object is an instance of T

References null.

template<class T >
static boost::shared_ptr<STAT_Combinatorial<T> > STAT_Combinatorial< T >::New ( )
inlinestatic

return a STAT_Combinatorial shared pointer

Referenced by MMSD_IntegerFullMatrix::computeCombinations(), and testCombinations().

Here is the caller graph for this function:

template<class T >
static boost::shared_ptr<STAT_Combinatorial<T> > STAT_Combinatorial< T >::New ( const int &  n)
inlinestatic

return a STAT_Combinatorial shared pointer

template<class T >
tBoolean STAT_Combinatorial< T >::oneCombinationDone ( )
inline

method called at each combination done if return true succeeds

References STAT_Combinatorial< T >::display(), and null.

Referenced by STAT_Combinatorial< T >::onePermutationDone().

Here is the call graph for this function:

Here is the caller graph for this function:

template<class T >
tBoolean STAT_Combinatorial< T >::onePermutationDone ( )
inline

method called at each permutation done if return true succeeds

References STAT_Combinatorial< T >::oneCombinationDone().

Here is the call graph for this function:

template<class T >
const T& STAT_Combinatorial< T >::operator[] ( const int &  i) const
inline

get the i-th element Assert in (i>-1) Assert in (i<size());

References ASSERT_IN.

template<class T >
T& STAT_Combinatorial< T >::operator[] ( const int &  i)
inline

get the i-th element Assert in (i>-1) Assert in (i<size());

References ASSERT_IN.

void CORE_Object::outputPrint ( const tString message)
staticinherited

print on output

References null, and CORE_Object::print().

Referenced by CORE_Exception::CORE_Exception().

Here is the call graph for this function:

Here is the caller graph for this function:

tString CORE_Object::pointer2String ( const void *  obj)
staticinherited

return the string represantation of a pointer

References tString.

Referenced by CORE_Object::CORE_Object(), CORE_Object::getIdentityString(), CORE_Object::getPointerAddress(), and CORE_Object::~CORE_Object().

Here is the caller graph for this function:

virtual void CORE_Object::print ( )
inlinevirtualinherited

print the class

References CORE_Object::toString().

Referenced by CORE_Object::outputPrint(), CORE_Out::print(), CORE_Object::print(), CORE_Out::printInt(), CORE_Out::println(), CORE_Out::printReal(), CORE_Out::printString(), and CORE_Out::setAction().

Here is the call graph for this function:

Here is the caller graph for this function:

virtual ostream& CORE_Object::print ( ostream &  out) const
inlinevirtualinherited

print the class

References CORE_Object::print(), and CORE_Object::toString().

Here is the call graph for this function:

void CORE_Object::print ( const tString message)
virtualinherited

print the class

Reimplemented in CORE_Out.

References null, and CORE_Object::print().

Here is the call graph for this function:

void CORE_Object::print ( const tInteger str)
virtualinherited

print

References null.

void CORE_Object::print ( const tRelativeInteger str)
virtualinherited

print

References null.

void CORE_Object::print ( const tReal str)
virtualinherited

print

References null.

void CORE_Object::print ( const int &  str)
virtualinherited

print

References null.

static ostream& CORE_Object::print ( ostream &  out,
const tString message 
)
inlinestaticinherited

print the class

void CORE_Object::printObjectsInMemory ( )
staticinherited

print object in memory

References CORE_Object::getClassName(), CORE_Object::getSharedPointer(), and CORE_Object::mIsMemoryTesting.

Referenced by main().

Here is the call graph for this function:

Here is the caller graph for this function:

template<class T >
void STAT_Combinatorial< T >::resize ( const size_t &  n)
inline

resize the vector & set the End index & the size

References null.

Referenced by STAT_Combinatorial< T >::setSize().

Here is the caller graph for this function:

template<class T >
void STAT_Combinatorial< T >::setIsDisplay ( const tBoolean b)
inline

|brief set true if the display on screeen of the combinatorial is enabled

static void CORE_Object::setOutput ( ostream &  out)
inlinestaticinherited

set output

template<class T >
void STAT_Combinatorial< T >::setSize ( const size_t &  n)
inline

resize

References STAT_Combinatorial< T >::resize().

Here is the call graph for this function:

void CORE_Object::setThis ( SP::CORE_Object  p)
inlineprotectedinherited

set this weak shared pointer called toDoAfterThis setting method

References CORE_Object::toDoAfterThisSetting().

Here is the call graph for this function:

virtual void CORE_Object::setType ( tString  type)
inlineprotectedvirtualinherited

set the type of the object

Referenced by LAP_IntegerVector::LAP_IntegerVector(), MATH_BetaFunction::MATH_BetaFunction(), MATH_C1Function::MATH_C1Function(), MATH_DigammaFunction::MATH_DigammaFunction(), MATH_EigenFunction::MATH_EigenFunction(), MATH_Equation::MATH_Equation(), MATH_Function::MATH_Function(), MATH_GammaFunction::MATH_GammaFunction(), MATH_KeplerFunction::MATH_KeplerFunction(), MATH_LogGammaFunction::MATH_LogGammaFunction(), MATH_NewtonEquation::MATH_NewtonEquation(), MATH_StiefelFunction::MATH_StiefelFunction(), MATH_StiefelOptimizer::MATH_StiefelOptimizer(), MATH_TranscendentEquation::MATH_TranscendentEquation(), MATH_TrigammaFunction::MATH_TrigammaFunction(), MATH_ZeroEquation::MATH_ZeroEquation(), MATH_ZKeplerFunction::MATH_ZKeplerFunction(), MM_Attribute::MM_Attribute(), MM_Class::MM_Class(), MM_ClassFactory::MM_ClassFactory(), MM_Data::MM_Data(), MM_Structure::MM_Structure(), MMSD_ClassFactory::MMSD_ClassFactory(), MMSD_Cluster::MMSD_Cluster(), MMSD_ConstDoubleVector::MMSD_ConstDoubleVector(), MMSD_ConstraintGaussianCluster::MMSD_ConstraintGaussianCluster(), MMSD_ConstraintGaussianModel::MMSD_ConstraintGaussianModel(), MMSD_DataSet::MMSD_DataSet(), MMSD_DataSetClassFactory::MMSD_DataSetClassFactory(), MMSD_DoubleFullMatrix::MMSD_DoubleFullMatrix(), MMSD_DoubleSymmetricMatrix::MMSD_DoubleSymmetricMatrix(), MMSD_DoubleVector::MMSD_DoubleVector(), MMSD_FluryGautschiGaussianLaw::MMSD_FluryGautschiGaussianLaw(), MMSD_GaussianCluster::MMSD_GaussianCluster(), MMSD_GaussianFDFunction::MMSD_GaussianFDFunction(), MMSD_GaussianLaw::MMSD_GaussianLaw(), MMSD_GaussianModel::MMSD_GaussianModel(), MMSD_Law::MMSD_Law(), MMSD_Model::MMSD_Model(), MMSD_ModelClassFactory::MMSD_ModelClassFactory(), MMSD_Object::MMSD_Object(), MMSD_StiefelFunction::MMSD_StiefelFunction(), MMSD_StiefelGaussianLaw::MMSD_StiefelGaussianLaw(), STAT_BernoulliDistribution::STAT_BernoulliDistribution(), STAT_BinomialDistribution::STAT_BinomialDistribution(), STAT_Combinatorial< T >::STAT_Combinatorial(), STAT_DiracDistribution::STAT_DiracDistribution(), STAT_Distribution::STAT_Distribution(), STAT_ExponentialDistribution::STAT_ExponentialDistribution(), STAT_GammaDistribution::STAT_GammaDistribution(), STAT_GeometricDistribution::STAT_GeometricDistribution(), STAT_InverseNormalDistribution::STAT_InverseNormalDistribution(), STAT_NormalDistribution::STAT_NormalDistribution(), STAT_Object::STAT_Object(), STAT_PoissonDistribution::STAT_PoissonDistribution(), STAT_UniformDistribution::STAT_UniformDistribution(), and STAT_UniformLaplaceTransform::STAT_UniformLaplaceTransform().

Here is the caller graph for this function:

virtual void CORE_Object::toDoAfterThisSetting ( )
inlineprotectedvirtualinherited

method called after setThis() method this method can oly be called once.

Reimplemented in STAT_UniformLaplaceTransform.

Referenced by CORE_Object::setThis(), and STAT_UniformLaplaceTransform::toDoAfterThisSetting().

Here is the caller graph for this function:

tString CORE_Object::toString ( ) const
virtualinherited

return the string representation of the object node

Returns
the string representation of the object node

Reimplemented in MM_Attribute, MM_Structure, MMSD_DoubleSymmetricMatrix, CORE_Time, CORE_Vector< T >, CORE_Array< T >, CORE_Array< tString >, CORE_Array< int >, CORE_Array< tFlag >, MM_Class, MMSD_Model, LAP_DoubleMatrix, LAP_DoubleVector, CORE_Array2D< T >, MMSD_Cluster, MMSD_FluryGautschiGaussianLaw, CORE_Color, CORE_Matrix< T >, MMSD_DataSet, CORE_SharedPointersVMap< Key, Value >, CORE_SharedPointersVMap< tString, const CORE_Object >, CORE_SharedPointersVMap< tString, CORE_Object >, MATH_StiefelOptimizer, MMSD_Law, CORE_SharedPointersListVMap< Key, Value >, MATH_Equation, CORE_SharedPointersKVMap< Key, Value >, MATH_TranscendentEquation, MMSD_GaussianLaw, MMSD_GaussianCluster, MMSD_StiefelGaussianLaw, MATH_NewtonEquation, CORE_String, LAP_View, CORE_Integer, LAP_2DView, MMSD_StiefelFunction, CORE_Array3D< T >, MATH_CubicPolynom, MATH_QuadraticPolynom, MATH_ZeroEquation, MMSD_ConstraintGaussianCluster, CORE_Complex, CORE_Real, MATH_EigenFunction, and MATH_StiefelFunction.

References CORE_Object::getIdentityString().

Referenced by CORE_Object::print(), MM_ClassFactory::saveIntoFile(), CORE_SharedPointersKVMap< Key, Value >::toString(), CORE_SharedPointersListVMap< Key, Value >::toString(), MMSD_Law::toString(), CORE_SharedPointersVMap< Key, Value >::toString(), MMSD_Cluster::toString(), and MMSD_Model::toString().

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

tBoolean CORE_Object::mIsMemoryTesting =false
staticinherited

indicator to store all classes created and deleted only for debuging version

Referenced by CORE_Object::CORE_Object(), main(), CORE_Object::printObjectsInMemory(), and CORE_Object::~CORE_Object().


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