36#ifndef NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_BLASARRAY_HPP
37#define NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_BLASARRAY_HPP
49 void F77NAME(
dcopy)(
const int &n,
const double *x,
const int &incx,
50 double *y,
const int &incy);
51 void F77NAME(
daxpy)(
const int &n,
const double &alpha,
const double *x,
52 const int &incx,
const double *y,
const int &incy);
53 double F77NAME(
ddot)(
const int &n,
const double *x,
const int &incx,
54 const double *y,
const int &incy);
57static inline void Dcopy(
const int &n,
63 ASSERTL1(
static_cast<unsigned int>(n * incx) <= x.size() + x.GetOffset(),
64 "Array out of bounds");
65 ASSERTL1(
static_cast<unsigned int>(n * incy) <= y.size() + y.GetOffset(),
66 "Array out of bounds");
72static inline void Daxpy(
const int &n,
const double &alpha,
78 ASSERTL1(
static_cast<unsigned int>(n * incx) <= x.size() + x.GetOffset(),
79 "Array out of bounds");
80 ASSERTL1(
static_cast<unsigned int>(n * incy) <= y.size() + y.GetOffset(),
81 "Array out of bounds");
87static inline double Ddot(
const int &n,
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
#define F77NAME(x)
Fortran routines need an underscore.
void F77NAME() daxpy(const int &n, const double &alpha, const double *x, const int &incx, const double *y, const int &incy)
double F77NAME() ddot(const int &n, const double *x, const int &incx, const double *y, const int &incy)
static void Dcopy(const int &n, const double *x, const int &incx, double *y, const int &incy)
BLAS level 1: Copy x to y.
void F77NAME() dcopy(const int &n, const double *x, const int &incx, double *y, const int &incy)
static double Ddot(const int &n, const double *x, const int &incx, const double *y, const int &incy)
BLAS level 1: output = .
static void Daxpy(const int &n, const double &alpha, const double *x, const int &incx, const double *y, const int &incy)
BLAS level 1: y = alpha x plus y.