QDP++
QDP::ArrayBiDirectionalMap Class Reference

ArrayBiDirectional of general permutation map class for communications. More...

#include <qdp_parscalar_specific.h>

Public Member Functions

 ArrayBiDirectionalMap ()
 Constructor - does nothing really.
 ~ArrayBiDirectionalMap ()
 Destructor.
 ArrayBiDirectionalMap (const ArrayMapFunc &fn)
 Constructor from a function object.
void make (const ArrayMapFunc &func)
 Actual constructor from a function object.
template<class T1>
OLattice< T1 > operator() (const OLattice< T1 > &l, int isign, int dir)
 Function call operator for a shift.
template<class T1>
OScalar< T1 > operator() (const OScalar< T1 > &l, int isign, int dir)
template<class RHS, class T1>
OScalar< T1 > operator() (const QDPExpr< RHS, OScalar< T1 > > &l, int isign, int dir)
template<class RHS, class T1>
OLattice< T1 > operator() (const QDPExpr< RHS, OLattice< T1 > > &l, int isign, int dir)
 ArrayBiDirectionalMap ()
 Constructor - does nothing really.
 ~ArrayBiDirectionalMap ()
 Destructor.
 ArrayBiDirectionalMap (const ArrayMapFunc &fn)
 Constructor from a function object.
void make (const ArrayMapFunc &func)
 Actual constructor from a function object.
template<class T1>
OLattice< T1 > operator() (const OLattice< T1 > &l, int isign, int dir)
 Function call operator for a shift.
template<class T1>
OScalar< T1 > operator() (const OScalar< T1 > &l, int isign, int dir)
template<class RHS, class T1>
OScalar< T1 > operator() (const QDPExpr< RHS, OScalar< T1 > > &l, int isign, int dir)
template<class RHS, class T1>
OLattice< T1 > operator() (const QDPExpr< RHS, OLattice< T1 > > &l, int isign, int dir)
 ArrayBiDirectionalMap ()
 Constructor - does nothing really.
 ~ArrayBiDirectionalMap ()
 Destructor.
 ArrayBiDirectionalMap (const ArrayMapFunc &fn)
 Constructor from a function object.
void make (const ArrayMapFunc &func)
 Actual constructor from a function object.
template<class T1, class C1>
MakeReturn< UnaryNode< FnMap, typenameCreateLeaf< QDPType< T1, C1 > >::Leaf_t >, C1 >::Expression_t operator() (const QDPType< T1, C1 > &l, int isign, int dir)
 Function call operator for a shift.
template<class T1, class C1>
MakeReturn< UnaryNode< FnMap, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, C1 >::Expression_t operator() (const QDPExpr< T1, C1 > &l, int isign, int dir)
 ArrayBiDirectionalMap ()
 Constructor - does nothing really.
 ~ArrayBiDirectionalMap ()
 Destructor.
 ArrayBiDirectionalMap (const ArrayMapFunc &fn)
 Constructor from a function object.
void make (const ArrayMapFunc &func)
 Actual constructor from a function object.
template<class T1>
OLattice< T1 > operator() (const OLattice< T1 > &l, int isign, int dir)
 Function call operator for a shift.
template<class T1>
OScalar< T1 > operator() (const OScalar< T1 > &l, int isign, int dir)
template<class RHS, class T1>
OScalar< T1 > operator() (const QDPExpr< RHS, OScalar< T1 > > &l, int isign, int dir)
template<class RHS, class T1>
OLattice< T1 > operator() (const QDPExpr< RHS, OLattice< T1 > > &l, int isign, int dir)

Detailed Description

ArrayBiDirectional of general permutation map class for communications.

Bi-directional version of general permutation map class for communications.

Definition at line 2368 of file qdp_parscalar_specific.h.

Constructor & Destructor Documentation

◆ ArrayBiDirectionalMap() [1/8]

QDP::ArrayBiDirectionalMap::ArrayBiDirectionalMap ( )
inline

Constructor - does nothing really.

Definition at line 2372 of file qdp_parscalar_specific.h.

◆ ~ArrayBiDirectionalMap() [1/4]

QDP::ArrayBiDirectionalMap::~ArrayBiDirectionalMap ( )
inline

Destructor.

Definition at line 2375 of file qdp_parscalar_specific.h.

◆ ArrayBiDirectionalMap() [2/8]

QDP::ArrayBiDirectionalMap::ArrayBiDirectionalMap ( const ArrayMapFunc & fn)
inline

Constructor from a function object.

Definition at line 2378 of file qdp_parscalar_specific.h.

References make().

◆ ArrayBiDirectionalMap() [3/8]

QDP::ArrayBiDirectionalMap::ArrayBiDirectionalMap ( )
inline

Constructor - does nothing really.

Definition at line 1483 of file qdp_parscalarvec_specific.h.

◆ ~ArrayBiDirectionalMap() [2/4]

QDP::ArrayBiDirectionalMap::~ArrayBiDirectionalMap ( )
inline

Destructor.

Definition at line 1486 of file qdp_parscalarvec_specific.h.

◆ ArrayBiDirectionalMap() [4/8]

QDP::ArrayBiDirectionalMap::ArrayBiDirectionalMap ( const ArrayMapFunc & fn)
inline

Constructor from a function object.

Definition at line 1489 of file qdp_parscalarvec_specific.h.

References make().

◆ ArrayBiDirectionalMap() [5/8]

QDP::ArrayBiDirectionalMap::ArrayBiDirectionalMap ( )
inline

Constructor - does nothing really.

Definition at line 1988 of file qdp_scalar_specific.h.

◆ ~ArrayBiDirectionalMap() [3/4]

QDP::ArrayBiDirectionalMap::~ArrayBiDirectionalMap ( )
inline

Destructor.

Definition at line 1991 of file qdp_scalar_specific.h.

◆ ArrayBiDirectionalMap() [6/8]

QDP::ArrayBiDirectionalMap::ArrayBiDirectionalMap ( const ArrayMapFunc & fn)
inline

Constructor from a function object.

Definition at line 1994 of file qdp_scalar_specific.h.

References make().

◆ ArrayBiDirectionalMap() [7/8]

QDP::ArrayBiDirectionalMap::ArrayBiDirectionalMap ( )
inline

Constructor - does nothing really.

Definition at line 1189 of file qdp_scalarvec_specific.h.

◆ ~ArrayBiDirectionalMap() [4/4]

QDP::ArrayBiDirectionalMap::~ArrayBiDirectionalMap ( )
inline

Destructor.

Definition at line 1192 of file qdp_scalarvec_specific.h.

◆ ArrayBiDirectionalMap() [8/8]

QDP::ArrayBiDirectionalMap::ArrayBiDirectionalMap ( const ArrayMapFunc & fn)
inline

Constructor from a function object.

Definition at line 1195 of file qdp_scalarvec_specific.h.

References make().

Member Function Documentation

◆ make() [1/4]

void QDP::ArrayBiDirectionalMap::make ( const ArrayMapFunc & func)

Actual constructor from a function object.

Initializer for an array of bi-directional maps.

The semantics are source_site = func(dest_site,isign,dir)

Definition at line 153 of file qdp_map.cc.

References QDP::ArrayMapFunc::numArray().

Referenced by ArrayBiDirectionalMap(), operator()(), and operator()().

◆ make() [2/4]

void QDP::ArrayBiDirectionalMap::make ( const ArrayMapFunc & func)

Actual constructor from a function object.

The semantics are source_site = func(dest_site,isign,dir)

◆ make() [3/4]

void QDP::ArrayBiDirectionalMap::make ( const ArrayMapFunc & func)

Actual constructor from a function object.

The semantics are source_site = func(dest_site,sign)

◆ make() [4/4]

void QDP::ArrayBiDirectionalMap::make ( const ArrayMapFunc & func)

Actual constructor from a function object.

The semantics are source_site = func(dest_site,isign,dir)

◆ operator()() [1/14]

template<class T1>
OLattice< T1 > QDP::ArrayBiDirectionalMap::operator() ( const OLattice< T1 > & l,
int isign,
int dir )
inline

Function call operator for a shift.

Implements: dest(x) = source(map(x,isign,dir))

Syntax: map(source,isign,dir)

isign = parity of direction (+1 or -1) dir = array index (could be direction in range [0,...,Nd-1])

Implements: dest(x) = s1(x+isign*dir) There are cpp macros called FORWARD and BACKWARD that are +1,-1 resp. that are often used as arguments

Shifts on a OLattice are non-trivial. Notice, there may be an ILattice underneath which requires shift args. This routine is very architecture dependent.

Definition at line 2404 of file qdp_parscalar_specific.h.

References QDP::QDP_info().

◆ operator()() [2/14]

template<class T1>
OLattice< T1 > QDP::ArrayBiDirectionalMap::operator() ( const OLattice< T1 > & l,
int isign,
int dir )
inline

Function call operator for a shift.

Implements: dest(x) = source(map(x,isign,dir))

Syntax: map(source,isign,dir)

isign = parity of direction (+1 or -1) dir = array index (could be direction in range [0,...,Nd-1])

Implements: dest(x) = s1(x+isign*dir) There are cpp macros called FORWARD and BACKWARD that are +1,-1 resp. that are often used as arguments

Shifts on a OLattice are non-trivial. Notice, there may be an ILattice underneath which requires shift args. This routine is very architecture dependent.

Definition at line 1515 of file qdp_parscalarvec_specific.h.

References QDP::QDP_info().

◆ operator()() [3/14]

template<class T1>
OLattice< T1 > QDP::ArrayBiDirectionalMap::operator() ( const OLattice< T1 > & l,
int isign,
int dir )
inline

Function call operator for a shift.

Implements: dest(x) = source(map(x,isign,dir))

Syntax: map(source,isign,dir)

isign = parity of direction (+1 or -1) dir = array index (could be direction in range [0,...,Nd-1])

Implements: dest(x) = s1(x+isign*dir) There are cpp macros called FORWARD and BACKWARD that are +1,-1 resp. that are often used as arguments

Shifts on a OLattice are non-trivial. Notice, there may be an ILattice underneath which requires shift args. This routine is very architecture dependent.

Definition at line 1221 of file qdp_scalarvec_specific.h.

References QDP::QDP_info().

◆ operator()() [4/14]

template<class T1>
OScalar< T1 > QDP::ArrayBiDirectionalMap::operator() ( const OScalar< T1 > & l,
int isign,
int dir )
inline

Definition at line 2415 of file qdp_parscalar_specific.h.

References QDP::QDP_info().

◆ operator()() [5/14]

template<class T1>
OScalar< T1 > QDP::ArrayBiDirectionalMap::operator() ( const OScalar< T1 > & l,
int isign,
int dir )
inline

Definition at line 1526 of file qdp_parscalarvec_specific.h.

References QDP::QDP_info().

◆ operator()() [6/14]

template<class T1>
OScalar< T1 > QDP::ArrayBiDirectionalMap::operator() ( const OScalar< T1 > & l,
int isign,
int dir )
inline

Definition at line 1232 of file qdp_scalarvec_specific.h.

References QDP::QDP_info().

◆ operator()() [7/14]

template<class RHS, class T1>
OLattice< T1 > QDP::ArrayBiDirectionalMap::operator() ( const QDPExpr< RHS, OLattice< T1 > > & l,
int isign,
int dir )
inline

Definition at line 2437 of file qdp_parscalar_specific.h.

◆ operator()() [8/14]

template<class RHS, class T1>
OLattice< T1 > QDP::ArrayBiDirectionalMap::operator() ( const QDPExpr< RHS, OLattice< T1 > > & l,
int isign,
int dir )
inline

Definition at line 1548 of file qdp_parscalarvec_specific.h.

◆ operator()() [9/14]

template<class RHS, class T1>
OLattice< T1 > QDP::ArrayBiDirectionalMap::operator() ( const QDPExpr< RHS, OLattice< T1 > > & l,
int isign,
int dir )
inline

Definition at line 1254 of file qdp_scalarvec_specific.h.

◆ operator()() [10/14]

template<class RHS, class T1>
OScalar< T1 > QDP::ArrayBiDirectionalMap::operator() ( const QDPExpr< RHS, OScalar< T1 > > & l,
int isign,
int dir )
inline

Definition at line 2427 of file qdp_parscalar_specific.h.

◆ operator()() [11/14]

template<class RHS, class T1>
OScalar< T1 > QDP::ArrayBiDirectionalMap::operator() ( const QDPExpr< RHS, OScalar< T1 > > & l,
int isign,
int dir )
inline

Definition at line 1538 of file qdp_parscalarvec_specific.h.

◆ operator()() [12/14]

template<class RHS, class T1>
OScalar< T1 > QDP::ArrayBiDirectionalMap::operator() ( const QDPExpr< RHS, OScalar< T1 > > & l,
int isign,
int dir )
inline

Definition at line 1244 of file qdp_scalarvec_specific.h.

◆ operator()() [13/14]

template<class T1, class C1>
MakeReturn< UnaryNode< FnMap, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, C1 >::Expression_t QDP::ArrayBiDirectionalMap::operator() ( const QDPExpr< T1, C1 > & l,
int isign,
int dir )
inline

Definition at line 2025 of file qdp_scalar_specific.h.

References make(), and QDP::MakeReturn< T, C >::make().

◆ operator()() [14/14]

template<class T1, class C1>
MakeReturn< UnaryNode< FnMap, typenameCreateLeaf< QDPType< T1, C1 > >::Leaf_t >, C1 >::Expression_t QDP::ArrayBiDirectionalMap::operator() ( const QDPType< T1, C1 > & l,
int isign,
int dir )
inline

Function call operator for a shift.

map(source,isign,dir)

Implements: dest(x) = source(map(x,isign,dir))

Shifts on a OLattice are non-trivial. Notice, there may be an ILattice underneath which requires shift args. This routine is very architecture dependent.

Definition at line 2013 of file qdp_scalar_specific.h.

References make(), and QDP::MakeReturn< T, C >::make().


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