GiNaC 1.8.7
GiNaC::basic_multi_iterator< T > Class Template Reference

basic_multi_iterator is a base class. More...

#include <utils_multi_iterator.h>

Inheritance diagram for GiNaC::basic_multi_iterator< T >:
GiNaC::multi_iterator_counter< T > GiNaC::multi_iterator_counter_indv< T > GiNaC::multi_iterator_ordered< T > GiNaC::multi_iterator_ordered_eq< T > GiNaC::multi_iterator_ordered_eq_indv< T > GiNaC::multi_iterator_permutation< T > GiNaC::multi_iterator_shuffle< T > GiNaC::multi_iterator_shuffle_prime< T >

Public Member Functions

 basic_multi_iterator (void)
 Default constructor.
 basic_multi_iterator (T B, T N, size_t k)
 Construct a multi_iterator with upper limit N, lower limit B and size k .
 basic_multi_iterator (T B, T N, const std::vector< T > &vv)
 Construct from a vector.
virtual ~basic_multi_iterator ()
 Destructor.
size_t size (void) const
 Returns the size of a multi_iterator.
bool overflow (void) const
 Return the overflow flag.
const std::vector< T > & get_vector (void) const
 Returns a reference to the vector v.
operator[] (size_t i) const
 Subscription via [].
T & operator[] (size_t i)
 Subscription via [].
operator() (size_t i) const
 Subscription via ()
T & operator() (size_t i)
 Subscription via ()
virtual basic_multi_iterator< T > & init (void)
 Initialize the multi-index to.
virtual basic_multi_iterator< T > & operator++ (int)
 No effect for basic_multi_iterator.

Protected Attributes

N
B
std::vector< T > v
bool flag_overflow

Friends

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

Detailed Description

template<class T>
class GiNaC::basic_multi_iterator< T >

basic_multi_iterator is a base class.

The base class itself does not do anything useful. A typical use of a class derived from basic_multi_iterator is

multi_iterator_ordered<int> k(0,4,2);

for( k.init(); !k.overflow(); k++) { std::cout << k << std::endl; }

which prints out

multi_iterator_ordered(0,1) multi_iterator_ordered(0,2) multi_iterator_ordered(0,3) multi_iterator_ordered(1,2) multi_iterator_ordered(1,3) multi_iterator_ordered(2,3)

Individual components of k can be accessed with k[i] or k(i).

All classes derived from basic_multi_iterator follow the same syntax.

Definition at line 97 of file utils_multi_iterator.h.

Constructor & Destructor Documentation

◆ basic_multi_iterator() [1/3]

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

Default constructor.

Definition at line 405 of file utils_multi_iterator.h.

References B, flag_overflow, N, and v.

Referenced by init(), GiNaC::multi_iterator_counter< T >::init(), GiNaC::multi_iterator_counter_indv< T >::init(), GiNaC::multi_iterator_ordered< T >::init(), GiNaC::multi_iterator_ordered_eq< T >::init(), GiNaC::multi_iterator_ordered_eq_indv< T >::init(), GiNaC::multi_iterator_permutation< T >::init(), GiNaC::multi_iterator_shuffle< T >::init(), GiNaC::multi_iterator_counter< T >::multi_iterator_counter(), GiNaC::multi_iterator_counter< T >::multi_iterator_counter(), GiNaC::multi_iterator_counter< T >::multi_iterator_counter(), GiNaC::multi_iterator_counter_indv< T >::multi_iterator_counter_indv(), GiNaC::multi_iterator_counter_indv< T >::multi_iterator_counter_indv(), GiNaC::multi_iterator_counter_indv< T >::multi_iterator_counter_indv(), GiNaC::multi_iterator_ordered< T >::multi_iterator_ordered(), GiNaC::multi_iterator_ordered< T >::multi_iterator_ordered(), GiNaC::multi_iterator_ordered< T >::multi_iterator_ordered(), GiNaC::multi_iterator_ordered_eq< T >::multi_iterator_ordered_eq(), GiNaC::multi_iterator_ordered_eq< T >::multi_iterator_ordered_eq(), GiNaC::multi_iterator_ordered_eq< T >::multi_iterator_ordered_eq(), GiNaC::multi_iterator_ordered_eq_indv< T >::multi_iterator_ordered_eq_indv(), GiNaC::multi_iterator_ordered_eq_indv< T >::multi_iterator_ordered_eq_indv(), GiNaC::multi_iterator_ordered_eq_indv< T >::multi_iterator_ordered_eq_indv(), GiNaC::multi_iterator_permutation< T >::multi_iterator_permutation(), GiNaC::multi_iterator_permutation< T >::multi_iterator_permutation(), GiNaC::multi_iterator_permutation< T >::multi_iterator_permutation(), GiNaC::multi_iterator_shuffle< T >::multi_iterator_shuffle(), GiNaC::multi_iterator_shuffle< T >::multi_iterator_shuffle(), operator++(), GiNaC::multi_iterator_counter< T >::operator++(), GiNaC::multi_iterator_counter_indv< T >::operator++(), GiNaC::multi_iterator_ordered< T >::operator++(), GiNaC::multi_iterator_ordered_eq< T >::operator++(), GiNaC::multi_iterator_ordered_eq_indv< T >::operator++(), GiNaC::multi_iterator_permutation< T >::operator++(), GiNaC::multi_iterator_shuffle< T >::operator++(), and operator<<.

◆ basic_multi_iterator() [2/3]

template<class T>
GiNaC::basic_multi_iterator< T >::basic_multi_iterator ( T B,
T N,
size_t k )
inlineexplicit

Construct a multi_iterator with upper limit N, lower limit B and size k .

Definition at line 413 of file utils_multi_iterator.h.

References B, flag_overflow, N, and v.

◆ basic_multi_iterator() [3/3]

template<class T>
GiNaC::basic_multi_iterator< T >::basic_multi_iterator ( T B,
T N,
const std::vector< T > & vv )
inlineexplicit

Construct from a vector.

Definition at line 421 of file utils_multi_iterator.h.

References B, flag_overflow, N, and v.

◆ ~basic_multi_iterator()

template<class T>
GiNaC::basic_multi_iterator< T >::~basic_multi_iterator ( )
inlinevirtual

Destructor.

Definition at line 429 of file utils_multi_iterator.h.

Member Function Documentation

◆ size()

◆ overflow()

template<class T>
bool GiNaC::basic_multi_iterator< T >::overflow ( void ) const
inline

Return the overflow flag.

Definition at line 467 of file utils_multi_iterator.h.

References flag_overflow.

◆ get_vector()

template<class T>
const std::vector< T > & GiNaC::basic_multi_iterator< T >::get_vector ( void ) const
inline

Returns a reference to the vector v.

Definition at line 477 of file utils_multi_iterator.h.

References v.

◆ operator[]() [1/2]

template<class T>
T GiNaC::basic_multi_iterator< T >::operator[] ( size_t i) const
inline

Subscription via [].

Definition at line 489 of file utils_multi_iterator.h.

References v.

◆ operator[]() [2/2]

template<class T>
T & GiNaC::basic_multi_iterator< T >::operator[] ( size_t i)
inline

Subscription via [].

Definition at line 499 of file utils_multi_iterator.h.

References v.

◆ operator()() [1/2]

template<class T>
T GiNaC::basic_multi_iterator< T >::operator() ( size_t i) const
inline

Subscription via ()

Definition at line 509 of file utils_multi_iterator.h.

References v.

◆ operator()() [2/2]

template<class T>
T & GiNaC::basic_multi_iterator< T >::operator() ( size_t i)
inline

Subscription via ()

Definition at line 519 of file utils_multi_iterator.h.

References v.

◆ init()

◆ operator++()

◆ operator<<

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

References basic_multi_iterator(), and v.

Member Data Documentation

◆ N

◆ B

template<class T>
T GiNaC::basic_multi_iterator< T >::B
protected

Definition at line 135 of file utils_multi_iterator.h.

Referenced by basic_multi_iterator(), basic_multi_iterator(), basic_multi_iterator(), init(), GiNaC::multi_iterator_counter< T >::init(), GiNaC::multi_iterator_counter_indv< T >::init(), GiNaC::multi_iterator_ordered< T >::init(), GiNaC::multi_iterator_ordered_eq< T >::init(), GiNaC::multi_iterator_ordered_eq_indv< T >::init(), GiNaC::multi_iterator_permutation< T >::init(), GiNaC::multi_iterator_counter< T >::multi_iterator_counter(), GiNaC::multi_iterator_counter< T >::multi_iterator_counter(), GiNaC::multi_iterator_counter_indv< T >::multi_iterator_counter_indv(), GiNaC::multi_iterator_counter_indv< T >::multi_iterator_counter_indv(), GiNaC::multi_iterator_ordered< T >::multi_iterator_ordered(), GiNaC::multi_iterator_ordered< T >::multi_iterator_ordered(), GiNaC::multi_iterator_ordered_eq< T >::multi_iterator_ordered_eq(), GiNaC::multi_iterator_ordered_eq< T >::multi_iterator_ordered_eq(), GiNaC::multi_iterator_ordered_eq_indv< T >::multi_iterator_ordered_eq_indv(), GiNaC::multi_iterator_ordered_eq_indv< T >::multi_iterator_ordered_eq_indv(), GiNaC::multi_iterator_permutation< T >::multi_iterator_permutation(), GiNaC::multi_iterator_permutation< T >::multi_iterator_permutation(), GiNaC::multi_iterator_shuffle< T >::multi_iterator_shuffle(), GiNaC::multi_iterator_counter< T >::operator++(), GiNaC::multi_iterator_counter_indv< T >::operator++(), GiNaC::multi_iterator_permutation< T >::operator++(), GiNaC::operator<<(), GiNaC::operator<<(), GiNaC::operator<<(), GiNaC::operator<<(), GiNaC::operator<<(), GiNaC::operator<<(), GiNaC::operator<<(), GiNaC::operator<<(), and GiNaC::operator<<().

◆ v

template<class T>
std::vector<T> GiNaC::basic_multi_iterator< T >::v
protected

Definition at line 136 of file utils_multi_iterator.h.

Referenced by basic_multi_iterator(), basic_multi_iterator(), basic_multi_iterator(), GiNaC::multi_iterator_permutation< T >::get_sign(), get_vector(), init(), GiNaC::multi_iterator_counter< T >::init(), GiNaC::multi_iterator_counter_indv< T >::init(), GiNaC::multi_iterator_ordered< T >::init(), GiNaC::multi_iterator_ordered_eq< T >::init(), GiNaC::multi_iterator_ordered_eq_indv< T >::init(), GiNaC::multi_iterator_permutation< T >::init(), GiNaC::multi_iterator_shuffle< T >::init(), GiNaC::multi_iterator_shuffle_prime< T >::init(), GiNaC::multi_iterator_counter< T >::multi_iterator_counter(), GiNaC::multi_iterator_counter_indv< T >::multi_iterator_counter_indv(), GiNaC::multi_iterator_ordered< T >::multi_iterator_ordered(), GiNaC::multi_iterator_ordered_eq< T >::multi_iterator_ordered_eq(), GiNaC::multi_iterator_ordered_eq_indv< T >::multi_iterator_ordered_eq_indv(), GiNaC::multi_iterator_permutation< T >::multi_iterator_permutation(), GiNaC::multi_iterator_shuffle< T >::multi_iterator_shuffle(), operator()(), operator()(), GiNaC::multi_iterator_counter< T >::operator++(), GiNaC::multi_iterator_counter_indv< T >::operator++(), GiNaC::multi_iterator_ordered< T >::operator++(), GiNaC::multi_iterator_ordered_eq< T >::operator++(), GiNaC::multi_iterator_ordered_eq_indv< T >::operator++(), GiNaC::multi_iterator_permutation< T >::operator++(), GiNaC::multi_iterator_shuffle< T >::operator++(), operator<<, GiNaC::multi_iterator_counter< T >::operator<<, GiNaC::multi_iterator_counter_indv< T >::operator<<, GiNaC::multi_iterator_ordered< T >::operator<<, GiNaC::multi_iterator_ordered_eq< T >::operator<<, GiNaC::multi_iterator_ordered_eq_indv< T >::operator<<, GiNaC::multi_iterator_permutation< T >::operator<<, GiNaC::multi_iterator_shuffle< T >::operator<<, GiNaC::multi_iterator_shuffle_prime< T >::operator<<, operator[](), operator[](), and size().

◆ flag_overflow


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.