mutable
A Database System for Research and Fast Prototyping
Loading...
Searching...
No Matches
Data Structures | Namespaces | Macros | Typedefs | Functions
WasmAlgo.hpp File Reference
#include "backend/WasmUtil.hpp"
#include <mutable/parse/AST.hpp>
#include <optional>
#include "backend/WasmMacro.hpp"
Include dependency graph for WasmAlgo.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  m::wasm::HashTable
 Hash table to hash key-value pairs in memory. More...
 
struct  m::wasm::HashTable::the_reference< NChar, IsConst >
 
struct  m::wasm::HashTable::the_entry< IsConst >
 Helper struct as proxy to access a hash table entry. More...
 
class  m::wasm::chained_hash_table_storage< false >
 
class  m::wasm::chained_hash_table_storage< true >
 
struct  m::wasm::ChainedHashTable< IsGlobal >
 
struct  m::wasm::OpenAddressingHashTableBase
 
struct  m::wasm::OpenAddressingHashTableBase::ProbingStrategy
 Probing strategy to handle collisions in an open addressing hash table. More...
 
class  m::wasm::open_addressing_hash_table_layout< true >
 
class  m::wasm::open_addressing_hash_table_layout< false >
 
class  m::wasm::open_addressing_hash_table_storage< false >
 
class  m::wasm::open_addressing_hash_table_storage< true >
 
struct  m::wasm::OpenAddressingHashTable< IsGlobal, ValueInPlace >
 
struct  m::wasm::LinearProbing
 Linear probing strategy, i.e. More...
 
struct  m::wasm::QuadraticProbing
 Quadratic probing strategy, i.e. More...
 

Namespaces

namespace  m
 

‍mutable namespace


 
namespace  m::wasm
 

Macros

#define ADD_TYPE(TYPE)   , the_reference<TYPE, IsConst>
 

Typedefs

using m::wasm::LocalChainedHashTable = ChainedHashTable< false >
 
using m::wasm::GlobalChainedHashTable = ChainedHashTable< true >
 
using m::wasm::LocalOpenAddressingOutOfPlaceHashTable = OpenAddressingHashTable< false, false >
 
using m::wasm::GlobalOpenAddressingOutOfPlaceHashTable = OpenAddressingHashTable< true, false >
 
using m::wasm::LocalOpenAddressingInPlaceHashTable = OpenAddressingHashTable< false, true >
 
using m::wasm::GlobalOpenAddressingInPlaceHashTable = OpenAddressingHashTable< true, true >
 

Functions

template<bool CmpPredicated, bool IsGlobal>
void m::wasm::quicksort (Buffer< IsGlobal > &buffer, const std::vector< SortingOperator::order_type > &order)
 Sorts the buffer buffer using the quicksort algorithm and a branchless binary partition algorithm.
 
U64x1 m::wasm::murmur3_bit_mix (U64x1 bits)
 Mixes the bits of bits using the Murmur3 algorithm.
 
U64x1 m::wasm::fnv_1a (Ptr< U8x1 > bytes, U32x1 num_bytes)
 Hashes num_bytes bytes of bytes using the FNV-1a algorithm.
 
U64x1 m::wasm::str_hash (NChar str)
 Hashes the string str.
 
U64x1 m::wasm::murmur3_64a_hash (std::vector< std::pair< const Type *, SQL_t > > values)
 Hashes the elements of values where the first element is the type of the value to hash and the second element is the value itself using the Murmur3-64a algorithm.
 
template void m::wasm::quicksort< false > (GlobalBuffer &, const std::vector< SortingOperator::order_type > &)
 
template void m::wasm::quicksort< true > (GlobalBuffer &, const std::vector< SortingOperator::order_type > &)
 

Macro Definition Documentation

◆ ADD_TYPE

#define ADD_TYPE (   TYPE)    , the_reference<TYPE, IsConst>