20 #ifndef __TPIE_PIPELINING_PARALLEL_ALIGNED_ARRAY_H__
21 #define __TPIE_PIPELINING_PARALLEL_ALIGNED_ARRAY_H__
25 namespace tpie::pipelining::parallel_bits {
38 template <
typename T,
size_t Align>
42 static const size_t aligned_size = (
sizeof(T)+Align-1)/Align*Align;
58 const size_t addr = (size_t) m_data;
62 const size_t alignedBase = (addr + Align - 1)/Align*Align;
65 const size_t elmAddress = alignedBase + aligned_size * idx;
67 return (T *) elmAddress;
70 void realloc(
size_t elms) {
76 m_data = m_size ?
new uint8_t[aligned_size * elms + Align] : 0;
79 size_t size()
const {
return m_size; }
84 #endif // __TPIE_PIPELINING_PARALLEL_ALIGNED_ARRAY_H__