OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
SIndexAssign.h File Reference
Include dependency graph for SIndexAssign.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  SIExprTag< IsExpr >

Macros

#define SI_ASSIGNMENT_FUNCTIONS(FUNC, OP)
#define SI_ASSIGNMENT_OPERATORS(FUNC, OP)

Functions

template<unsigned Dim, class RHS, class OP, bool IsExpr>
void assign (SIndex< Dim > &, RHS, OP, const NDIndex< Dim > &, SIExprTag< IsExpr >)
template<unsigned Dim, class RHS>
void assign (SIndex< Dim > &lhs, const PETE_Expr< RHS > &rhs)
template<unsigned Dim, class RHS>
void assign (SIndex< Dim > &lhs, const PETE_Expr< RHS > &rhs, const NDIndex< Dim > &domain)
template<unsigned Dim, class RHS>
void operator<< (SIndex< Dim > &lhs, const PETE_Expr< RHS > &rhs)
template<unsigned Dim, class RHS>
void operator|= (SIndex< Dim > &lhs, const PETE_Expr< RHS > &rhs)
template<unsigned Dim, class RHS>
void operator&= (SIndex< Dim > &lhs, const PETE_Expr< RHS > &rhs)

Class Documentation

◆ SIExprTag

class SIExprTag
template<bool IsExpr>
class SIExprTag< IsExpr >

Definition at line 25 of file SIndexAssign.h.

Collaboration diagram for SIExprTag< IsExpr >:

Macro Definition Documentation

◆ SI_ASSIGNMENT_FUNCTIONS

#define SI_ASSIGNMENT_FUNCTIONS ( FUNC,
OP )
Value:
\
template<unsigned Dim, class RHS> \
inline void \
FUNC(SIndex<Dim>& lhs, const PETE_Expr<RHS>& rhs) \
{ \
assign(lhs, rhs.PETE_unwrap().MakeExpression(), OP(), \
lhs.getFieldLayout().getDomain(), SIExprTag<false>()); \
} \
\
template<unsigned Dim, class RHS> \
inline void \
FUNC(SIndex<Dim>& lhs, const PETE_Expr<RHS>& rhs, \
const NDIndex<Dim>& domain) \
{ \
assign(lhs, rhs.PETE_unwrap().MakeExpression(), OP(), \
domain, SIExprTag<true>()); \
}

Definition at line 39 of file SIndexAssign.h.

◆ SI_ASSIGNMENT_OPERATORS

#define SI_ASSIGNMENT_OPERATORS ( FUNC,
OP )
Value:
\
template<unsigned Dim, class RHS> \
inline void \
FUNC(SIndex<Dim>& lhs, const PETE_Expr<RHS>& rhs) \
{ \
assign(lhs, rhs.PETE_unwrap().MakeExpression(), OP(), \
lhs.getFieldLayout().getDomain(), SIExprTag<false>()); \
}

Definition at line 58 of file SIndexAssign.h.

Referenced by operator&=(), operator<<(), and operator|=().

Function Documentation

◆ assign() [1/3]

template<unsigned Dim, class RHS, class OP, bool IsExpr>
void assign ( SIndex< Dim > & ,
RHS ,
OP ,
const NDIndex< Dim > & ,
SIExprTag< IsExpr >  )

◆ assign() [2/3]

template<unsigned Dim, class RHS>
void assign ( SIndex< Dim > & lhs,
const PETE_Expr< RHS > & rhs )
inline

Definition at line 72 of file SIndexAssign.h.

References assign().

Here is the call graph for this function:

◆ assign() [3/3]

template<unsigned Dim, class RHS>
void assign ( SIndex< Dim > & lhs,
const PETE_Expr< RHS > & rhs,
const NDIndex< Dim > & domain )
inline

Definition at line 72 of file SIndexAssign.h.

◆ operator&=()

template<unsigned Dim, class RHS>
void operator&= ( SIndex< Dim > & lhs,
const PETE_Expr< RHS > & rhs )
inline

Definition at line 75 of file SIndexAssign.h.

References SI_ASSIGNMENT_OPERATORS.

◆ operator<<()

template<unsigned Dim, class RHS>
void operator<< ( SIndex< Dim > & lhs,
const PETE_Expr< RHS > & rhs )
inline

Definition at line 73 of file SIndexAssign.h.

References SI_ASSIGNMENT_OPERATORS.

◆ operator|=()

template<unsigned Dim, class RHS>
void operator|= ( SIndex< Dim > & lhs,
const PETE_Expr< RHS > & rhs )
inline

Definition at line 74 of file SIndexAssign.h.

References SI_ASSIGNMENT_OPERATORS.