GiNaC 1.8.7
Public Member Functions | Protected Attributes | Friends | List of all members
GiNaC::multi_iterator_shuffle< T > Class Template Reference

The class multi_iterator_shuffle defines a multi_iterator, which runs over all shuffles of a and b. More...

#include <utils_multi_iterator.h>

Inheritance diagram for GiNaC::multi_iterator_shuffle< T >:
GiNaC::basic_multi_iterator< T > GiNaC::multi_iterator_shuffle_prime< T >

Public Member Functions

 multi_iterator_shuffle (void)
 Default constructor. More...
 
 multi_iterator_shuffle (const std::vector< T > &a, const std::vector< T > &b)
 Construct from a vector. More...
 
basic_multi_iterator< T > & init (void)
 Initialize the multi-index to the first shuffle. More...
 
basic_multi_iterator< T > & operator++ (int)
 The postfix increment operator allows to write for a multi-index n++, which will update n to the next configuration. More...
 
- Public Member Functions inherited from GiNaC::basic_multi_iterator< T >
 basic_multi_iterator (void)
 Default constructor. More...
 
 basic_multi_iterator (T B, T N, size_t k)
 Construct a multi_iterator with upper limit N, lower limit B and size k . More...
 
 basic_multi_iterator (T B, T N, const std::vector< T > &vv)
 Construct from a vector. More...
 
virtual ~basic_multi_iterator ()
 Destructor. More...
 
size_t size (void) const
 Returns the size of a multi_iterator. More...
 
bool overflow (void) const
 Return the overflow flag. More...
 
const std::vector< T > & get_vector (void) const
 Returns a reference to the vector v. More...
 
operator[] (size_t i) const
 Subscription via []. More...
 
T & operator[] (size_t i)
 Subscription via []. More...
 
operator() (size_t i) const
 Subscription via () More...
 
T & operator() (size_t i)
 Subscription via () More...
 
virtual basic_multi_iterator< T > & init (void)
 Initialize the multi-index to. More...
 
virtual basic_multi_iterator< T > & operator++ (int)
 No effect for basic_multi_iterator. More...
 

Protected Attributes

size_t N_internal
 
std::vector< size_t > v_internal
 
std::vector< T > v_orig
 
- Protected Attributes inherited from GiNaC::basic_multi_iterator< T >
N
 
B
 
std::vector< T > v
 
bool flag_overflow
 

Friends

template<class TT >
std::ostream & operator<< (std::ostream &os, const multi_iterator_shuffle< TT > &v)
 

Detailed Description

template<class T>
class GiNaC::multi_iterator_shuffle< T >

The class multi_iterator_shuffle defines a multi_iterator, which runs over all shuffles of a and b.

Definition at line 350 of file utils_multi_iterator.h.

Constructor & Destructor Documentation

◆ multi_iterator_shuffle() [1/2]

template<class T >
GiNaC::multi_iterator_shuffle< T >::multi_iterator_shuffle ( void  )
inline

Default constructor.

Definition at line 1290 of file utils_multi_iterator.h.

◆ multi_iterator_shuffle() [2/2]

template<class T >
GiNaC::multi_iterator_shuffle< T >::multi_iterator_shuffle ( const std::vector< T > &  a,
const std::vector< T > &  b 
)
inlineexplicit

Member Function Documentation

◆ init()

template<class T >
basic_multi_iterator< T > & GiNaC::multi_iterator_shuffle< T >::init ( void  )
inlinevirtual

Initialize the multi-index to the first shuffle.

Reimplemented from GiNaC::basic_multi_iterator< T >.

Reimplemented in GiNaC::multi_iterator_shuffle_prime< T >.

Definition at line 1321 of file utils_multi_iterator.h.

◆ operator++()

template<class T >
basic_multi_iterator< T > & GiNaC::multi_iterator_shuffle< T >::operator++ ( int  )
inlinevirtual

The postfix increment operator allows to write for a multi-index n++, which will update n to the next configuration.

If n is in the last configuration and the increment operator ++ is applied to n, the overflow flag will be raised.

Reimplemented from GiNaC::basic_multi_iterator< T >.

Definition at line 1345 of file utils_multi_iterator.h.

References k.

Friends And Related Function Documentation

◆ operator<<

template<class T >
template<class TT >
std::ostream & operator<< ( std::ostream &  os,
const multi_iterator_shuffle< TT > &  v 
)
friend

Member Data Documentation

◆ N_internal

template<class T >
size_t GiNaC::multi_iterator_shuffle< T >::N_internal
protected

◆ v_internal

template<class T >
std::vector<size_t> GiNaC::multi_iterator_shuffle< T >::v_internal
protected

◆ v_orig

template<class T >
std::vector<T> GiNaC::multi_iterator_shuffle< T >::v_orig
protected

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

This page is part of the GiNaC developer's reference. It was generated automatically by doxygen. For an introduction, see the tutorial.