CAPD DynSys Library 5.2.0
capd::vectalg::Multiindex Class Reference

For a Multiindex mi, mi[p] is a number of differentiation with respect to i-th variable. For example, a Multipointer mp=(0,0,2,3) in 5-dimensional space corresponds to the Multiindex mi=(2,0,1,1,0). Hence, Multiindex agrees with standard notation and it contains an additional information about the dimension of the domain of the function. More...

#include <capd/vectalg/Multiindex.h>

Public Types

typedef Vector< int, 0 >::iterator iterator
 
typedef Vector< int, 0 >::const_iterator const_iterator
 
typedef std::vector< MultiindexMultiindexVector
 
typedef std::vector< MultiindexVectorIndicesSet
 
typedef Vector< int, 0 >::size_type size_type
 
typedef int ScalarType
 
typedef Container< int, dim > ContainerType
 
typedef Vector< int, dim > VectorType
 
typedef __difference_type difference_type
 
typedef std::reverse_iterator< iteratorreverse_iterator
 
typedef std::reverse_iterator< const_iteratorconst_reverse_iterator
 

Public Member Functions

 Multiindex (void)
 
 Multiindex (size_type _dimension)
 
 Multiindex (size_type _dimension, const Multipointer &)
 
 Multiindex (size_type dim, int data[])
 
 Multiindex (size_type dim, bool)
 
 Multiindex (const Multiindex &v)
 
Multiindexoperator= (const Multiindex &v)
 
 Multiindex (Multiindex &&v)
 
Multiindexoperator= (Multiindex &&v)
 
 Multiindex (std::initializer_list< int > l)
 
bool hasNext ()
 
bool hasNext (int *a, int *b) const
 
bool hasNext (int *a, int *b, size_type j) const
 
size_type module () const
 returns sum of multiindex coordinates (i.e. degree of monomial) More...
 
long factorial () const
 for multiindex (a,b,..,n) returns a!b!...n! More...
 
size_type index (size_type maxDegree) const
 computes index in the array that corresponds to this multiindex More...
 
Vectoroperator+= (const Vector &v)
 
Vectoroperator+= (const int &s)
 
Vectoroperator-= (const Vector &v)
 
Vectoroperator-= (const int &s)
 
Vectoroperator*= (const int &s)
 
Vectoroperator/= (const int &s)
 
size_type dimension () const
 
ScalarType euclNorm (void) const
 
bool normalize (void)
 
void sorting_permutation (typename rebind< int >::other &perm)
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
void resize (size_type newCapacity)
 
ScalarTypeoperator[] (size_type)
 
const ScalarTypeoperator[] (size_type) const
 
ScalarTypeoperator() (size_type)
 
const ScalarTypeoperator() (size_type) const
 
void clear ()
 

Static Public Member Functions

static void generateList (size_type n, size_type k, IndicesSet &result)
 
static size_type degree ()
 
static VectormakeArray (size_type N, size_type _dim)
 
static size_type size ()
 

Static Public Attributes

static const size_type csDim
 

Protected Attributes

ScalarType data [capacity]
 

Detailed Description

For a Multiindex mi, mi[p] is a number of differentiation with respect to i-th variable. For example, a Multipointer mp=(0,0,2,3) in 5-dimensional space corresponds to the Multiindex mi=(2,0,1,1,0). Hence, Multiindex agrees with standard notation and it contains an additional information about the dimension of the domain of the function.

For polynomial: Multiindex stores exponents of a given monomial. e.g. monomial $ x^2 z^3 $ of 4 variables (x,y,z,t) has multiindex (2,0,3,0)

Member Typedef Documentation

◆ const_iterator

◆ const_reverse_iterator

typedef std::reverse_iterator<const_iterator> capd::vectalg::Container< int , capacity >::const_reverse_iterator
inherited

◆ ContainerType

typedef Container<int ,dim> capd::vectalg::Vector< int , dim >::ContainerType
inherited

◆ difference_type

typedef __difference_type capd::vectalg::Vector< int , dim >::difference_type
inherited

◆ IndicesSet

◆ iterator

◆ MultiindexVector

◆ reverse_iterator

typedef std::reverse_iterator<iterator> capd::vectalg::Container< int , capacity >::reverse_iterator
inherited

◆ ScalarType

typedef int capd::vectalg::Vector< int , dim >::ScalarType
inherited

◆ size_type

◆ VectorType

typedef Vector<int ,dim> capd::vectalg::Vector< int , dim >::VectorType
inherited

Constructor & Destructor Documentation

◆ Multiindex() [1/8]

capd::vectalg::Multiindex::Multiindex ( void  )
inline

◆ Multiindex() [2/8]

capd::vectalg::Multiindex::Multiindex ( size_type  _dimension)
inlineexplicit

◆ Multiindex() [3/8]

capd::vectalg::Multiindex::Multiindex ( size_type  _dimension,
const Multipointer mp 
)

◆ Multiindex() [4/8]

capd::vectalg::Multiindex::Multiindex ( size_type  dim,
int  data[] 
)
inline

◆ Multiindex() [5/8]

capd::vectalg::Multiindex::Multiindex ( size_type  dim,
bool   
)
inline

◆ Multiindex() [6/8]

capd::vectalg::Multiindex::Multiindex ( const Multiindex v)
inline

◆ Multiindex() [7/8]

capd::vectalg::Multiindex::Multiindex ( Multiindex &&  v)
inline

◆ Multiindex() [8/8]

capd::vectalg::Multiindex::Multiindex ( std::initializer_list< int l)
inline

Member Function Documentation

◆ begin() [1/2]

Container< int , capacity >::iterator capd::vectalg::Container< int , capacity >::begin
inlineinherited

◆ begin() [2/2]

Container< int , capacity >::const_iterator capd::vectalg::Container< int , capacity >::begin
inlineinherited

◆ clear()

void capd::vectalg::Container< int , capacity >::clear
inherited

◆ degree()

static size_type capd::vectalg::Vector< int , dim >::degree ( )
inlinestaticinherited

◆ dimension()

size_type capd::vectalg::Vector< int , dim >::dimension ( ) const
inlineinherited

◆ end() [1/2]

Container< int , capacity >::iterator capd::vectalg::Container< int , capacity >::end
inlineinherited

◆ end() [2/2]

Container< int , capacity >::const_iterator capd::vectalg::Container< int , capacity >::end
inlineinherited

◆ euclNorm()

Vector< int , dim >::ScalarType capd::vectalg::Vector< int , dim >::euclNorm ( void  ) const
inlineinherited

◆ factorial()

long capd::vectalg::Multiindex::factorial ( ) const

for multiindex (a,b,..,n) returns a!b!...n!

◆ generateList()

void capd::vectalg::Multiindex::generateList ( size_type  n,
size_type  k,
IndicesSet result 
)
static

◆ hasNext() [1/3]

bool capd::vectalg::Multiindex::hasNext ( )

◆ hasNext() [2/3]

bool capd::vectalg::Multiindex::hasNext ( int a,
int b 
) const

◆ hasNext() [3/3]

bool capd::vectalg::Multiindex::hasNext ( int a,
int b,
size_type  j 
) const

◆ index()

Multiindex::size_type capd::vectalg::Multiindex::index ( size_type  maxDegree) const

computes index in the array that corresponds to this multiindex

◆ makeArray()

Vector< int , dim > * capd::vectalg::Vector< int , dim >::makeArray ( size_type  N,
size_type  _dim 
)
staticinherited

◆ module()

Multiindex::size_type capd::vectalg::Multiindex::module ( ) const

returns sum of multiindex coordinates (i.e. degree of monomial)

returns sum of the multiindex entries

◆ normalize()

bool capd::vectalg::Vector< int , dim >::normalize ( void  )
inlineinherited

◆ operator()() [1/2]

int & capd::vectalg::Container< int , capacity >::operator() ( size_type  i)
inlineinherited

◆ operator()() [2/2]

const int & capd::vectalg::Container< int , capacity >::operator() ( size_type  i) const
inlineinherited

◆ operator*=()

Vector< int , dim > & capd::vectalg::Vector< int , dim >::operator*= ( const int s)
inlineinherited

◆ operator+=() [1/2]

Vector< int , dim > & capd::vectalg::Vector< int , dim >::operator+= ( const int s)
inlineinherited

◆ operator+=() [2/2]

Vector & capd::vectalg::Vector< int , dim >::operator+= ( const Vector< int, 0 > &  v)
inherited

◆ operator-=() [1/2]

Vector< int , dim > & capd::vectalg::Vector< int , dim >::operator-= ( const int s)
inlineinherited

◆ operator-=() [2/2]

Vector< int , dim > & capd::vectalg::Vector< int , dim >::operator-= ( const Vector< int, 0 > &  v)
inlineinherited

◆ operator/=()

Vector< int , dim > & capd::vectalg::Vector< int , dim >::operator/= ( const int s)
inlineinherited

◆ operator=() [1/2]

Multiindex & capd::vectalg::Multiindex::operator= ( const Multiindex v)
inline

◆ operator=() [2/2]

Multiindex & capd::vectalg::Multiindex::operator= ( Multiindex &&  v)
inline

◆ operator[]() [1/2]

int & capd::vectalg::Container< int , capacity >::operator[] ( size_type  i)
inlineinherited

◆ operator[]() [2/2]

const int & capd::vectalg::Container< int , capacity >::operator[] ( size_type  i) const
inlineinherited

◆ rbegin() [1/2]

Container< int , capacity >::reverse_iterator capd::vectalg::Container< int , capacity >::rbegin
inlineinherited

◆ rbegin() [2/2]

Container< int , capacity >::const_reverse_iterator capd::vectalg::Container< int , capacity >::rbegin
inlineinherited

◆ rend() [1/2]

Container< int , capacity >::reverse_iterator capd::vectalg::Container< int , capacity >::rend
inlineinherited

◆ rend() [2/2]

Container< int , capacity >::const_reverse_iterator capd::vectalg::Container< int , capacity >::rend
inlineinherited

◆ resize()

void capd::vectalg::Container< int , capacity >::resize ( size_type  newCapacity)
inherited

◆ size()

static size_type capd::vectalg::Container< int , capacity >::size ( )
inlinestaticinherited

◆ sorting_permutation()

void capd::vectalg::Vector< int , dim >::sorting_permutation ( typename rebind< int >::other &  perm)
inherited

Member Data Documentation

◆ csDim

const size_type capd::vectalg::Vector< int , dim >::csDim
staticinherited

◆ data

ScalarType capd::vectalg::Container< int , capacity >::data[capacity]
protectedinherited