QDP++
qdp_scalarsite_sse_blas.h File Reference

Blas optimizations. More...

Go to the source code of this file.

Classes

struct  QDP::ordered_sse_vaxOpy3_user_arg
struct  QDP::unordered_sse_vaxOpy3_y_user_arg
struct  QDP::unordered_sse_vaxOpy3_z_user_arg
struct  QDP::ordered_sse_vOp_user_arg
struct  QDP::unordered_sse_vOp_y_user_arg
struct  QDP::unordered_sse_vOp_z_user_arg
struct  QDP::ordered_sse_vscal_user_arg
struct  QDP::unordered_sse_vscal_user_arg
struct  QDP::ordered_sse_vaxOpby3_user_arg
struct  QDP::unordered_sse_vaxOpby3_user_arg
struct  QDP::ordered_sse_norm_single_user_arg

Namespaces

namespace  QDP
 Yet another random number generator.
namespace  QDP::ThreadReductions

Macros

#define QDP_SCALARSITE_SSE_BLAS_WRAPPER_H
#define QDP_SCALARSITE_USE_EVALUATE

Functions

void QDP::vaxpy3 (REAL *Out, REAL *scalep, REAL *InScale, REAL *Add, int n_4vec)
void QDP::vaxmy3 (REAL *Out, REAL *scalep, REAL *InScale, REAL *Sub, int n_3vec)
void QDP::vadd (REAL *Out, REAL *In1, REAL *In2, int n_3vec)
void QDP::vsub (REAL *Out, REAL *In1, REAL *In2, int n_3vec)
void QDP::vscal (REAL *Out, REAL *scalep, REAL *In, int n_3vec)
void QDP::vaxpby3 (REAL *Out, REAL *ap, REAL *xp, REAL *bp, REAL *yp, int n_3vec)
void QDP::vaxmby3 (REAL *Out, REAL *ap, REAL *xp, REAL *bp, REAL *yp, int n_3vec)
void QDP::local_sumsq_24_48 (REAL64 *Out, REAL32 *In, int n_3vec)
void QDP::local_vcdot (REAL64 *Out_re, REAL64 *Out_im, REAL32 *V1, REAL32 *V2, int n_3vec)
void QDP::local_vcdot_real (REAL64 *Out_re, REAL32 *V1, REAL32 *V2, int n_3vec)
void QDP::ordered_sse_vaxOpy3_evaluate_function (int lo, int hi, int myId, ordered_sse_vaxOpy3_user_arg *a)
void QDP::unordered_sse_vaxOpy3_y_evaluate_function (int lo, int hi, int myId, unordered_sse_vaxOpy3_y_user_arg *a)
void QDP::unordered_sse_vaxOpy3_z_evaluate_function (int lo, int hi, int myId, unordered_sse_vaxOpy3_z_user_arg *a)
void QDP::ordered_sse_vOp_evaluate_function (int lo, int hi, int myId, ordered_sse_vOp_user_arg *a)
void QDP::unordered_sse_vOp_y_evaluate_function (int lo, int hi, int myId, unordered_sse_vOp_y_user_arg *a)
void QDP::unordered_vOp_z_evaluate_function (int lo, int hi, int myId, unordered_sse_vOp_z_user_arg *a)
void QDP::ordered_sse_vscal_evaluate_function (int lo, int hi, int myId, ordered_sse_vscal_user_arg *a)
void QDP::unordered_sse_vscal_evaluate_function (int lo, int hi, int myId, unordered_sse_vscal_user_arg *a)
void QDP::ordered_sse_vaxOpby3_evaluate_function (int lo, int hi, int myId, ordered_sse_vaxOpby3_user_arg *arg)
void QDP::unordered_sse_vaxOpby3_evaluate_function (int lo, int hi, int myId, unordered_sse_vaxOpby3_user_arg *arg)
void QDP::ordered_norm_single_func (int lo, int hi, int myId, ordered_sse_norm_single_user_arg *a)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAddAssign &op, const QDPExpr< BinaryNode< OpMultiply, Reference< QDPType< TScal, OScalar< TScal > > >, Reference< QDPType< TVec, OLattice< TVec > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpSubtractAssign &op, const QDPExpr< BinaryNode< OpMultiply, Reference< QDPType< TScal, OScalar< TScal > > >, Reference< QDPType< TVec, OLattice< TVec > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAssign &op, const QDPExpr< BinaryNode< OpAdd, BinaryNode< OpMultiply, Reference< QDPType< TScal, OScalar< TScal > > >, Reference< QDPType< TVec, OLattice< TVec > > > >, Reference< QDPType< TVec, OLattice< TVec > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAssign &op, const QDPExpr< BinaryNode< OpAdd, Reference< QDPType< TVec, OLattice< TVec > > >, BinaryNode< OpMultiply, Reference< QDPType< TScal, OScalar< TScal > > >, Reference< QDPType< TVec, OLattice< TVec > > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAssign &op, const QDPExpr< BinaryNode< OpSubtract, BinaryNode< OpMultiply, Reference< QDPType< TScal, OScalar< TScal > > >, Reference< QDPType< TVec, OLattice< TVec > > > >, Reference< QDPType< TVec, OLattice< TVec > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAssign &op, const QDPExpr< BinaryNode< OpSubtract, Reference< QDPType< TVec, OLattice< TVec > > >, BinaryNode< OpMultiply, Reference< QDPType< TScal, OScalar< TScal > > >, Reference< QDPType< TVec, OLattice< TVec > > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAddAssign &op, const QDPExpr< BinaryNode< OpMultiply, Reference< QDPType< TVec, OLattice< TVec > > >, Reference< QDPType< TScal, OScalar< TScal > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpSubtractAssign &op, const QDPExpr< BinaryNode< OpMultiply, Reference< QDPType< TVec, OLattice< TVec > > >, Reference< QDPType< TScal, OScalar< TScal > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAssign &op, const QDPExpr< BinaryNode< OpAdd, BinaryNode< OpMultiply, Reference< QDPType< TVec, OLattice< TVec > > >, Reference< QDPType< TScal, OScalar< TScal > > > >, Reference< QDPType< TVec, OLattice< TVec > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAssign &op, const QDPExpr< BinaryNode< OpAdd, Reference< QDPType< TVec, OLattice< TVec > > >, BinaryNode< OpMultiply, Reference< QDPType< TVec, OLattice< TVec > > >, Reference< QDPType< TScal, OScalar< TScal > > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAssign &op, const QDPExpr< BinaryNode< OpSubtract, BinaryNode< OpMultiply, Reference< QDPType< TVec, OLattice< TVec > > >, Reference< QDPType< TScal, OScalar< TScal > > > >, Reference< QDPType< TVec, OLattice< TVec > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAssign &op, const QDPExpr< BinaryNode< OpSubtract, Reference< QDPType< TVec, OLattice< TVec > > >, BinaryNode< OpMultiply, Reference< QDPType< TVec, OLattice< TVec > > >, Reference< QDPType< TScal, OScalar< TScal > > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAssign &op, const QDPExpr< BinaryNode< OpAdd, Reference< QDPType< TVec, OLattice< TVec > > >, Reference< QDPType< TVec, OLattice< TVec > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAssign &op, const QDPExpr< BinaryNode< OpSubtract, Reference< QDPType< TVec, OLattice< TVec > > >, Reference< QDPType< TVec, OLattice< TVec > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAssign &op, const QDPExpr< BinaryNode< OpMultiply, Reference< QDPType< TScal, OScalar< TScal > > >, Reference< QDPType< TVec, OLattice< TVec > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAssign &op, const QDPExpr< BinaryNode< OpMultiply, Reference< QDPType< TVec, OLattice< TVec > > >, Reference< QDPType< TScal, OScalar< TScal > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpMultiplyAssign &op, const QDPExpr< UnaryNode< OpIdentity, Reference< QDPType< TScal, OScalar< TScal > > > >, OScalar< TScal > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpDivideAssign &op, const QDPExpr< UnaryNode< OpIdentity, Reference< QDPType< TScal, OScalar< TScal > > > >, OScalar< TScal > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAddAssign &op, const QDPExpr< UnaryNode< OpIdentity, Reference< QDPType< TVec, OLattice< TVec > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpSubtractAssign &op, const QDPExpr< UnaryNode< OpIdentity, Reference< QDPType< TVec, OLattice< TVec > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAssign &op, const QDPExpr< BinaryNode< OpAdd, BinaryNode< OpMultiply, Reference< QDPType< TScal, OScalar< TScal > > >, Reference< QDPType< TVec, OLattice< TVec > > > >, BinaryNode< OpMultiply, Reference< QDPType< TScal, OScalar< TScal > > >, Reference< QDPType< TVec, OLattice< TVec > > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAssign &op, const QDPExpr< BinaryNode< OpAdd, BinaryNode< OpMultiply, Reference< QDPType< TVec, OLattice< TVec > > >, Reference< QDPType< TScal, OScalar< TScal > > > >, BinaryNode< OpMultiply, Reference< QDPType< TScal, OScalar< TScal > > >, Reference< QDPType< TVec, OLattice< TVec > > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAssign &op, const QDPExpr< BinaryNode< OpAdd, BinaryNode< OpMultiply, Reference< QDPType< TScal, OScalar< TScal > > >, Reference< QDPType< TVec, OLattice< TVec > > > >, BinaryNode< OpMultiply, Reference< QDPType< TVec, OLattice< TVec > > >, Reference< QDPType< TScal, OScalar< TScal > > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAssign &op, const QDPExpr< BinaryNode< OpAdd, BinaryNode< OpMultiply, Reference< QDPType< TVec, OLattice< TVec > > >, Reference< QDPType< TScal, OScalar< TScal > > > >, BinaryNode< OpMultiply, Reference< QDPType< TVec, OLattice< TVec > > >, Reference< QDPType< TScal, OScalar< TScal > > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAssign &op, const QDPExpr< BinaryNode< OpSubtract, BinaryNode< OpMultiply, Reference< QDPType< TScal, OScalar< TScal > > >, Reference< QDPType< TVec, OLattice< TVec > > > >, BinaryNode< OpMultiply, Reference< QDPType< TScal, OScalar< TScal > > >, Reference< QDPType< TVec, OLattice< TVec > > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAssign &op, const QDPExpr< BinaryNode< OpSubtract, BinaryNode< OpMultiply, Reference< QDPType< TVec, OLattice< TVec > > >, Reference< QDPType< TScal, OScalar< TScal > > > >, BinaryNode< OpMultiply, Reference< QDPType< TScal, OScalar< TScal > > >, Reference< QDPType< TVec, OLattice< TVec > > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAssign &op, const QDPExpr< BinaryNode< OpSubtract, BinaryNode< OpMultiply, Reference< QDPType< TScal, OScalar< TScal > > >, Reference< QDPType< TVec, OLattice< TVec > > > >, BinaryNode< OpMultiply, Reference< QDPType< TVec, OLattice< TVec > > >, Reference< QDPType< TScal, OScalar< TScal > > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
void QDP::evaluate (OLattice< TVec > &d, const OpAssign &op, const QDPExpr< BinaryNode< OpSubtract, BinaryNode< OpMultiply, Reference< QDPType< TVec, OLattice< TVec > > >, Reference< QDPType< TScal, OScalar< TScal > > > >, BinaryNode< OpMultiply, Reference< QDPType< TVec, OLattice< TVec > > >, Reference< QDPType< TScal, OScalar< TScal > > > > >, OLattice< TVec > > &rhs, const Subset &s)
template<>
UnaryReturn< OLattice< TVec >, FnNorm2 >::Type_t QDP::norm2 (const QDPType< TVec, OLattice< TVec > > &s1, const Subset &s)
template<>
UnaryReturn< OLattice< TVec >, FnNorm2 >::Type_t QDP::norm2 (const QDPType< TVec, OLattice< TVec > > &s1)
template<>
BinaryReturn< OLattice< TVec >, OLattice< TVec >, FnInnerProduct >::Type_t QDP::innerProduct (const QDPType< TVec, OLattice< TVec > > &v1, const QDPType< TVec, OLattice< TVec > > &v2)
template<>
BinaryReturn< OLattice< TVec >, OLattice< TVec >, FnInnerProduct >::Type_t QDP::innerProduct (const QDPType< TVec, OLattice< TVec > > &v1, const QDPType< TVec, OLattice< TVec > > &v2, const Subset &s)
template<>
BinaryReturn< OLattice< TVec >, OLattice< TVec >, FnInnerProductReal >::Type_t QDP::innerProductReal (const QDPType< TVec, OLattice< TVec > > &v1, const QDPType< TVec, OLattice< TVec > > &v2)
template<>
BinaryReturn< OLattice< TVec >, OLattice< TVec >, FnInnerProductReal >::Type_t QDP::innerProductReal (const QDPType< TVec, OLattice< TVec > > &v1, const QDPType< TVec, OLattice< TVec > > &v2, const Subset &s)
template<>
UnaryReturn< OLattice< TVec >, FnNorm2 >::Type_t QDP::norm2 (const multi1d< OLattice< TVec > > &s1)
template<>
UnaryReturn< OLattice< TVec >, FnNorm2 >::Type_t QDP::norm2 (const multi1d< OLattice< TVec > > &s1, const Subset &s)
template<>
BinaryReturn< OLattice< TVec >, OLattice< TVec >, FnInnerProduct >::Type_t QDP::innerProduct (const multi1d< OLattice< TVec > > &v1, const multi1d< OLattice< TVec > > &v2)
template<>
BinaryReturn< OLattice< TVec >, OLattice< TVec >, FnInnerProduct >::Type_t QDP::innerProduct (const multi1d< OLattice< TVec > > &v1, const multi1d< OLattice< TVec > > &v2, const Subset &s)
template<>
BinaryReturn< OLattice< TVec >, OLattice< TVec >, FnInnerProductReal >::Type_t QDP::innerProductReal (const multi1d< OLattice< TVec > > &v1, const multi1d< OLattice< TVec > > &v2)
template<>
BinaryReturn< OLattice< TVec >, OLattice< TVec >, FnInnerProductReal >::Type_t QDP::innerProductReal (const multi1d< OLattice< TVec > > &v1, const multi1d< OLattice< TVec > > &v2, const Subset &s)

Detailed Description

Blas optimizations.

Generic and maybe SSE optimizations of basic operations

Definition in file qdp_scalarsite_sse_blas.h.

Macro Definition Documentation

◆ QDP_SCALARSITE_SSE_BLAS_WRAPPER_H

#define QDP_SCALARSITE_SSE_BLAS_WRAPPER_H

Definition at line 3 of file qdp_scalarsite_sse_blas.h.

◆ QDP_SCALARSITE_USE_EVALUATE

#define QDP_SCALARSITE_USE_EVALUATE

Definition at line 51 of file qdp_scalarsite_sse_blas.h.