OpenFPM_pdata  4.1.0
Project that contain the implementation of distributed structures
 
Loading...
Searching...
No Matches
openfpm::scalar_block_implementation_switch< impl, block_functor > Struct Template Reference

Functor switch to select the vector sparse for standars scalar and blocked implementation. More...

Detailed Description

template<unsigned int impl, typename block_functor>
struct openfpm::scalar_block_implementation_switch< impl, block_functor >

Functor switch to select the vector sparse for standars scalar and blocked implementation.

Definition at line 121 of file map_vector_sparse.hpp.

#include <map_vector_sparse.hpp>

Static Public Member Functions

template<unsigned int p, typename vector_index_type >
static void extendSegments (vector_index_type &segments, size_t dataSize)
 
template<unsigned int pSegment, typename vector_reduction , typename T , typename vector_data_type , typename vector_index_type , typename vector_index_type2 >
static void segreduce (vector_data_type &vector_data, vector_data_type &vector_data_unsorted, vector_index_type &vector_data_map, vector_index_type2 &segment_offset, vector_data_type &vector_data_red, block_functor &blf, gpu::ofp_context_t &context)
 
template<typename vector_data_type , typename vector_index_type , typename vector_index_type2 , typename vector_index_dtmp_type , typename Ti , typename ... v_reduce>
static void solveConflicts (vector_index_type &vct_index_old, vector_index_type &vct_index_merge, vector_index_type &vct_index_merge_id, vector_index_type &vct_index_out, vector_index_dtmp_type &vct_index_dtmp, vector_index_type &data_map, vector_index_type2 &segments_new, vector_data_type &vct_data_old, vector_data_type &vct_add_data, vector_data_type &vct_add_data_unique, vector_data_type &vct_data_out, ite_gpu< 1 > &itew, block_functor &blf, gpu::ofp_context_t &context)
 

Member Function Documentation

◆ extendSegments()

template<unsigned int impl, typename block_functor >
template<unsigned int p, typename vector_index_type >
static void openfpm::scalar_block_implementation_switch< impl, block_functor >::extendSegments ( vector_index_type &  segments,
size_t  dataSize 
)
inlinestatic

Definition at line 124 of file map_vector_sparse.hpp.

◆ segreduce()

template<unsigned int impl, typename block_functor >
template<unsigned int pSegment, typename vector_reduction , typename T , typename vector_data_type , typename vector_index_type , typename vector_index_type2 >
static void openfpm::scalar_block_implementation_switch< impl, block_functor >::segreduce ( vector_data_type &  vector_data,
vector_data_type &  vector_data_unsorted,
vector_index_type &  vector_data_map,
vector_index_type2 &  segment_offset,
vector_data_type &  vector_data_red,
block_functor &  blf,
gpu::ofp_context_t context 
)
inlinestatic

Definition at line 137 of file map_vector_sparse.hpp.

◆ solveConflicts()

template<unsigned int impl, typename block_functor >
template<typename vector_data_type , typename vector_index_type , typename vector_index_type2 , typename vector_index_dtmp_type , typename Ti , typename ... v_reduce>
static void openfpm::scalar_block_implementation_switch< impl, block_functor >::solveConflicts ( vector_index_type &  vct_index_old,
vector_index_type &  vct_index_merge,
vector_index_type &  vct_index_merge_id,
vector_index_type &  vct_index_out,
vector_index_dtmp_type &  vct_index_dtmp,
vector_index_type &  data_map,
vector_index_type2 &  segments_new,
vector_data_type &  vct_data_old,
vector_data_type &  vct_add_data,
vector_data_type &  vct_add_data_unique,
vector_data_type &  vct_data_out,
ite_gpu< 1 > &  itew,
block_functor &  blf,
gpu::ofp_context_t context 
)
inlinestatic

\briefMerge all datas

Parameters
vct_index_oldsorted vector of the old indexes
vct_data_oldvector of old data
vct_index_outoutput indexes merged new and old indexes
vct_index_merge_idindicate from where it come from the merged index (if the number is bigger than vct_index_old.size() the merged index come from the new data)
vct_index_mergeindexes old and new merged with conflicts
vct_add_data_uniquedata to add (has been already reduced)
vct_data_oldold data
vct_add_datadata to add in its original form in the insert buffer
vct_data_outreduced data vector new + old
vct_index_dtmptemporal buffer vector used for intermediate calculation

Definition at line 187 of file map_vector_sparse.hpp.


The documentation for this struct was generated from the following file: