17 #include "xmmintrin.h" 44 pointer
address(reference value)
const {
return &value; }
45 const_pointer
address(const_reference value)
const {
return &value; }
62 pointer
allocate(size_type num,
const void * =
nullptr)
66 std::cerr <<
"Allocator: allocate " << num <<
" element(s)" 67 <<
" of size " <<
sizeof(T) << std::endl;
69 pointer ret =
reinterpret_cast<pointer
>(
operator new(num *
sizeof(T)));
71 std::cerr <<
" allocated at: " << (
void *)ret << std::endl;
81 std::cerr <<
"Allocator: construct " << p << std::endl;
87 std::cerr <<
"done." << std::endl;
96 std::cerr <<
"Allocator: destroy " << p << std::endl;
100 std::cerr <<
"done." << std::endl;
109 std::cerr <<
"Allocator: deallocate " << num <<
" element(s)" 110 <<
" of size " <<
sizeof(T) <<
" at: " << static_cast<void *>(p) << std::endl;
112 operator delete(
static_cast<void *
>(p), num *
sizeof(T));
114 std::cerr <<
"done." << std::endl;
118 void *
operator new(
size_t size,
void *ptr) { return ::operator
new(size, ptr); }
119 void *
operator new[](
size_t size,
void *ptr) { return ::operator
new(size, ptr); }
120 void *
operator new(
size_t size) {
return _mm_malloc(size, 16); }
121 void *
operator new[](
size_t size) {
return _mm_malloc(size, 16); }
122 void operator delete(
void *ptr, size_t) { _mm_free(ptr); }
123 void operator delete[](
void *ptr, size_t) { _mm_free(ptr); }
127 template <
class T1,
class T2>
132 template <
class T1,
class T2>
138 template <
typename T>
143 typedef std::vector<T>
TStd;
145 typedef std::vector<T, SimdAlloc<T>>
TSimd;
151 template <
typename T>
std::vector< T, SimdAlloc< T > > TSimd
const T & const_reference
bool operator==(const SimdAlloc< T1 > &, const SimdAlloc< T2 > &)
nsL1::vector< fvec >::TSimd vector_fvec
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
std::ptrdiff_t difference_type
void deallocate(pointer p, size_type num)
const_pointer address(const_reference value) const
SimdAlloc(const SimdAlloc< U > &)
size_type max_size() const
bool operator!=(const SimdAlloc< T1 > &, const SimdAlloc< T2 > &)
void construct(pointer p, const T &value)
SimdAlloc(const SimdAlloc &)
pointer allocate(size_type num, const void *=nullptr)
pointer address(reference value) const