souffle  2.0.2-371-g6315b36
Public Types | Public Member Functions
souffle::detail::brie::fix_lower_bound< Dim > Struct Template Reference

A functor initializing an iterator upon creation to reference the first element within a given Trie being not less than a given value . More...

#include <Brie.h>

Collaboration diagram for souffle::detail::brie::fix_lower_bound< Dim >:
Collaboration graph

Public Types

using const_entry_span_type = typename types::const_entry_span_type
 
using types = TrieTypes< Dim >
 

Public Member Functions

template<unsigned bits, typename iterator >
bool operator() (const SparseBitMap< bits > &store, iterator &&iter, const_entry_span_type entry) const
 
template<typename Store , typename iterator >
bool operator() (const Store &store, iterator &&iter, const_entry_span_type entry) const
 

Detailed Description

template<unsigned Dim>
struct souffle::detail::brie::fix_lower_bound< Dim >

A functor initializing an iterator upon creation to reference the first element within a given Trie being not less than a given value .

Definition at line 2362 of file Brie.h.

Member Typedef Documentation

◆ const_entry_span_type

Definition at line 2364 of file Brie.h.

◆ types

template<unsigned Dim>
using souffle::detail::brie::fix_lower_bound< Dim >::types = TrieTypes<Dim>

Definition at line 2363 of file Brie.h.

Member Function Documentation

◆ operator()() [1/2]

template<unsigned Dim>
template<unsigned bits, typename iterator >
bool souffle::detail::brie::fix_lower_bound< Dim >::operator() ( const SparseBitMap< bits > &  store,
iterator &&  iter,
const_entry_span_type  entry 
) const
inline

Definition at line 2367 of file Brie.h.

2368  {
2369  iter.iter_core.setIterator(cur);
2370  iter.value[0] = cur->first;
2371  fix_first_nested<Dim - 1>()(cur->second->getStore(), iter.getNestedView());
2372  return true;
2373  }
2374 
2375  // attempt to fix the rest

◆ operator()() [2/2]

template<unsigned Dim>
template<typename Store , typename iterator >
bool souffle::detail::brie::fix_lower_bound< Dim >::operator() ( const Store &  store,
iterator &&  iter,
const_entry_span_type  entry 
) const
inline

Definition at line 2378 of file Brie.h.

2397  {
2398  using types = TrieTypes<Dim>;
2400 
2401  template <unsigned bits, typename iterator>
2402  bool operator()(const SparseBitMap<bits>& store, iterator&& iter, const_entry_span_type entry) const {
2403  auto cur = store.upper_bound(entry[0]);
2404  if (cur == store.end()) return false;
2405  assert(entry[0] <= brie_element_type(*cur));

The documentation for this struct was generated from the following file:
souffle::detail::brie::TrieTypes::const_entry_span_type
span< const brie_element_type, Dim > const_entry_span_type
Definition: Brie.h:2463
souffle::detail::brie::fix_lower_bound::const_entry_span_type
typename types::const_entry_span_type const_entry_span_type
Definition: Brie.h:2364
souffle::detail::brie::fix_lower_bound::types
TrieTypes< Dim > types
Definition: Brie.h:2363
souffle::detail::brie::brie_element_type
RamDomain brie_element_type
Definition: Brie.h:84
souffle::detail::brie::fix_lower_bound::operator()
bool operator()(const SparseBitMap< bits > &store, iterator &&iter, const_entry_span_type entry) const
Definition: Brie.h:2367