Grok 10.0.5
Classes | Namespaces | Macros | Typedefs | Functions
aligned_allocator.h File Reference
#include <stddef.h>
#include <memory>
#include "hwy/highway_export.h"

Go to the source code of this file.

Classes

class  hwy::AlignedDeleter
 
class  hwy::AlignedFreer
 

Namespaces

namespace  hwy
 
namespace  hwy::detail
 

Macros

#define HWY_ALIGNMENT   64
 

Typedefs

using hwy::AllocPtr = void *(*)(void *opaque, size_t bytes)
 
using hwy::FreePtr = void(*)(void *opaque, void *memory)
 
template<typename T >
using hwy::AlignedUniquePtr = std::unique_ptr< T, AlignedDeleter >
 
template<typename T >
using hwy::AlignedFreeUniquePtr = std::unique_ptr< T, AlignedFreer >
 

Functions

HWY_DLLEXPORT void * hwy::AllocateAlignedBytes (size_t payload_size, AllocPtr alloc_ptr, void *opaque_ptr)
 
HWY_DLLEXPORT void hwy::FreeAlignedBytes (const void *aligned_pointer, FreePtr free_ptr, void *opaque_ptr)
 
template<typename T , typename... Args>
AlignedUniquePtr< T > hwy::MakeUniqueAlignedWithAlloc (AllocPtr alloc, FreePtr free, void *opaque, Args &&... args)
 
template<typename T , typename... Args>
AlignedUniquePtr< T > hwy::MakeUniqueAligned (Args &&... args)
 
static constexpr size_t hwy::detail::ShiftCount (size_t n)
 
template<typename T >
T * hwy::detail::AllocateAlignedItems (size_t items, AllocPtr alloc_ptr, void *opaque_ptr)
 
template<typename T , typename... Args>
AlignedUniquePtr< T[]> hwy::MakeUniqueAlignedArrayWithAlloc (size_t items, AllocPtr alloc, FreePtr free, void *opaque, Args &&... args)
 
template<typename T , typename... Args>
AlignedUniquePtr< T[]> hwy::MakeUniqueAlignedArray (size_t items, Args &&... args)
 
template<typename T >
AlignedFreeUniquePtr< T[]> hwy::AllocateAligned (const size_t items, AllocPtr alloc, FreePtr free, void *opaque)
 
template<typename T >
AlignedFreeUniquePtr< T[]> hwy::AllocateAligned (const size_t items)
 

Macro Definition Documentation

◆ HWY_ALIGNMENT

#define HWY_ALIGNMENT   64