Lattice Land Powerdomains Library
Loading...
Searching...
No Matches
lala::LightBranch< U > Struct Template Reference

#include <light_branch.hpp>

Public Member Functions

CUDA INLINE LightBranch ()
 
 LightBranch (const LightBranch &)=default
 
 LightBranch (LightBranch &&)=default
 
CUDA INLINE LightBranch (AVar var, const U &left, const U &right)
 
CUDA INLINE const U & next ()
 
CUDA INLINE const U & operator[] (int idx)
 
CUDA INLINE bool has_next () const
 
CUDA INLINE void prune ()
 
CUDA INLINE bool is_pruned () const
 
CUDA INLINE const U & current () const
 

Public Attributes

AVar var
 
children [2]
 
int ropes [2]
 
int current_idx
 

Friends

template<class U2 >
class LightBranch
 

Constructor & Destructor Documentation

◆ LightBranch() [1/4]

template<class U >
CUDA INLINE lala::LightBranch< U >::LightBranch ( )
inline

◆ LightBranch() [2/4]

template<class U >
lala::LightBranch< U >::LightBranch ( const LightBranch< U > &  )
default

◆ LightBranch() [3/4]

template<class U >
lala::LightBranch< U >::LightBranch ( LightBranch< U > &&  )
default

◆ LightBranch() [4/4]

template<class U >
CUDA INLINE lala::LightBranch< U >::LightBranch ( AVar  var,
const U &  left,
const U &  right 
)
inline

Member Function Documentation

◆ next()

template<class U >
CUDA INLINE const U & lala::LightBranch< U >::next ( )
inline

◆ operator[]()

template<class U >
CUDA INLINE const U & lala::LightBranch< U >::operator[] ( int  idx)
inline

◆ has_next()

template<class U >
CUDA INLINE bool lala::LightBranch< U >::has_next ( ) const
inline

◆ prune()

template<class U >
CUDA INLINE void lala::LightBranch< U >::prune ( )
inline

◆ is_pruned()

template<class U >
CUDA INLINE bool lala::LightBranch< U >::is_pruned ( ) const
inline

◆ current()

template<class U >
CUDA INLINE const U & lala::LightBranch< U >::current ( ) const
inline

Friends And Related Symbol Documentation

◆ LightBranch

template<class U >
template<class U2 >
friend class LightBranch
friend

Member Data Documentation

◆ var

template<class U >
AVar lala::LightBranch< U >::var

◆ children

template<class U >
U lala::LightBranch< U >::children[2]

◆ ropes

template<class U >
int lala::LightBranch< U >::ropes[2]

Ropes are used for fast backtracking: ropes[1] is the depth we need to backtrack to if the right node is a leaf.

◆ current_idx

template<class U >
int lala::LightBranch< U >::current_idx

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