OpenFPM  5.2.0
Project that contain the implementation of distributed structures
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...

#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 &gpuContext)
 
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, vector_index_type &vct_index_tmp, vector_index_type &vct_index_tmp2, vector_index_type &vct_index_tmp3, vector_index_dtmp_type &vct_index_dtmp, vector_index_type &vct_add_index_cont_1, vector_index_type2 &vct_add_index_unique, vector_data_type &vct_data, vector_data_type &vct_add_data, vector_data_type &vct_add_data_unique, vector_data_type &vct_add_data_cont, ite_gpu< 1 > &itew, block_functor &blf, gpu::ofp_context_t &gpuContext)
 Merge all datas. 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 120 of file map_vector_sparse.hpp.

Member Function Documentation

◆ 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,
vector_index_type &  vct_index_tmp,
vector_index_type &  vct_index_tmp2,
vector_index_type &  vct_index_tmp3,
vector_index_dtmp_type &  vct_index_dtmp,
vector_index_type &  vct_add_index_cont_1,
vector_index_type2 &  vct_add_index_unique,
vector_data_type &  vct_data,
vector_data_type &  vct_add_data,
vector_data_type &  vct_add_data_unique,
vector_data_type &  vct_add_data_cont,
ite_gpu< 1 > &  itew,
block_functor &  blf,
gpu::ofp_context_t gpuContext 
)
inlinestatic

Merge all datas.

Parameters
vct_indexsorted vector of the old indexes
vct_datavector of old data
vct_index_tmp3output indexes merged new and old indexes
vct_index_tmp2indicate from where it come from the merged index (if the number is bigger than vct_index.size() the merged index come from the new data)
vct_index_tmpindexes old and new merged with conflicts
vct_add_data_uniquedata to add (has been already reduced)
vct_dataold data
vct_add_datadata to add in its original form in the insert buffer
vct_add_data_contreduced data vector new + old
vct_index_dtmptemporal buffer vector used for intermediate calculation

Definition at line 186 of file map_vector_sparse.hpp.


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