libidx
|
#include <idxiter.h>
Public Member Functions | |
idxiter () | |
empty constructor; | |
T * | init (const idx< T > &m) |
bool | notdone () |
Return true while the loop is not completed. | |
T * | next () |
Increments idxiter to next element. | |
T & | operator* () |
dereferencing operator: returns data item. | |
Protected Attributes | |
T * | data |
pointer to current item | |
intg | i |
number of elements visited so far (loop index) | |
intg | n |
total number of elements in idx | |
int | j |
dimension being looped over | |
intg | d [MAXDIMS] |
loop index array for non-contiguous idx | |
const idx< T > * | iterand |
pointer to idx being looped over. |
idxiter allows to iterate over all elements of an idx. Although it can be used directly, it is easier to use it with the idx_aloopX macros. Example: idxiter<double> idx; for ( idx.init(m); idx.notdone(); idx.next() ) { printf("%g ",*idx); } Here is an example that uses the aloop macro to fill up an idx with numbers corresponding to the loop index: idxiter<double> idx; idx_aloop_on(idx,m) { *idx = idx.i; } At any point during the loop, the indices of the element being worked on is stored in idx.d[k] for k=0 to idx.order()-1.
T * ebl::idxiter< T >::init | ( | const idx< T > & | m | ) |
Initialize an idxiter to the start of the idx passed as argument.