void execute_on_thread( HostThread & this_thread ) const { std::pair<Host::size_type,Host::size_type> range = this_thread.work_range( output.dimension_0() ); for ( Host::size_type i0 = range.first ; i0 < range.second ; ++i0 ) { for ( Host::size_type i1 = 0 ; i1 < output.dimension_1() ; ++i1 ) { output(i0,i1) = input(i0,i1); }} this_thread.barrier(); }
void execute_on_thread( HostThread & this_thread ) const { std::pair<Host::size_type,Host::size_type> range = this_thread.work_range( output.dimension_0() ); for ( Host::size_type i0 = range.first ; i0 < range.second ; ++i0 ) { for ( Host::size_type i1 = 0 ; i1 < output.dimension_1() ; ++i1 ) { for ( Host::size_type i2 = 0 ; i2 < output.dimension_2() ; ++i2 ) { for ( Host::size_type i3 = 0 ; i3 < output.dimension_3() ; ++i3 ) { for ( Host::size_type i4 = 0 ; i4 < output.dimension_4() ; ++i4 ) { output(i0,i1,i2,i3,i4) = input(i0,i1,i2,i3,i4); }}}}} this_thread.barrier(); }
KOKKOS_INLINE_FUNCTION void operator()( const size_type i0 ) const { for ( size_type i1 = 0 ; i1 < output.dimension_1() ; ++i1 ) { for ( size_type i2 = 0 ; i2 < output.dimension_2() ; ++i2 ) { for ( size_type i3 = 0 ; i3 < output.dimension_3() ; ++i3 ) { for ( size_type i4 = 0 ; i4 < output.dimension_4() ; ++i4 ) { for ( size_type i5 = 0 ; i5 < output.dimension_5() ; ++i5 ) { for ( size_type i6 = 0 ; i6 < output.dimension_6() ; ++i6 ) { for ( size_type i7 = 0 ; i7 < output.dimension_7() ; ++i7 ) { output.at(i0,i1,i2,i3,i4,i5,i6,i7) = input ; }}}}}}} }
ViewRemap( const OutputView & arg_out , const InputView & arg_in ) : output( arg_out ), input( arg_in ) , n0( std::min( (size_t)arg_out.dimension_0() , (size_t)arg_in.dimension_0() ) ) , n1( std::min( (size_t)arg_out.dimension_1() , (size_t)arg_in.dimension_1() ) ) , n2( std::min( (size_t)arg_out.dimension_2() , (size_t)arg_in.dimension_2() ) ) , n3( std::min( (size_t)arg_out.dimension_3() , (size_t)arg_in.dimension_3() ) ) , n4( std::min( (size_t)arg_out.dimension_4() , (size_t)arg_in.dimension_4() ) ) , n5( std::min( (size_t)arg_out.dimension_5() , (size_t)arg_in.dimension_5() ) ) , n6( std::min( (size_t)arg_out.dimension_6() , (size_t)arg_in.dimension_6() ) ) , n7( std::min( (size_t)arg_out.dimension_7() , (size_t)arg_in.dimension_7() ) ) { parallel_for( n0 , *this ); }
KOKKOS_INLINE_FUNCTION void operator()( const size_type i0 ) const { for ( size_type i1 = 0 ; i1 < n1 ; ++i1 ) { for ( size_type i2 = 0 ; i2 < n2 ; ++i2 ) { for ( size_type i3 = 0 ; i3 < n3 ; ++i3 ) { for ( size_type i4 = 0 ; i4 < n4 ; ++i4 ) { for ( size_type i5 = 0 ; i5 < n5 ; ++i5 ) { for ( size_type i6 = 0 ; i6 < n6 ; ++i6 ) { for ( size_type i7 = 0 ; i7 < n7 ; ++i7 ) { output.at(i0,i1,i2,i3,i4,i5,i6,i7) = input.at(i0,i1,i2,i3,i4,i5,i6,i7); }}}}}}} }
ViewFill( const OutputView & arg_out , const_value_type & arg_in ) { DeepCopy< dst_space , dst_space >( arg_out.ptr_on_device() , & arg_in , sizeof(const_value_type) ); }
ViewFill( const OutputView & arg_out , const_value_type & arg_in ) : output( arg_out ), input( arg_in ) { parallel_for( output.dimension_0() , *this ); device_type::fence(); }
ViewRemap( const OutputView & arg_out , const InputView & arg_in ) { DeepCopy< dst_space , src_space >( arg_out.ptr_on_device() , arg_in.ptr_on_device() , sizeof(value_type) ); }