MCKL
Monte Carlo Kernel Library
Classes | Namespaces | Macros | Typedefs | Functions | Variables
memory.hpp File Reference
#include <mckl/internal/config.h>
#include <complex>
#include <cstdlib>
#include <cstring>
#include <memory>
#include <new>
#include <vector>
#include <stdlib.h>
#include <jemalloc/jemalloc.h>
#include <tbb/scalable_allocator.h>

Go to the source code of this file.

Classes

class  mckl::Allocator< T, Mem >
 Standard library compatible allocator with policies. More...
 
class  mckl::Allocator< T, Mem >::rebind< U >
 
class  mckl::Allocator< const void, Mem >
 
class  mckl::Allocator< const void, Mem >::rebind< U >
 
class  mckl::Allocator< void, Mem >
 
class  mckl::Allocator< void, Mem >::rebind< U >
 
class  mckl::internal::AlignOfImpl< T >
 
class  mckl::internal::AlignOfImpl< std::complex< T > >
 
class  mckl::MemoryJEM< Alignment >
 Memory allocation using jemalloc. More...
 
class  mckl::MemorySTD< Alignment >
 Memory allocation using the standard library. More...
 
class  mckl::MemorySYS< Alignment >
 Memory allocation using native system functions. More...
 
class  mckl::MemoryTBB< Alignment >
 Memory allocation using Intel TBB. More...
 

Namespaces

 mckl
 
 mckl::internal
 

Macros

#define MCKL_MEMORY_TYPE   ::mckl::MemoryTBB
 Default allocation type. More...
 

Typedefs

template<std::size_t Alignment>
using mckl::Memory = ::mckl::MemoryTBB< Alignment >
 Default memory allocation policy. More...
 
template<typename T , typename Alloc = Allocator<T>>
using mckl::Vector = std::vector< T, Alloc >
 std::vector with Allocator as the default allocator More...
 

Functions

template<std::size_t Alignment, typename UIntType >
constexpr std::size_t mckl::internal::alignment_round (UIntType n)
 
template<std::size_t Alignment, typename UIntType >
constexpr std::size_t mckl::internal::alignment_round0 (UIntType n)
 

Variables

template<typename T >
constexpr std::size_t mckl::AlignOf = internal::AlignOfImpl<T>::value
 Alignment of types in bytes. More...