Esempio n. 1
0
 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 ;
     }
   }
Esempio n. 2
0
  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 ; }
      }
    }