OpenFPM_pdata  4.1.0
Project that contain the implementation of distributed structures
vector_dist_expression_op< exp1, boost::mpl::int_< n >, VECT_COMP > Class Template Reference

it take an expression and create the negatove of this expression More...

Detailed Description

template<typename exp1, int n>
class vector_dist_expression_op< exp1, boost::mpl::int_< n >, VECT_COMP >

it take an expression and create the negatove of this expression

Definition at line 1424 of file vector_dist_operators.hpp.

#include <vector_dist_operators.hpp>

Public Types

typedef std::false_type is_ker
 
typedef boost::mpl::bool_< false > is_sort
 result for is sort
 
typedef boost::mpl::bool_< false > NN_type
 result for is sort
 
typedef exp1::vtype vtype
 
typedef pos_or_propL< vtype, exp1::prop >::property_act property_act
 property on which this view is acting
 

Public Member Functions

 vector_dist_expression_op (const exp1 &o1, int(&comp)[n], int var_id)
 constructor from an expresssion
 
__device__ __host__ const vtype & getVector () const
 Return the vector on which is acting. More...
 
__device__ __host__ vtype & getVector ()
 Return the vector on which is acting. More...
 
void init () const
 initialize the expression tree
 
__host__ __device__ auto value (const vect_dist_key_dx &key) const -> decltype(get_vector_dist_expression_op< n, n==rank_gen< property_act >::type::value >::get(o1, vect_dist_key_dx(0), comp))
 Return the result of the expression. More...
 
__host__ __device__ auto value (const vect_dist_key_dx &key) -> decltype(get_vector_dist_expression_op< n, n==rank_gen< property_act >::type::value >::get(o1, vect_dist_key_dx(0), comp))
 Return the result of the expression. More...
 
auto get (const vect_dist_key_dx &key) const -> decltype(value(key))
 Return the result of the expression. More...
 
template<typename Sys_eqs , typename pmap_type , typename unordered_map_type , typename coeff_type >
void value_nz (pmap_type &p_map, const vect_dist_key_dx &key, unordered_map_type &cols, coeff_type &coeff, unsigned int comp_) const
 
vector_dist_expression_op< exp1, boost::mpl::int_< 2 >, VECT_COMP > operator[] (int comp_)
 
template<typename T >
vtype & operator= (const vector_dist_expression< 0, openfpm::vector< aggregate< T >>> &v_exp)
 Fill the vector property with the evaluated expression. More...
 
template<unsigned int prp2>
vtype & operator= (const vector_dist_expression< prp2, vtype > &v_exp)
 Fill the vector property with the evaluated expression. More...
 
template<typename exp1_ , typename exp2_ , unsigned int op>
vtype & operator= (const vector_dist_expression_op< exp1_, exp2_, op > &v_exp)
 Fill the vector property with the evaluated expression. More...
 
vtype & operator= (double d)
 Fill the vector property with the double. More...
 

Private Types

typedef vector_dist_expression_op< exp1, boost::mpl::int_< n >, VECT_COMP > myself
 

Private Member Functions

void setVarId (int var_id)
 

Private Attributes

exp1 o1
 expression 1
 
int comp [n]
 component
 
int var_id = 0
 

Member Function Documentation

◆ get()

template<typename exp1 , int n>
auto vector_dist_expression_op< exp1, boost::mpl::int_< n >, VECT_COMP >::get ( const vect_dist_key_dx key) const -> decltype(value(key))
inline

Return the result of the expression.

Note
this function must be deactivated on transitional objects. Suppose we are slicing a tensor of rank 2 an object of rank 1 is implicitly created for such object we have to deactivate this function because ill-formed
Parameters
keypoint where to evaluate

Definition at line 1535 of file vector_dist_operators.hpp.

◆ getVector() [1/2]

template<typename exp1 , int n>
__device__ __host__ const vtype& vector_dist_expression_op< exp1, boost::mpl::int_< n >, VECT_COMP >::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 1468 of file vector_dist_operators.hpp.

◆ getVector() [2/2]

template<typename exp1 , int n>
__device__ __host__ vtype& vector_dist_expression_op< exp1, boost::mpl::int_< n >, VECT_COMP >::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 1480 of file vector_dist_operators.hpp.

◆ operator=() [1/4]

template<typename exp1 , int n>
template<typename T >
vtype& vector_dist_expression_op< exp1, boost::mpl::int_< n >, VECT_COMP >::operator= ( const vector_dist_expression< 0, openfpm::vector< aggregate< T >>> &  v_exp)
inline

Fill the vector property with the evaluated expression.

Parameters
v_expexpression to evaluate
Returns
itself

Definition at line 1575 of file vector_dist_operators.hpp.

◆ operator=() [2/4]

template<typename exp1 , int n>
template<unsigned int prp2>
vtype& vector_dist_expression_op< exp1, boost::mpl::int_< n >, VECT_COMP >::operator= ( const vector_dist_expression< prp2, vtype > &  v_exp)
inline

Fill the vector property with the evaluated expression.

Parameters
v_expexpression to evaluate
Returns
itself

Definition at line 1608 of file vector_dist_operators.hpp.

◆ operator=() [3/4]

template<typename exp1 , int n>
template<typename exp1_ , typename exp2_ , unsigned int op>
vtype& vector_dist_expression_op< exp1, boost::mpl::int_< n >, VECT_COMP >::operator= ( const vector_dist_expression_op< exp1_, exp2_, op > &  v_exp)
inline

Fill the vector property with the evaluated expression.

Parameters
v_expexpression to evaluate
Returns
itself

Definition at line 1640 of file vector_dist_operators.hpp.

◆ operator=() [4/4]

template<typename exp1 , int n>
vtype& vector_dist_expression_op< exp1, boost::mpl::int_< n >, VECT_COMP >::operator= ( double  d)
inline

Fill the vector property with the double.

Parameters
dvalue to fill
Returns
the internal vector

Definition at line 1671 of file vector_dist_operators.hpp.

◆ value() [1/2]

template<typename exp1 , int n>
__host__ __device__ auto vector_dist_expression_op< exp1, boost::mpl::int_< n >, VECT_COMP >::value ( const vect_dist_key_dx key) const -> decltype(get_vector_dist_expression_op<n,n == rank_gen<property_act>::type::value>::get(o1,vect_dist_key_dx(0),comp))
inline

Return the result of the expression.

Note
this function must be deactivated on transitional objects. Suppose we are slicing a tensor of rank 2 an object of rank 1 is implicitly created for such object we have to deactivate this function because ill-formed
Parameters
keypoint where to evaluate

Definition at line 1505 of file vector_dist_operators.hpp.

◆ value() [2/2]

template<typename exp1 , int n>
__host__ __device__ auto vector_dist_expression_op< exp1, boost::mpl::int_< n >, VECT_COMP >::value ( const vect_dist_key_dx key) -> decltype(get_vector_dist_expression_op<n,n == rank_gen<property_act>::type::value>::get(o1,vect_dist_key_dx(0),comp))
inline

Return the result of the expression.

Note
this function must be deactivated on transitional objects. Suppose we are slicing a tensor of rank 2 an object of rank 1 is implicitly created for such object we have to deactivate this function because ill-formed
Parameters
keypoint where to evaluate

Definition at line 1520 of file vector_dist_operators.hpp.


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