LAMA
lama::OpenMPBLAS1 Class Reference

Implementations of methods for lama::BLAS1Interface with OpenMP. More...

#include <OpenMPBLAS1.hpp>

Public Member Functions

template<>
void scal (const IndexType n, const float alpha, float *x, const IndexType incX, SyncToken *syncToken)
 scal
template<>
void scal (const IndexType n, const double alpha, double *x, const IndexType incX, SyncToken *syncToken)
template<>
float nrm2 (const IndexType n, const float *x, const IndexType incX, SyncToken *syncToken)
 nrm2
template<>
double nrm2 (const IndexType n, const double *x, const IndexType incX, SyncToken *syncToken)
template<>
float asum (const IndexType n, const float *x, const IndexType incX, SyncToken *syncToken)
 asum (l1 norm)
template<>
double asum (const IndexType n, const double *x, const IndexType incX, SyncToken *syncToken)
template<>
IndexType iamax (const IndexType n, const float *x, const IndexType incX, SyncToken *syncToken)
 iamax
template<>
IndexType iamax (const IndexType n, const double *x, const IndexType incX, SyncToken *syncToken)
template<>
float viamax (const IndexType n, const float *x, const IndexType incX, SyncToken *syncToken)
 viamax
template<>
double viamax (const IndexType n, const double *x, const IndexType incX, SyncToken *syncToken)
template<>
void swap (const IndexType n, float *x, const IndexType incX, float *y, const IndexType incY, SyncToken *syncToken)
 swap
template<>
void swap (const IndexType n, double *x, const IndexType incX, double *y, const IndexType incY, SyncToken *syncToken)
template<>
void copy (const IndexType n, const float *x, const IndexType incX, float *y, const IndexType incY, SyncToken *syncToken)
 copy
template<>
void copy (const IndexType n, const double *x, const IndexType incX, double *y, const IndexType incY, SyncToken *syncToken)
template<>
void axpy (const IndexType n, const float alpha, const float *x, const IndexType incX, float *y, const IndexType incY, SyncToken *syncToken)
 axpy
template<>
void axpy (const IndexType n, const double alpha, const double *x, const IndexType incX, double *y, const IndexType incY, SyncToken *syncToken)
template<>
float dot (const IndexType n, const float *x, const IndexType incX, const float *y, const IndexType incY, SyncToken *syncToken)
 dot
template<>
double dot (const IndexType n, const double *x, const IndexType incX, const double *y, const IndexType incY, SyncToken *syncToken)
template<>
void rot (const IndexType n, float *x, const IndexType incX, float *y, const IndexType incY, const float c, const float s, SyncToken *syncToken)
 rot
template<>
void rot (const IndexType n, double *x, const IndexType incX, double *y, const IndexType incY, const double c, const double s, SyncToken *syncToken)
template<>
void rotm (const IndexType n, float *x, const IndexType incX, float *y, const IndexType incY, const float *P, SyncToken *syncToken)
 rotm
template<>
void rotm (const IndexType n, double *x, const IndexType incX, double *y, const IndexType incY, const double *P, SyncToken *syncToken)
template<>
void rotg (float *a, float *b, float *c, float *s, SyncToken *syncToken)
 rotg
template<>
void rotg (double *a, double *b, double *c, double *s, SyncToken *syncToken)
template<>
void rotmg (float *d1, float *d2, float *b1, const float b2, float *p, SyncToken *syncToken)
 rotmg
template<>
void rotmg (double *d1, double *d2, double *b1, const double b2, double *p, SyncToken *syncToken)

Static Public Member Functions

template<typename T >
static void scal (const IndexType n, const T alpha, T *x, const IndexType incX, SyncToken *syncToken)
 This function is the OpenMP implementation of lama::BLAS1Interface::scal.
template<typename T >
static T nrm2 (const IndexType n, const T *x, const IndexType incX, SyncToken *syncToken)
 This function is the OpenMP implementation of lama::BLAS1Interface::nrm2.
template<typename T >
static T asum (const IndexType n, const T *x, const IndexType incX, SyncToken *syncToken)
 This function is the OpenMP implementation of lama::BLAS1Interface::asum.
template<typename T >
static IndexType iamax (const IndexType n, const T *x, const IndexType incX, SyncToken *syncToken)
 This function is the OpenMP implementation of lama::BLAS1Interface::iamax.
template<typename T >
static T viamax (const IndexType n, const T *x, const IndexType incX, SyncToken *syncToken)
 This function is the OpenMP implementation of lama::BLAS1Interface::viamax.
template<typename T >
static void swap (const IndexType n, T *y, const IndexType incY, T *x, const IndexType incX, SyncToken *syncToken)
 This function is the OpenMP implementation of lama::BLAS1Interface::swap.
template<typename T >
static void copy (const IndexType n, const T *x, const IndexType incX, T *y, const IndexType incY, SyncToken *syncToken)
 This function is the OpenMP implementation of lama::BLAS1Interface::copy.
template<typename T >
static void axpy (const IndexType n, const T alpha, const T *x, const IndexType incX, T *y, const IndexType incY, SyncToken *syncToken)
 This function is the OpenMP implementation of lama::BLAS1Interface::axpy.
template<typename T >
static T dot (const IndexType n, const T *x, const IndexType incX, const T *y, const IndexType incY, SyncToken *syncToken)
 This function is the OpenMP implementation of lama::BLAS1Interface::dot.
template<typename T >
static void sum (const IndexType n, T alpha, const T *x, T beta, const T *y, T *z, SyncToken *syncToken)
 This function is the OpenMP implementation of lama::BLAS1Interface::sum.
template<typename T >
static void rot (const IndexType n, T *x, const IndexType incX, T *y, const IndexType incY, const T c, const T s, SyncToken *syncToken)
 This function is the OpenMP implementation of lama::BLAS1Interface::rot.
template<typename T >
static void rotm (const IndexType n, T *x, const IndexType incX, T *y, const IndexType incY, const T *P, SyncToken *syncToken)
 This function is the OpenMP implementation of lama::BLAS1Interface::rotm.
template<typename T >
static void rotg (T *a, T *b, T *c, T *s, SyncToken *syncToken)
 This function is the OpenMP implementation of lama::BLAS1Interface::rotg.
template<typename T >
static void rotmg (T *d1, T *d2, T *b1, const T b2, T *P, SyncToken *syncToken)
 This function is the OpenMP implementation of lama::BLAS1Interface::rotmg.
template<typename T >
static void ass (const IndexType n, const T value, T *x, SyncToken *syncToken)
 This function is the OpenMP implementation of lama::BLAS1Interface::ass.

Private Member Functions

 LAMA_LOG_DECL_STATIC_LOGGER (logger)

Detailed Description

Implementations of methods for lama::BLAS1Interface with OpenMP.

Todo:
Add information here about use of native BLAS1 libraries

Member Function Documentation

template<typename T >
template void lama::OpenMPBLAS1::ass< double > ( const IndexType  n,
const T  value,
T *  x,
SyncToken syncToken 
) [static]

This function is the OpenMP implementation of lama::BLAS1Interface::ass.

template<typename T >
static T lama::OpenMPBLAS1::asum ( const IndexType  n,
const T *  x,
const IndexType  incX,
SyncToken syncToken 
) [static]

This function is the OpenMP implementation of lama::BLAS1Interface::asum.

Referenced by asum().

template<>
float lama::OpenMPBLAS1::asum ( const IndexType  n,
const float *  x,
const IndexType  incX,
SyncToken syncToken 
)

asum (l1 norm)

References asum(), F77_incX, F77_incY, F77_N, and F77_sasum().

template<>
double lama::OpenMPBLAS1::asum ( const IndexType  n,
const double *  x,
const IndexType  incX,
SyncToken syncToken 
)

References asum(), F77_dasum(), F77_incX, F77_incY, and F77_N.

template<typename T >
static void lama::OpenMPBLAS1::axpy ( const IndexType  n,
const T  alpha,
const T *  x,
const IndexType  incX,
T *  y,
const IndexType  incY,
SyncToken syncToken 
) [static]

This function is the OpenMP implementation of lama::BLAS1Interface::axpy.

template<>
void lama::OpenMPBLAS1::axpy ( const IndexType  n,
const float  alpha,
const float *  x,
const IndexType  incX,
float *  y,
const IndexType  incY,
SyncToken syncToken 
)

axpy

References F77_incX, F77_incY, F77_N, and F77_saxpy().

template<>
void lama::OpenMPBLAS1::axpy ( const IndexType  n,
const double  alpha,
const double *  x,
const IndexType  incX,
double *  y,
const IndexType  incY,
SyncToken syncToken 
)

References F77_daxpy(), F77_incX, F77_incY, and F77_N.

template<typename T >
static void lama::OpenMPBLAS1::copy ( const IndexType  n,
const T *  x,
const IndexType  incX,
T *  y,
const IndexType  incY,
SyncToken syncToken 
) [static]

This function is the OpenMP implementation of lama::BLAS1Interface::copy.

template<>
void lama::OpenMPBLAS1::copy ( const IndexType  n,
const float *  x,
const IndexType  incX,
float *  y,
const IndexType  incY,
SyncToken syncToken 
)

copy

References F77_incX, F77_incY, F77_N, and F77_scopy().

template<>
void lama::OpenMPBLAS1::copy ( const IndexType  n,
const double *  x,
const IndexType  incX,
double *  y,
const IndexType  incY,
SyncToken syncToken 
)

References F77_dcopy(), F77_incX, F77_incY, and F77_N.

template<typename T >
static T lama::OpenMPBLAS1::dot ( const IndexType  n,
const T *  x,
const IndexType  incX,
const T *  y,
const IndexType  incY,
SyncToken syncToken 
) [static]

This function is the OpenMP implementation of lama::BLAS1Interface::dot.

Referenced by dot().

template<>
float lama::OpenMPBLAS1::dot ( const IndexType  n,
const float *  x,
const IndexType  incX,
const float *  y,
const IndexType  incY,
SyncToken syncToken 
)

dot

References dot(), F77_incX, F77_incY, F77_N, and F77_sdot().

template<>
double lama::OpenMPBLAS1::dot ( const IndexType  n,
const double *  x,
const IndexType  incX,
const double *  y,
const IndexType  incY,
SyncToken syncToken 
)

References dot(), F77_ddot(), F77_incX, F77_incY, and F77_N.

template<typename T >
static IndexType lama::OpenMPBLAS1::iamax ( const IndexType  n,
const T *  x,
const IndexType  incX,
SyncToken syncToken 
) [static]

This function is the OpenMP implementation of lama::BLAS1Interface::iamax.

Referenced by iamax(), lama::LUSolver::piamax_own(), and viamax().

template<>
IndexType lama::OpenMPBLAS1::iamax ( const IndexType  n,
const float *  x,
const IndexType  incX,
SyncToken syncToken 
)

iamax

References F77_incX, F77_isamax(), F77_N, and iamax().

template<>
IndexType lama::OpenMPBLAS1::iamax ( const IndexType  n,
const double *  x,
const IndexType  incX,
SyncToken syncToken 
)

References F77_idamax(), F77_incX, F77_N, and iamax().

template<typename T >
static T lama::OpenMPBLAS1::nrm2 ( const IndexType  n,
const T *  x,
const IndexType  incX,
SyncToken syncToken 
) [static]

This function is the OpenMP implementation of lama::BLAS1Interface::nrm2.

Referenced by nrm2().

template<>
float lama::OpenMPBLAS1::nrm2 ( const IndexType  n,
const float *  x,
const IndexType  incX,
SyncToken syncToken 
)

nrm2

References F77_incX, F77_N, F77_snrm2(), and nrm2().

template<>
double lama::OpenMPBLAS1::nrm2 ( const IndexType  n,
const double *  x,
const IndexType  incX,
SyncToken syncToken 
)

References F77_dnrm2(), F77_incX, F77_N, and nrm2().

template<typename T >
static void lama::OpenMPBLAS1::rot ( const IndexType  n,
T *  x,
const IndexType  incX,
T *  y,
const IndexType  incY,
const T  c,
const T  s,
SyncToken syncToken 
) [static]

This function is the OpenMP implementation of lama::BLAS1Interface::rot.

template<>
void lama::OpenMPBLAS1::rot ( const IndexType  n,
float *  x,
const IndexType  incX,
float *  y,
const IndexType  incY,
const float  c,
const float  s,
SyncToken syncToken 
)

rot

References F77_incX, F77_incY, F77_N, and F77_srot().

template<>
void lama::OpenMPBLAS1::rot ( const IndexType  n,
double *  x,
const IndexType  incX,
double *  y,
const IndexType  incY,
const double  c,
const double  s,
SyncToken syncToken 
)

References F77_drot(), F77_incX, F77_incY, and F77_N.

template<typename T >
static void lama::OpenMPBLAS1::rotg ( T *  a,
T *  b,
T *  c,
T *  s,
SyncToken syncToken 
) [static]

This function is the OpenMP implementation of lama::BLAS1Interface::rotg.

template<>
void lama::OpenMPBLAS1::rotg ( float *  a,
float *  b,
float *  c,
float *  s,
SyncToken syncToken 
)

rotg

References F77_srotg().

template<>
void lama::OpenMPBLAS1::rotg ( double *  a,
double *  b,
double *  c,
double *  s,
SyncToken syncToken 
)

References F77_drotg().

template<typename T >
static void lama::OpenMPBLAS1::rotm ( const IndexType  n,
T *  x,
const IndexType  incX,
T *  y,
const IndexType  incY,
const T *  P,
SyncToken syncToken 
) [static]

This function is the OpenMP implementation of lama::BLAS1Interface::rotm.

template<>
void lama::OpenMPBLAS1::rotm ( const IndexType  n,
float *  x,
const IndexType  incX,
float *  y,
const IndexType  incY,
const float *  P,
SyncToken syncToken 
)

rotm

References F77_incX, F77_incY, F77_N, and F77_srotm().

template<>
void lama::OpenMPBLAS1::rotm ( const IndexType  n,
double *  x,
const IndexType  incX,
double *  y,
const IndexType  incY,
const double *  P,
SyncToken syncToken 
)

References F77_drotm(), F77_incX, F77_incY, and F77_N.

template<typename T >
static void lama::OpenMPBLAS1::rotmg ( T *  d1,
T *  d2,
T *  b1,
const T  b2,
T *  P,
SyncToken syncToken 
) [static]

This function is the OpenMP implementation of lama::BLAS1Interface::rotmg.

template<>
void lama::OpenMPBLAS1::rotmg ( float *  d1,
float *  d2,
float *  b1,
const float  b2,
float *  p,
SyncToken syncToken 
)

rotmg

References F77_srotmg().

template<>
void lama::OpenMPBLAS1::rotmg ( double *  d1,
double *  d2,
double *  b1,
const double  b2,
double *  p,
SyncToken syncToken 
)

References F77_drotmg().

template<>
void lama::OpenMPBLAS1::scal ( const IndexType  n,
const float  alpha,
float *  x,
const IndexType  incX,
SyncToken syncToken 
)

scal

References F77_incX, F77_N, and F77_sscal().

template<typename T >
static void lama::OpenMPBLAS1::scal ( const IndexType  n,
const T  alpha,
T *  x,
const IndexType  incX,
SyncToken syncToken 
) [static]

This function is the OpenMP implementation of lama::BLAS1Interface::scal.

Referenced by lama::LUSolver::pgetf2(), and lama::CSRStorage< T >::scaleImpl().

template<>
void lama::OpenMPBLAS1::scal ( const IndexType  n,
const double  alpha,
double *  x,
const IndexType  incX,
SyncToken syncToken 
)

References F77_dscal(), F77_incX, and F77_N.

template<typename T >
template void lama::OpenMPBLAS1::sum< double > ( const IndexType  n,
alpha,
const T *  x,
beta,
const T *  y,
T *  z,
SyncToken syncToken 
) [static]

This function is the OpenMP implementation of lama::BLAS1Interface::sum.

sum

template<typename T >
static void lama::OpenMPBLAS1::swap ( const IndexType  n,
T *  y,
const IndexType  incY,
T *  x,
const IndexType  incX,
SyncToken syncToken 
) [static]

This function is the OpenMP implementation of lama::BLAS1Interface::swap.

Referenced by lama::LUSolver::computeLUFactorization(), and lama::LUSolver::pgetf2().

template<>
void lama::OpenMPBLAS1::swap ( const IndexType  n,
float *  x,
const IndexType  incX,
float *  y,
const IndexType  incY,
SyncToken syncToken 
)

swap

References F77_incX, F77_incY, F77_N, and F77_sswap().

template<>
void lama::OpenMPBLAS1::swap ( const IndexType  n,
double *  x,
const IndexType  incX,
double *  y,
const IndexType  incY,
SyncToken syncToken 
)

References F77_dswap(), F77_incX, F77_incY, and F77_N.

template<typename T >
static T lama::OpenMPBLAS1::viamax ( const IndexType  n,
const T *  x,
const IndexType  incX,
SyncToken syncToken 
) [static]

This function is the OpenMP implementation of lama::BLAS1Interface::viamax.

template<>
float lama::OpenMPBLAS1::viamax ( const IndexType  n,
const float *  x,
const IndexType  incX,
SyncToken syncToken 
)

viamax

References F77_incX, F77_isamax(), F77_N, iamax(), and lama::nIndex.

template<>
double lama::OpenMPBLAS1::viamax ( const IndexType  n,
const double *  x,
const IndexType  incX,
SyncToken syncToken 
)

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