CLRX  1
An unofficial OpenCL extensions designed for Radeon GPUs
Public Types | Public Member Functions | Public Attributes | List of all members
CLRX::DTree< K, T, Comp, KeyOfVal, AT >::IterBase Struct Reference

main iterator class More...

#include <DTree.h>

Inheritance diagram for CLRX::DTree< K, T, Comp, KeyOfVal, AT >::IterBase:
CLRX::DTree< K, T, Comp, KeyOfVal, AT >::ConstIter CLRX::DTree< K, T, Comp, KeyOfVal, AT >::Iter

Public Types

typedef T value_type
 

Public Member Functions

 IterBase (const Node0 *_n0, cxuint _index)
 
 IterBase (Node0 *_n0, cxuint _index)
 
IterBaseoperator= (const IterBase &it)
 
void toNode0 ()
 
void next (size_t inc)
 go to inc next elements More...
 
void toNextNode0 ()
 
void next ()
 go to next element
 
void prev (size_t inc)
 go to inc previous element
 
void prev ()
 go to previous element More...
 
void step (ssize_t i)
 go to i element from current position
 
ssize_t diff (const IterBase &k2) const
 calculate distance between iterators More...
 

Public Attributes

union {
   Node0 *   n0
 
   const Node0 *   cn0
 
   NodeV *   nv
 
   const NodeV *   cnv
 
}; 
 
cxuint index
 index in array
 

Detailed Description

template<typename K, typename T = K, typename Comp = std::less<K>, typename KeyOfVal = Identity<K>, typename AT = T>
struct CLRX::DTree< K, T, Comp, KeyOfVal, AT >::IterBase

main iterator class

Member Function Documentation

template<typename K, typename T = K, typename Comp = std::less<K>, typename KeyOfVal = Identity<K>, typename AT = T>
void CLRX::DTree< K, T, Comp, KeyOfVal, AT >::IterBase::next ( size_t  inc)
inline

go to inc next elements

skipping node1's in deeper level

and skip further node1's in shallow level

skip further node0's for shallowest level

template<typename K, typename T = K, typename Comp = std::less<K>, typename KeyOfVal = Identity<K>, typename AT = T>
void CLRX::DTree< K, T, Comp, KeyOfVal, AT >::IterBase::toNextNode0 ( )
inline

set node0 for shallowest level

template<typename K, typename T = K, typename Comp = std::less<K>, typename KeyOfVal = Identity<K>, typename AT = T>
void CLRX::DTree< K, T, Comp, KeyOfVal, AT >::IterBase::prev ( )
inline

go to previous element

skip last empty space

template<typename K, typename T = K, typename Comp = std::less<K>, typename KeyOfVal = Identity<K>, typename AT = T>
ssize_t CLRX::DTree< K, T, Comp, KeyOfVal, AT >::IterBase::diff ( const IterBase k2) const
inline

calculate distance between iterators

penetrate to level where node are same

count for right nodes before n2 node

count for right nodes before n2 node


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