Autonomy Software C++ 24.5.1
Welcome to the Autonomy Software repository of the Mars Rover Design Team (MRDT) at Missouri University of Science and Technology (Missouri S&T)! API reference contains the source code and other resources for the development of the autonomy software for our Mars rover. The Autonomy Software project aims to compete in the University Rover Challenge (URC) by demonstrating advanced autonomous capabilities and robust navigation algorithms.
Loading...
Searching...
No Matches
duckdb::BlockIteratorStateBase< BLOCK_ITERATOR_STATE > Class Template Reference

Public Member Functions

idx_t GetDivisor () const
 
void RandomAccess (idx_t &block_or_chunk_idx, idx_t &tuple_idx, const idx_t &index) const
 
void Add (idx_t &block_or_chunk_idx, idx_t &tuple_idx, const idx_t &value) const
 
void Subtract (idx_t &block_or_chunk_idx, idx_t &tuple_idx, const idx_t &value) const
 
void Increment (idx_t &block_or_chunk_idx, idx_t &tuple_idx) const
 
void Decrement (idx_t &block_or_chunk_idx, idx_t &tuple_idx) const
 
idx_t GetIndex (const idx_t &block_or_chunk_idx, const idx_t &tuple_idx) const
 

Protected Attributes

friend BLOCK_ITERATOR_STATE
 
const idx_t tuple_count
 

Private Member Functions

 BlockIteratorStateBase (const idx_t tuple_count_p)
 

Constructor & Destructor Documentation

◆ BlockIteratorStateBase()

template<class BLOCK_ITERATOR_STATE >
duckdb::BlockIteratorStateBase< BLOCK_ITERATOR_STATE >::BlockIteratorStateBase ( const idx_t  tuple_count_p)
inlineexplicitprivate
57039 : tuple_count(tuple_count_p) {
57040 }

Member Function Documentation

◆ GetDivisor()

template<class BLOCK_ITERATOR_STATE >
idx_t duckdb::BlockIteratorStateBase< BLOCK_ITERATOR_STATE >::GetDivisor ( ) const
inline
57043 {
57044 const auto &state = static_cast<const BLOCK_ITERATOR_STATE &>(*this);
57045 return state.GetDivisor();
57046 }

◆ RandomAccess()

template<class BLOCK_ITERATOR_STATE >
void duckdb::BlockIteratorStateBase< BLOCK_ITERATOR_STATE >::RandomAccess ( idx_t block_or_chunk_idx,
idx_t tuple_idx,
const idx_t index 
) const
inline
57048 {
57049 const auto &state = static_cast<const BLOCK_ITERATOR_STATE &>(*this);
57050 state.RandomAccessInternal(block_or_chunk_idx, tuple_idx, index);
57051 }

◆ Add()

template<class BLOCK_ITERATOR_STATE >
void duckdb::BlockIteratorStateBase< BLOCK_ITERATOR_STATE >::Add ( idx_t block_or_chunk_idx,
idx_t tuple_idx,
const idx_t value 
) const
inline
57053 {
57054 tuple_idx += value;
57055 if (tuple_idx >= GetDivisor()) {
57056 RandomAccess(block_or_chunk_idx, tuple_idx, GetIndex(block_or_chunk_idx, tuple_idx));
57057 }
57058 }

◆ Subtract()

template<class BLOCK_ITERATOR_STATE >
void duckdb::BlockIteratorStateBase< BLOCK_ITERATOR_STATE >::Subtract ( idx_t block_or_chunk_idx,
idx_t tuple_idx,
const idx_t value 
) const
inline
57060 {
57061 tuple_idx -= value;
57062 if (tuple_idx >= GetDivisor()) {
57063 RandomAccess(block_or_chunk_idx, tuple_idx, GetIndex(block_or_chunk_idx, tuple_idx));
57064 }
57065 }

◆ Increment()

template<class BLOCK_ITERATOR_STATE >
void duckdb::BlockIteratorStateBase< BLOCK_ITERATOR_STATE >::Increment ( idx_t block_or_chunk_idx,
idx_t tuple_idx 
) const
inline
57067 {
57068 const auto crossed_boundary = ++tuple_idx == GetDivisor();
57069 block_or_chunk_idx += crossed_boundary;
57070 tuple_idx *= !crossed_boundary;
57071 }

◆ Decrement()

template<class BLOCK_ITERATOR_STATE >
void duckdb::BlockIteratorStateBase< BLOCK_ITERATOR_STATE >::Decrement ( idx_t block_or_chunk_idx,
idx_t tuple_idx 
) const
inline
57073 {
57074 const auto crossed_boundary = tuple_idx-- == 0;
57075 block_or_chunk_idx -= crossed_boundary;
57076 tuple_idx += crossed_boundary * GetDivisor();
57077 }

◆ GetIndex()

template<class BLOCK_ITERATOR_STATE >
idx_t duckdb::BlockIteratorStateBase< BLOCK_ITERATOR_STATE >::GetIndex ( const idx_t block_or_chunk_idx,
const idx_t tuple_idx 
) const
inline
57079 {
57080 return block_or_chunk_idx * GetDivisor() + tuple_idx;
57081 }

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