OpenFPM_pdata  4.1.0
Project that contain the implementation of distributed structures
 
Loading...
Searching...
No Matches
vector_dist_expression_op< exp1, void, VECT_SUM_REDUCE > Class Template Reference

expression that encapsulate a vector reduction expression More...

Detailed Description

template<typename exp1>
class vector_dist_expression_op< exp1, void, VECT_SUM_REDUCE >

expression that encapsulate a vector reduction expression

Template Parameters
exp1expression 1
vector_typetype of vector on which the expression is acting

Definition at line 408 of file vector_dist_operators_functions.hpp.

#include <vector_dist_operators_functions.hpp>

Public Types

typedef exp1::is_ker is_ker
 Indicate if it is an in kernel expression.
 
typedef vector_result< typenameexp1::vtype, void >::type vtype
 return the vector type on which this expression operate
 
typedef vector_is_sort_result< exp1::is_sort::value, false >::type is_sort
 result for is sort
 
typedef nn_type_result< typenameexp1::NN_type, void >::type NN_type
 NN_type.
 

Public Member Functions

 vector_dist_expression_op (const exp1 &o1)
 constructor from an epxression exp1 and a vector vd
 
void init () const
 sum reduction require initialization where we calculate the reduction
 
NN_typegetNN () const
 get the NN object
 
std::remove_reference< rtype >::type get ()
 it return the result of the expression
 
template<typename r_type = typename std::remove_reference<rtype>::type>
__device__ __host__ r_type value (const vect_dist_key_dx &key) const
 it return the result of the expression (precalculated before)
 
vtypegetVector ()
 Return the vector on which is acting.
 
const vtypegetVector () const
 Return the vector on which is acting.
 

Private Types

typedef apply_kernel_rtype< decltype(o1.value(vect_dist_key_dx()))>::rtype rtype
 return type of this expression
 

Private Attributes

const exp1 o1
 expression on which apply the reduction
 
std::remove_reference< rtype >::type val
 return type of the calculated value (without reference)
 

Member Typedef Documentation

◆ is_ker

template<typename exp1 >
typedef exp1::is_ker vector_dist_expression_op< exp1, void, VECT_SUM_REDUCE >::is_ker

Indicate if it is an in kernel expression.

Definition at line 423 of file vector_dist_operators_functions.hpp.

◆ is_sort

template<typename exp1 >
typedef vector_is_sort_result<exp1::is_sort::value,false>::type vector_dist_expression_op< exp1, void, VECT_SUM_REDUCE >::is_sort

result for is sort

Definition at line 429 of file vector_dist_operators_functions.hpp.

◆ NN_type

template<typename exp1 >
typedef nn_type_result<typenameexp1::NN_type,void>::type vector_dist_expression_op< exp1, void, VECT_SUM_REDUCE >::NN_type

NN_type.

Definition at line 432 of file vector_dist_operators_functions.hpp.

◆ rtype

template<typename exp1 >
typedef apply_kernel_rtype<decltype(o1.value(vect_dist_key_dx()))>::rtype vector_dist_expression_op< exp1, void, VECT_SUM_REDUCE >::rtype
private

return type of this expression

Definition at line 415 of file vector_dist_operators_functions.hpp.

◆ vtype

template<typename exp1 >
typedef vector_result<typenameexp1::vtype,void>::type vector_dist_expression_op< exp1, void, VECT_SUM_REDUCE >::vtype

return the vector type on which this expression operate

Definition at line 426 of file vector_dist_operators_functions.hpp.

Constructor & Destructor Documentation

◆ vector_dist_expression_op()

template<typename exp1 >
vector_dist_expression_op< exp1, void, VECT_SUM_REDUCE >::vector_dist_expression_op ( const exp1 &  o1)
inline

constructor from an epxression exp1 and a vector vd

Definition at line 435 of file vector_dist_operators_functions.hpp.

Member Function Documentation

◆ get()

template<typename exp1 >
std::remove_reference< rtype >::type vector_dist_expression_op< exp1, void, VECT_SUM_REDUCE >::get ( )
inline

it return the result of the expression

Definition at line 457 of file vector_dist_operators_functions.hpp.

◆ getNN()

template<typename exp1 >
NN_type * vector_dist_expression_op< exp1, void, VECT_SUM_REDUCE >::getNN ( ) const
inline

get the NN object

Returns
the NN object

Definition at line 451 of file vector_dist_operators_functions.hpp.

◆ getVector() [1/2]

template<typename exp1 >
vtype & vector_dist_expression_op< exp1, void, VECT_SUM_REDUCE >::getVector ( )
inline

Return the vector on which is acting.

It return the vector used in getVExpr, to get this object

Returns
the vector

Definition at line 477 of file vector_dist_operators_functions.hpp.

◆ getVector() [2/2]

template<typename exp1 >
const vtype & vector_dist_expression_op< exp1, void, VECT_SUM_REDUCE >::getVector ( ) const
inline

Return the vector on which is acting.

It return the vector used in getVExpr, to get this object

Returns
the vector

Definition at line 489 of file vector_dist_operators_functions.hpp.

◆ init()

template<typename exp1 >
void vector_dist_expression_op< exp1, void, VECT_SUM_REDUCE >::init ( ) const
inline

sum reduction require initialization where we calculate the reduction

Definition at line 441 of file vector_dist_operators_functions.hpp.

◆ value()

template<typename exp1 >
template<typename r_type = typename std::remove_reference<rtype>::type>
__device__ __host__ r_type vector_dist_expression_op< exp1, void, VECT_SUM_REDUCE >::value ( const vect_dist_key_dx key) const
inline

it return the result of the expression (precalculated before)

Definition at line 465 of file vector_dist_operators_functions.hpp.

Field Documentation

◆ o1

template<typename exp1 >
const exp1 vector_dist_expression_op< exp1, void, VECT_SUM_REDUCE >::o1
private

expression on which apply the reduction

Definition at line 412 of file vector_dist_operators_functions.hpp.

◆ val

template<typename exp1 >
std::remove_reference<rtype>::type vector_dist_expression_op< exp1, void, VECT_SUM_REDUCE >::val
mutableprivate

return type of the calculated value (without reference)

Definition at line 418 of file vector_dist_operators_functions.hpp.


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