KOKKOS_INLINE_FUNCTION void operator()( TagDealloc , int i , long & update ) const noexcept { if ( ptrs(i) && ( 0 == i % 3 ) ) { unsigned alloc_size = 32 * ( 1 + ( i % 5 )); pool.deallocate( (void*) ptrs(i) , alloc_size ); ptrs(i) = 0 ; ++update ; } }
KOKKOS_INLINE_FUNCTION void operator()( TagMixItUp , int i , long & update ) const noexcept { if ( ptrs(i) && ( 0 == i % 3 ) ) { unsigned alloc_size = 32 * ( 1 + ( i % 5 )); pool.deallocate( (void*) ptrs(i) , alloc_size ); ptrs(i) = (uintptr_t) pool.allocate( alloc_size ); if ( ptrs(i) ) { ++update ; } } }