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

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

#include <Brie.h>

Collaboration diagram for souffle::detail::brie::fix_upper_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_upper_bound< Dim >

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

Definition at line 2413 of file Brie.h.

Member Typedef Documentation

◆ const_entry_span_type

Definition at line 2415 of file Brie.h.

◆ types

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

Definition at line 2414 of file Brie.h.

Member Function Documentation

◆ operator()() [1/2]

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

Definition at line 2418 of file Brie.h.

2419  {
2420  iter.iter_core.setIterator(cur);
2421  iter.value[0] = cur->first;
2422  fix_first_nested<Dim - 1>()(cur->second->getStore(), iter.getNestedView());
2423  return true;
2424  }
2425 
2426  // attempt to fix the rest

◆ operator()() [2/2]

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

Definition at line 2429 of file Brie.h.

2444  {
2445  using entry_type = std::array<brie_element_type, Dim>;
2446  using entry_span_type = span<brie_element_type, Dim>;
2447  using const_entry_span_type = span<const brie_element_type, Dim>;
2448 
2449  // the type of the nested tries (1 dimension less)
2450  using nested_trie_type = Trie<Dim - 1>;
2451 
2452  // the merge operation capable of merging two nested tries
2453  struct nested_trie_merger {
2454  nested_trie_type* operator()(nested_trie_type* a, const nested_trie_type* b) const {
2455  if (!b) return a;
2456  if (!a) return new nested_trie_type(*b);

The documentation for this struct was generated from the following file:
souffle::detail::brie::fix_upper_bound::operator()
bool operator()(const SparseBitMap< bits > &store, iterator &&iter, const_entry_span_type entry) const
Definition: Brie.h:2418
b
l j a showGridBackground &&c b raw series this eventEmitter b
Definition: htmlJsChartistMin.h:15
souffle::detail::brie::fix_upper_bound::const_entry_span_type
typename types::const_entry_span_type const_entry_span_type
Definition: Brie.h:2415