VecCore 0.8.1
C++ Library for Portable SIMD Vectorization
Loading...
Searching...
No Matches
Utilities.h
Go to the documentation of this file.
1#ifndef VECCORE_UTILITIES_H
2#define VECCORE_UTILITIES_H
3
4#ifndef _MSC_VER
5
6#include <cstdlib>
7
8namespace vecCore {
9
10inline void *AlignedAlloc(size_t alignment, size_t size)
11{
12 void *ptr = nullptr;
13
14 if (posix_memalign(&ptr, alignment, size) == 0)
15 return ptr;
16
17 return nullptr;
18}
19
20inline void AlignedFree(void *ptr)
21{
22 free(ptr);
23}
24
25}
26
27#else // _MSC_VER
28
29#include <malloc.h>
30
31namespace vecCore {
32
33inline void *AlignedAlloc(size_t alignment, size_t size)
34{
35 return _aligned_malloc(size, alignment);
36}
37
38inline void AlignedFree(void *ptr)
39{
40 _aligned_free(ptr);
41}
42
43}
44
45#endif // _MSC_VER
46
47#endif // VECCORE_UTILITIES_H
void AlignedFree(void *ptr)
Definition: Utilities.h:20
void * AlignedAlloc(size_t alignment, size_t size)
Definition: Utilities.h:10