QDP++
qdp_parscalar_specific.h File Reference

Outer lattice routines specific to a parallel platform with scalar layout. More...

#include "qmp.h"
#include "qdp_dispatch.h"

Go to the source code of this file.

Classes

struct  QDP::u_arg< T, T1, Op, RHS >
 user argument for the evaluate function: More...
struct  QDP::user_arg< T, T1, Op, RHS >
 user argument for the evaluate function: More...
struct  QDP::FnMap
class  QDP::Map
 General permutation map class for communications. More...
class  QDP::ArrayMap
 Array of general permutation map class for communications. More...
class  QDP::BiDirectionalMap
 BiDirectional of general permutation map class for communications. More...
class  QDP::ArrayBiDirectionalMap
 ArrayBiDirectional of general permutation map class for communications. More...

Namespaces

namespace  QDP
 Yet another random number generator.
namespace  QDP::Layout
 Layout namespace holding info on problem size and machine info.
namespace  QDP::QDPInternal
namespace  QDP::QDP
namespace  QDP::RNG
 Random number generator namespace.
namespace  QDP::LatticeTimeSliceIO

Macros

#define QDP_DISPATCH_H
#define QDPXX_MESSAGE(s)
#define QDP_CONFIG_H

Functions

LatticeInteger QDP::Layout::latticeCoordinate (int mu)
 coord[mu] <- mu : fill with lattice coord in mu direction
void QDP::QDPInternal::route (void *buffer, int srce_node, int dest_node, int count)
 Route to another node (blocking).
void QDP::QDPInternal::wait (int dir)
 Wait on send-receive.
void QDP::QDPInternal::sendToWait (void *send_buf, int dest_node, int count)
 Send to another node (wait).
void QDP::QDPInternal::recvFromWait (void *recv_buf, int srce_node, int count)
 Receive from another node (wait).
template<class T>
void QDP::QDPInternal::sendToPrimaryNode (T &dest, int srcnode)
 Via some mechanism, get the dest to node 0.
void QDP::QDPInternal::sumAnUnsigned (void *inout, void *in)
 Unsigned accumulate.
void QDP::QDPInternal::globalSumArray (unsigned int *dest, int len)
 Wrapper to get a functional unsigned global sum.
void QDP::QDPInternal::globalSumArray (int *dest, int len)
 Low level hook to QMP_global_sum.
void QDP::QDPInternal::globalSumArray (float *dest, int len)
 Low level hook to QMP_global_sum.
void QDP::QDPInternal::globalSumArray (double *dest, int len)
 Low level hook to QMP_global_sum.
template<class T>
void QDP::QDPInternal::globalSumArray (multi1d< T > &dest)
 Global sum on a multi1d.
template<class T>
void QDP::QDPInternal::globalSumArray (multi2d< T > &dest)
 Global sum on a multi2d.
template<class T>
void QDP::QDPInternal::globalSum (T &dest)
 Sum across all nodes.
template<>
void QDP::QDPInternal::globalSum (double &dest)
void QDP::QDPInternal::globalMaxValue (float *dest)
 Low level hook to QMP_max_double.
void QDP::QDPInternal::globalMaxValue (double *dest)
 Low level hook to QMP_max_double.
template<class T>
void QDP::QDPInternal::globalMax (T &dest)
 Global max across all nodes.
void QDP::QDPInternal::globalMinValue (float *dest)
 Low level hook to QMP_min_float.
void QDP::QDPInternal::globalMinValue (double *dest)
 Low level hook to QMP_min_double.
template<class T>
void QDP::QDPInternal::globalMin (T &dest)
 Global min across all nodes.
void QDP::QDPInternal::globalCheckAnd (void *inout, void *in)
 Global And.
void QDP::QDPInternal::globalAnd (bool &dest)
 Wrapper to get a functional global And.
void QDP::QDPInternal::globalCheckOr (void *inout, void *in)
 Global Or.
void QDP::QDPInternal::globalOr (bool &dest)
 Wrapper to get a functional global Or.
template<class T>
void QDP::QDPInternal::broadcast (T &dest)
 Broadcast from primary node to all other nodes.
void QDP::QDPInternal::broadcast_str (std::string &result)
 Broadcast a string from primary node to all other nodes.
void QDP::QDPInternal::broadcast (void *dest, size_t nbytes)
 Broadcast from primary node to all other nodes.
template<>
void QDP::QDPInternal::broadcast (std::string &dest)
 Broadcast a string from primary node to all other nodes.
template<class T, class T1, class Op, class RHS>
void QDP::ev_userfunc (int lo, int hi, int myId, u_arg< T, T1, Op, RHS > *a)
 user function for the evaluate function:
template<class T, class T1, class Op, class RHS>
void QDP::evaluate_userfunc (int lo, int hi, int myId, user_arg< T, T1, Op, RHS > *a)
 user function for the evaluate function:
static const char *const QDP::QDP_PACKAGE (PACKAGE)
static const char *const QDP::QDP_PACKAGE_BUGREPORT (PACKAGE_BUGREPORT)
static const char *const QDP::QDP_PACKAGE_NAME (PACKAGE_NAME)
static const char *const QDP::QDP_PACKAGE_STRING (PACKAGE_STRING)
static const char *const QDP::QDP_PACKAGE_TARNAME (PACKAGE_TARNAME)
static const char *const QDP::QDP_PACKAGE_VERSION (PACKAGE_VERSION)
static const char *const QDP::QDP_VERSION (VERSION)
int QDP::QDP::qdpNumThreads ()
int QDP::QDP::qdpThreadNum ()
template<class Arg>
void QDP::QDP::dispatch_to_threads (int numSiteTable, Arg a, void(*func)(int, int, int, Arg *))
template<class T, class T1, class Op, class RHS>
void QDP::evaluate (OLattice< T > &dest, const Op &op, const QDPExpr< RHS, OScalar< T1 > > &rhs, const Subset &s)
 OLattice Op Scalar(Expression(source)) under an Subset.
template<class T, class T1, class Op, class RHS>
void QDP::evaluate (OLattice< T > &dest, const Op &op, const QDPExpr< RHS, OLattice< T1 > > &rhs, const Subset &s)
 OLattice Op OLattice(Expression(source)) under an Subset.
template<class T, class T1, class Op, class RHS>
void QDP::evaluate_F (T *dest, const Op &op, const QDPExpr< RHS, OLattice< T1 > > &rhs, const Subset &s)
template<class T1, class T2>
void QDP::copymask (OSubLattice< T2 > d, const OLattice< T1 > &mask, const OLattice< T2 > &s1)
 dest = (mask) ? s1 : dest
template<class T1, class T2>
void QDP::copymask (OLattice< T2 > &dest, const OLattice< T1 > &mask, const OLattice< T2 > &s1)
 dest = (mask) ? s1 : dest
template<class T>
void QDP::random (OScalar< T > &d)
 dest = random
template<class T>
void QDP::random (OLattice< T > &d, const Subset &s)
 dest = random under a subset
template<class T>
void QDP::random (OSubLattice< T > dd)
 dest = random under a subset
template<class T>
void QDP::random (OLattice< T > &d)
 dest = random
template<class T>
void QDP::gaussian (OLattice< T > &d, const Subset &s)
 dest = gaussian under a subset
template<class T>
void QDP::gaussian (OSubLattice< T > dd)
 dest = gaussian under a subset
template<class T>
void QDP::gaussian (OLattice< T > &d)
 dest = gaussian
template<class T>
void QDP::zero_rep (OLattice< T > &dest, const Subset &s)
 dest = 0
template<class T>
void QDP::zero_rep (OLattice< T > &dest)
 dest = 0
template<class RHS, class T>
UnaryReturn< OScalar< T >, FnSum >::Type_t QDP::sum (const QDPExpr< RHS, OScalar< T > > &s1, const Subset &s)
 OScalar = sum(OScalar) under an explicit subset.
template<class RHS, class T>
UnaryReturn< OScalar< T >, FnSum >::Type_t QDP::sum (const QDPExpr< RHS, OScalar< T > > &s1)
 OScalar = sum(OScalar).
template<class RHS, class T>
UnaryReturn< OLattice< T >, FnSum >::Type_t QDP::sum (const QDPExpr< RHS, OLattice< T > > &s1, const Subset &s)
 OScalar = sum(OLattice) under an explicit subset.
template<class RHS, class T>
UnaryReturn< OLattice< T >, FnSum >::Type_t QDP::sum (const QDPExpr< RHS, OLattice< T > > &s1)
 OScalar = sum(OLattice).
template<class RHS, class T>
UnaryReturn< OScalar< T >, FnSumMulti >::Type_t QDP::sumMulti (const QDPExpr< RHS, OScalar< T > > &s1, const Set &ss)
 multi1d<OScalar> dest = sumMulti(OScalar,Set)
template<class RHS, class T>
UnaryReturn< OLattice< T >, FnSumMulti >::Type_t QDP::sumMulti (const QDPExpr< RHS, OLattice< T > > &s1, const Set &ss)
 multi1d<OScalar> dest = sumMulti(OLattice,Set)
template<class T>
multi2d< typename UnaryReturn< OScalar< T >, FnSum >::Type_tQDP::sumMulti (const multi1d< OScalar< T > > &s1, const Set &ss)
 multi2d<OScalar> dest = sumMulti(multi1d<OScalar>,Set)
template<class T>
multi2d< typename UnaryReturn< OLattice< T >, FnSum >::Type_tQDP::sumMulti (const multi1d< OLattice< T > > &s1, const Set &ss)
 multi2d<OScalar> dest = sumMulti(multi1d<OLattice>,Set)
template<class T>
UnaryReturn< OScalar< T >, FnNorm2 >::Type_t QDP::norm2 (const multi1d< OScalar< T > > &s1)
 OScalar = norm2(trace(adj(multi1d<source>)*multi1d<source>)).
template<class T>
UnaryReturn< OScalar< T >, FnNorm2 >::Type_t QDP::norm2 (const multi1d< OScalar< T > > &s1, const Subset &s)
 OScalar = sum(OScalar) under an explicit subset.
template<class T>
UnaryReturn< OLattice< T >, FnNorm2 >::Type_t QDP::norm2 (const multi1d< OLattice< T > > &s1, const Subset &s)
 OScalar = norm2(multi1d<OLattice>) under an explicit subset.
template<class T>
UnaryReturn< OLattice< T >, FnNorm2 >::Type_t QDP::norm2 (const multi1d< OLattice< T > > &s1)
 OScalar = norm2(multi1d<OLattice>).
template<class T1, class T2>
BinaryReturn< OScalar< T1 >, OScalar< T2 >, FnInnerProduct >::Type_t QDP::innerProduct (const multi1d< OScalar< T1 > > &s1, const multi1d< OScalar< T2 > > &s2)
 OScalar = innerProduct(multi1d<source1>,multi1d<source2>)).
template<class T1, class T2>
BinaryReturn< OScalar< T1 >, OScalar< T2 >, FnInnerProduct >::Type_t QDP::innerProduct (const multi1d< OScalar< T1 > > &s1, const multi1d< OScalar< T2 > > &s2, const Subset &s)
 OScalar = sum(OScalar) under an explicit subset.
template<class T1, class T2>
BinaryReturn< OLattice< T1 >, OLattice< T2 >, FnInnerProduct >::Type_t QDP::innerProduct (const multi1d< OLattice< T1 > > &s1, const multi1d< OLattice< T2 > > &s2, const Subset &s)
 OScalar = innerProduct(multi1d<OLattice>,multi1d<OLattice>) under an explicit subset.
template<class T1, class T2>
BinaryReturn< OLattice< T1 >, OLattice< T2 >, FnInnerProduct >::Type_t QDP::innerProduct (const multi1d< OLattice< T1 > > &s1, const multi1d< OLattice< T2 > > &s2)
 OScalar = innerProduct(multi1d<OLattice>,multi1d<OLattice>).
template<class T1, class T2>
BinaryReturn< OScalar< T1 >, OScalar< T2 >, FnInnerProductReal >::Type_t QDP::innerProductReal (const multi1d< OScalar< T1 > > &s1, const multi1d< OScalar< T2 > > &s2)
 OScalar = innerProductReal(multi1d<source1>,multi1d<source2>)).
template<class T1, class T2>
BinaryReturn< OScalar< T1 >, OScalar< T2 >, FnInnerProductReal >::Type_t QDP::innerProductReal (const multi1d< OScalar< T1 > > &s1, const multi1d< OScalar< T2 > > &s2, const Subset &s)
 OScalar = sum(OScalar) under an explicit subset.
template<class T1, class T2>
BinaryReturn< OLattice< T1 >, OLattice< T2 >, FnInnerProductReal >::Type_t QDP::innerProductReal (const multi1d< OLattice< T1 > > &s1, const multi1d< OLattice< T2 > > &s2, const Subset &s)
 OScalar = innerProductReal(multi1d<OLattice>,multi1d<OLattice>) under an explicit subset.
template<class T1, class T2>
BinaryReturn< OLattice< T1 >, OLattice< T2 >, FnInnerProductReal >::Type_t QDP::innerProductReal (const multi1d< OLattice< T1 > > &s1, const multi1d< OLattice< T2 > > &s2)
 OScalar = innerProductReal(multi1d<OLattice>,multi1d<OLattice>).
template<class RHS, class T>
UnaryReturn< OScalar< T >, FnGlobalMax >::Type_t QDP::globalMax (const QDPExpr< RHS, OScalar< T > > &s1)
 OScalar = globalMax(OScalar).
template<class RHS, class T>
UnaryReturn< OLattice< T >, FnGlobalMax >::Type_t QDP::globalMax (const QDPExpr< RHS, OLattice< T > > &s1)
 OScalar = globalMax(OLattice).
template<class RHS, class T>
UnaryReturn< OScalar< T >, FnGlobalMin >::Type_t QDP::globalMin (const QDPExpr< RHS, OScalar< T > > &s1)
 OScalar = globalMin(OScalar).
template<class RHS, class T>
UnaryReturn< OLattice< T >, FnGlobalMin >::Type_t QDP::globalMin (const QDPExpr< RHS, OLattice< T > > &s1)
 OScalar = globalMin(OLattice).
template<class T>
bool QDP::isnan (const QDPType< T, OScalar< T > > &s1)
 bool = isnan(OScalar)
template<class T>
bool QDP::isnan (const OLattice< T > &s1)
 bool = isnan(OLattice)
template<class T>
bool QDP::isinf (const QDPType< T, OScalar< T > > &s1)
 bool = isinf(OScalar)
template<class T>
bool QDP::isinf (const OLattice< T > &s1)
 bool = isinf(OLattice)
template<class T>
bool QDP::isfinite (const QDPType< T, OScalar< T > > &s1)
 bool = isfinite(OScalar)
template<class T>
bool QDP::isfinite (const OLattice< T > &s1)
 bool = isfinite(OLattice)
template<class T>
bool QDP::isnormal (const QDPType< T, OScalar< T > > &s1)
 bool = isnormal(OScalar)
template<class T>
bool QDP::isnormal (const OLattice< T > &s1)
 bool = isnormal(OLattice)
template<class T>
void QDP::write (BinaryWriter &bin, const OScalar< T > &d)
 Binary output.
template<class T>
void QDP::read (BinaryReader &bin, OScalar< T > &d)
 Binary input.
multi1d< int > QDP::crtesn (int ipos, const multi1d< int > &latt_size)
 Decompose a lexicographic site into coordinates.
template<class T>
XMLWriterQDP::operator<< (XMLWriter &xml, const OLattice< T > &d)
 XML output.
void QDP::writeOLattice (BinaryWriter &bin, const char *output, size_t size, size_t nmemb)
 Write a lattice quantity.
template<class T>
void QDP::write (BinaryWriter &bin, const OLattice< T > &d)
 Binary output.
void QDP::writeOLattice (BinaryWriter &bin, const char *output, size_t size, size_t nmemb, const multi1d< int > &coord)
 Write a single site of a lattice quantity.
template<class T>
void QDP::write (BinaryWriter &bin, const OLattice< T > &d, const multi1d< int > &coord)
 Write a single site of a lattice quantity.
void QDP::writeOLattice (BinaryWriter &bin, const char *output, size_t size, size_t nmemb, const Subset &sub)
 Write a single site of a lattice quantity.
template<class T>
void QDP::write (BinaryWriter &bin, OSubLattice< T > dd)
 Write a single site of a lattice quantity.
void QDP::readOLattice (BinaryReader &bin, char *input, size_t size, size_t nmemb)
 Read a lattice quantity.
template<class T>
void QDP::read (BinaryReader &bin, OLattice< T > &d)
 Binary input.
void QDP::readOLattice (BinaryReader &bin, char *input, size_t size, size_t nmemb, const multi1d< int > &coord)
 Read a single site worth of a lattice quantity.
template<class T>
void QDP::read (BinaryReader &bin, OLattice< T > &d, const multi1d< int > &coord)
 Read a single site of a lattice quantity.
void QDP::readOLattice (BinaryReader &bin, char *input, size_t size, size_t nmemb, const Subset &sub)
 Read a lattice quantity.
template<class T>
void QDP::read (BinaryReader &bin, OSubLattice< T > d)
 Read a single site of a lattice quantity.
void QDP::LatticeTimeSliceIO::readOLatticeSlice (BinaryReader &bin, char *data, size_t size, size_t nmemb, int start_lexico, int stop_lexico)
 Lattice time slice reader.
void QDP::LatticeTimeSliceIO::writeOLatticeSlice (BinaryWriter &bin, const char *output, size_t size, size_t nmemb, int start_lexico, int stop_lexico)
template<class T>
void QDP::LatticeTimeSliceIO::readSlice (BinaryReader &bin, OLattice< T > &data, int start_lexico, int stop_lexico)
template<class T>
void QDP::LatticeTimeSliceIO::writeSlice (BinaryWriter &bin, const OLattice< T > &data, int start_lexico, int stop_lexico)

Detailed Description

Outer lattice routines specific to a parallel platform with scalar layout.

Definition in file qdp_parscalar_specific.h.

Macro Definition Documentation

◆ QDP_CONFIG_H

#define QDP_CONFIG_H

◆ QDP_DISPATCH_H

#define QDP_DISPATCH_H

◆ QDPXX_MESSAGE

#define QDPXX_MESSAGE ( s)