FreePOOMA
2.4.1
|
The only legal use of where(a,b) is in an expression like: More...
#include <WhereProxy.h>
Classes | |
struct | WhereProxyTraits |
struct | WhereProxyTraits< Cond, Scalar< T >, F1, B1 > |
struct | WhereProxyTraits< Scalar< T >, Val, F1, B1 > |
struct | WhereProxyTraits< Scalar< T1 >, Scalar< T2 >, F1, B1 > |
Public Types | |
typedef BinaryNode< WhereMask, typename CreateLeaf< F > ::Leaf_t, typename CreateLeaf < B >::Leaf_t > | Tree_t |
typedef ExpressionTraits < Tree_t >::Type_t | ETrait_t |
typedef ConvertWhereProxy < ETrait_t, Tree_t >::Make_t | MakeFromTree_t |
typedef MakeFromTree_t::Expression_t | WhereMask_t |
typedef WhereProxyTraits < typename CreateLeaf< F > ::Leaf_t, typename CreateLeaf < B >::Leaf_t, F, B > ::Element_t | Element_t |
Public Member Functions | |
WhereProxy (const F &f, const B &b) | |
WhereMask_t | whereMask () const |
template<class Op > | |
OpMask< Op > | opMask (const Op &op) const |
const F & | flag () |
const B & | value () |
Public Attributes | |
const F & | f_m |
const B & | b_m |
The only legal use of where(a,b) is in an expression like:
A = where(f,B);
Rather than have where(f,B) return an array that could be combined in an expression, we return a WhereProxy that is recognized by assignment operators.
The WhereProxy is also necessary because the elements returned by where are MaskAssign<T> objects, so a special assignment operator, OpMask<Op> must be used.
typedef BinaryNode<WhereMask, typename CreateLeaf<F>::Leaf_t, typename CreateLeaf<B>::Leaf_t> WhereProxy< F, B >::Tree_t |
typedef ExpressionTraits<Tree_t>::Type_t WhereProxy< F, B >::ETrait_t |
typedef ConvertWhereProxy<ETrait_t,Tree_t>::Make_t WhereProxy< F, B >::MakeFromTree_t |
typedef MakeFromTree_t::Expression_t WhereProxy< F, B >::WhereMask_t |
typedef WhereProxyTraits<typename CreateLeaf<F>::Leaf_t, typename CreateLeaf<B>::Leaf_t, F, B>::Element_t WhereProxy< F, B >::Element_t |
WhereProxy< F, B >::WhereProxy | ( | const F & | f, |
const B & | b | ||
) | [inline] |
WhereMask_t WhereProxy< F, B >::whereMask | ( | ) | const [inline] |
References WhereProxy< F, B >::b_m, and WhereProxy< F, B >::f_m.
Referenced by assign(), and Reduction< MainEvaluatorTag >::evaluate().
OpMask<Op> WhereProxy< F, B >::opMask | ( | const Op & | op | ) | const [inline] |
Referenced by assign(), and Reduction< MainEvaluatorTag >::evaluate().
const F& WhereProxy< F, B >::flag | ( | ) | [inline] |
References WhereProxy< F, B >::f_m.
const B& WhereProxy< F, B >::value | ( | ) | [inline] |
References WhereProxy< F, B >::b_m.
const F& WhereProxy< F, B >::f_m |
Referenced by WhereProxy< F, B >::flag(), and WhereProxy< F, B >::whereMask().
const B& WhereProxy< F, B >::b_m |
Referenced by WhereProxy< F, B >::value(), and WhereProxy< F, B >::whereMask().