Nektar++
Functions
Blas Namespace Reference

Functions

void F77NAME() dcopy (const int &n, const double *x, const int &incx, double *y, const int &incy)
 
void F77NAME() daxpy (const int &n, const double &alpha, const double *x, const int &incx, const double *y, const int &incy)
 
void F77NAME() dswap (const int &n, double *x, const int &incx, double *y, const int &incy)
 
void F77NAME() dscal (const int &n, const double &alpha, double *x, const int &incx)
 
void F77NAME() drot (const int &n, double *x, const int &incx, double *y, const int &incy, const double &c, const double &s)
 
double F77NAME() ddot (const int &n, const double *x, const int &incx, const double *y, const int &incy)
 
double F77NAME() dnrm2 (const int &n, const double *x, const int &incx)
 
double F77NAME() dasum (const int &n, const double *x, const int &incx)
 
int F77NAME() idamax (const int &n, const double *x, const int &incx)
 
void F77NAME() dgemv (const char &trans, const int &m, const int &n, const double &alpha, const double *a, const int &lda, const double *x, const int &incx, const double &beta, double *y, const int &incy)
 
void F77NAME() sgemv (const char &trans, const int &m, const int &n, const float &alpha, const float *a, const int &lda, const float *x, const int &incx, const float &beta, float *y, const int &incy)
 
void F77NAME() dgbmv (const char &trans, const int &m, const int &n, const int &kl, const int &ku, const double &alpha, const double *a, const int &lda, const double *x, const int &incx, const double &beta, double *y, const int &incy)
 
void F77NAME() sgbmv (const char &trans, const int &m, const int &n, const int &kl, const int &ku, const float &alpha, const float *a, const int &lda, const float *x, const int &incx, const float &beta, float *y, const int &incy)
 
void F77NAME() dspmv (const char &uplo, const int &n, const double &alpha, const double *a, const double *x, const int &incx, const double &beta, double *y, const int &incy)
 
void F77NAME() sspmv (const char &uplo, const int &n, const float &alpha, const float *a, const float *x, const int &incx, const float &beta, float *y, const int &incy)
 
void F77NAME() dsbmv (const char &uplo, const int &m, const int &k, const double &alpha, const double *a, const int &lda, const double *x, const int &incx, const double &beta, double *y, const int &incy)
 
void F77NAME() ssbmv (const char &uplo, const int &m, const int &k, const float &alpha, const float *a, const int &lda, const float *x, const int &incx, const float &beta, float *y, const int &incy)
 
void F77NAME() dtpmv (const char &uplo, const char &trans, const char &diag, const int &n, const double *ap, double *x, const int &incx)
 
void F77NAME() stpmv (const char &uplo, const char &trans, const char &diag, const int &n, const float *ap, float *x, const int &incx)
 
void F77NAME() dger (const int &m, const int &n, const double &alpha, const double *x, const int &incx, const double *y, const int &incy, double *a, const int &lda)
 
void F77NAME() sger (const int &m, const int &n, const float &alpha, const float *x, const int &incx, const float *y, const int &incy, float *a, const int &lda)
 
void F77NAME() dgemm (const char &trans, const char &transb, const int &m1, const int &n, const int &k, const double &alpha, const double *a, const int &lda, const double *b, const int &ldb, const double &beta, double *c, const int &ldc)
 
void F77NAME() sgemm (const char &trans, const char &transb, const int &m1, const int &n, const int &k, const float &alpha, const float *a, const int &lda, const float *b, const int &ldb, const float &beta, float *c, const int &ldc)
 
static void Dcopy (const int &n, const double *x, const int &incx, double *y, const int &incy)
 BLAS level 1: Copy x to y. More...
 
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. More...
 
static void Dswap (const int &n, double *x, const int &incx, double *y, const int &incy)
 BLAS level 1: Swap x with y. More...
 
static void Dscal (const int &n, const double &alpha, double *x, const int &incx)
 BLAS level 1: x = alpha x. More...
 
static void Drot (const int &n, double *x, const int &incx, double *y, const int &incy, const double &c, const double &s)
 BLAS level 1: Plane rotation by c = cos(theta), s = sin(theta) More...
 
static double Ddot (const int &n, const double *x, const int &incx, const double *y, const int &incy)
 BLAS level 1: output = \( x^T y \). More...
 
static double Dnrm2 (const int &n, const double *x, const int &incx)
 
static double Dasum (const int &n, const double *x, const int &incx)
 BLAS level 1: output = \( ||x||_1 \). More...
 
static int Idamax (const int &n, const double *x, const int &incx)
 BLAS level 1: output = 1st value where \( |x[i]| = max |x|_1 \) Note it is modified to return a value between (0,n-1) as per the standard C convention. More...
 
static void Gemv (const char &trans, const int &m, const int &n, const double &alpha, const double *a, const int &lda, const double *x, const int &incx, const double &beta, double *y, const int &incy)
 BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[m x n]. More...
 
static void Gemv (const char &trans, const int &m, const int &n, const float &alpha, const float *a, const int &lda, const float *x, const int &incx, const float &beta, float *y, const int &incy)
 BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[m x n]. More...
 
static void Dgemv (const char &trans, const int &m, const int &n, const double &alpha, const double *a, const int &lda, const double *x, const int &incx, const double &beta, double *y, const int &incy)
 BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[m x n]. More...
 
static void Gbmv (const char &trans, const int &m, const int &n, const int &kl, const int &ku, const double &alpha, const double *a, const int &lda, const double *x, const int &incx, const double &beta, double *y, const int &incy)
 BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[m x n] is banded. More...
 
static void Gbmv (const char &trans, const int &m, const int &n, const int &kl, const int &ku, const float &alpha, const float *a, const int &lda, const float *x, const int &incx, const float &beta, float *y, const int &incy)
 BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[m x n] is banded. More...
 
static void Dgbmv (const char &trans, const int &m, const int &n, const int &kl, const int &ku, const double &alpha, const double *a, const int &lda, const double *x, const int &incx, const double &beta, double *y, const int &incy)
 BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[m x n] is banded. More...
 
static void Spmv (const char &uplo, const int &n, const double &alpha, const double *a, const double *x, const int &incx, const double &beta, double *y, const int &incy)
 BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[n x n] is symmetric packed. More...
 
static void Spmv (const char &uplo, const int &n, const float &alpha, const float *a, const float *x, const int &incx, const float &beta, float *y, const int &incy)
 BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[n x n] is symmetric packed. More...
 
static void Dspmv (const char &uplo, const int &n, const double &alpha, const double *a, const double *x, const int &incx, const double &beta, double *y, const int &incy)
 BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[n x n] is symmetric packed. More...
 
static void Sbmv (const char &uplo, const int &m, const int &k, const double &alpha, const double *a, const int &lda, const double *x, const int &incx, const double &beta, double *y, const int &incy)
 BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[m x m] is symmetric banded. More...
 
static void Sbmv (const char &uplo, const int &m, const int &k, const float &alpha, const float *a, const int &lda, const float *x, const int &incx, const float &beta, float *y, const int &incy)
 BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[m x m] is symmetric banded. More...
 
static void Dsbmv (const char &uplo, const int &m, const int &k, const double &alpha, const double *a, const int &lda, const double *x, const int &incx, const double &beta, double *y, const int &incy)
 BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[m x m] is symmetric banded. More...
 
static void Tpmv (const char &uplo, const char &trans, const char &diag, const int &n, const double *ap, double *x, const int &incx)
 BLAS level 2: Matrix vector multiply x = alpha A x where A[n x n]. More...
 
static void Tpmv (const char &uplo, const char &trans, const char &diag, const int &n, const float *ap, float *x, const int &incx)
 BLAS level 2: Matrix vector multiply x = alpha A x where A[n x n]. More...
 
static void Dtpmv (const char &uplo, const char &trans, const char &diag, const int &n, const double *ap, double *x, const int &incx)
 BLAS level 2: Matrix vector multiply x = alpha A x where A[n x n]. More...
 
static void Ger (const int &m, const int &n, const double &alpha, const double *x, const int &incx, const double *y, const int &incy, double *a, const int &lda)
 BLAS level 2: Matrix vector multiply A = alpha*x*y**T + A where A[m x n]. More...
 
static void Ger (const int &m, const int &n, const float &alpha, const float *x, const int &incx, const float *y, const int &incy, float *a, const int &lda)
 BLAS level 2: Matrix vector multiply A = alpha*x*y**T + A where A[m x n]. More...
 
static void Gemm (const char &transa, const char &transb, const int &m, const int &n, const int &k, const double &alpha, const double *a, const int &lda, const double *b, const int &ldb, const double &beta, double *c, const int &ldc)
 BLAS level 3: Matrix-matrix multiply C = A x B where op(A)[m x k], op(B)[k x n], C[m x n] DGEMM performs one of the matrix-matrix operations: C := alpha*op( A )*op( B ) + beta*C,. More...
 
static void Gemm (const char &transa, const char &transb, const int &m, const int &n, const int &k, const float &alpha, const float *a, const int &lda, const float *b, const int &ldb, const float &beta, float *c, const int &ldc)
 BLAS level 3: Matrix-matrix multiply C = A x B where op(A)[m x k], op(B)[k x n], C[m x n] DGEMM performs one of the matrix-matrix operations: C := alpha*op( A )*op( B ) + beta*C,. More...
 
static void Dgemm (const char &transa, const char &transb, const int &m, const int &n, const int &k, const double &alpha, const double *a, const int &lda, const double *b, const int &ldb, const double &beta, double *c, const int &ldc)
 BLAS level 3: Matrix-matrix multiply C = A x B where op(A)[m x k], op(B)[k x n], C[m x n] DGEMM performs one of the matrix-matrix operations: C := alpha*op( A )*op( B ) + beta*C,. More...
 
static void Cdgemm (const int M, const int N, const int K, const double a, const double *A, const int ldA, const double *B, const int ldB, const double b, double *C, const int ldC)
 
static void Dcopy (const int &n, const Nektar::Array< Nektar::OneD, const double > &x, const int &incx, Nektar::Array< Nektar::OneD, double > &y, const int &incy)
 
static void Daxpy (const int &n, const double &alpha, const Nektar::Array< Nektar::OneD, const double > &x, const int &incx, Nektar::Array< Nektar::OneD, double > &y, const int &incy)
 BLAS level 1: y = alpha x plus y. More...
 
static double Ddot (const int &n, const Nektar::Array< Nektar::OneD, const double > &x, const int &incx, const Nektar::Array< Nektar::OneD, const double > &y, const int &incy)
 BLAS level 1: output = \( x^T y \). More...
 

Function Documentation

◆ Cdgemm()

static void Blas::Cdgemm ( const int  M,
const int  N,
const int  K,
const double  a,
const double *  A,
const int  ldA,
const double *  B,
const int  ldB,
const double  b,
double *  C,
const int  ldC 
)
inlinestatic

Definition at line 395 of file Blas.hpp.

400{
401 Dgemm('N', 'N', N, M, K, a, B, N, A, K, b, C, N);
402}
static void Dgemm(const char &transa, const char &transb, const int &m, const int &n, const int &k, const double &alpha, const double *a, const int &lda, const double *b, const int &ldb, const double &beta, double *c, const int &ldc)
BLAS level 3: Matrix-matrix multiply C = A x B where op(A)[m x k], op(B)[k x n], C[m x n] DGEMM perfo...
Definition: Blas.hpp:383

References Dgemm().

◆ dasum()

double F77NAME() Blas::dasum ( const int &  n,
const double *  x,
const int &  incx 
)

Referenced by Dasum().

◆ Dasum()

static double Blas::Dasum ( const int &  n,
const double *  x,
const int &  incx 
)
inlinestatic

BLAS level 1: output = \( ||x||_1 \).

Definition at line 176 of file Blas.hpp.

177{
178 return F77NAME(dasum)(n, x, incx);
179}
#define F77NAME(x)
Fortran routines need an underscore.
Definition: TransF77.hpp:46
double F77NAME() dasum(const int &n, const double *x, const int &incx)

References dasum(), and F77NAME.

◆ daxpy()

void F77NAME() Blas::daxpy ( const int &  n,
const double &  alpha,
const double *  x,
const int &  incx,
const double *  y,
const int &  incy 
)

Referenced by Daxpy().

◆ Daxpy() [1/2]

static void Blas::Daxpy ( const int &  n,
const double &  alpha,
const double *  x,
const int &  incx,
const double *  y,
const int &  incy 
)
inlinestatic

BLAS level 1: y = alpha x plus y.

Definition at line 135 of file Blas.hpp.

137{
138 F77NAME(daxpy)(n, alpha, x, incx, y, incy);
139}
void F77NAME() daxpy(const int &n, const double &alpha, const double *x, const int &incx, const double *y, const int &incy)

References daxpy(), and F77NAME.

Referenced by Nektar::MMFSWE::GetSWEFluxVector(), Nektar::StdRegions::StdExpansion::HelmholtzMatrixOp_MatFree_GenericImpl(), Nektar::Collections::BwdTrans_SumFac_Tet::operator()(), Nektar::Collections::BwdTrans_SumFac_Prism::operator()(), Nektar::Collections::BwdTrans_SumFac_Pyr::operator()(), Nektar::Collections::BwdTrans_SumFac_Tri::operator()(), Nektar::LocalRegions::NodalTriExp::PhysDeriv(), Nektar::SmoothedProfileMethod::SolveCorrectedVelocity(), Nektar::SubSteppingExtrapolate::SubStepExtrapolateField(), Nektar::StdRegions::StdPrismExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdPyrExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdTetExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdTriExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdSegExp::v_HelmholtzMatrixOp(), Nektar::LocalRegions::SegExp::v_HelmholtzMatrixOp(), Nektar::LocalRegions::SegExp::v_LaplacianMatrixOp(), Nektar::LocalRegions::HexExp::v_PhysDeriv(), Nektar::LocalRegions::PrismExp::v_PhysDeriv(), Nektar::LocalRegions::PyrExp::v_PhysDeriv(), Nektar::LocalRegions::TetExp::v_PhysDeriv(), Nektar::LocalRegions::QuadExp::v_PhysDeriv(), Nektar::LocalRegions::TriExp::v_PhysDeriv(), Nektar::VelocityCorrectionScheme::v_SetUpViscousForcing(), and Nektar::VCSMapping::v_SetUpViscousForcing().

◆ Daxpy() [2/2]

static void Blas::Daxpy ( const int &  n,
const double &  alpha,
const Nektar::Array< Nektar::OneD, const double > &  x,
const int &  incx,
Nektar::Array< Nektar::OneD, double > &  y,
const int &  incy 
)
inlinestatic

BLAS level 1: y = alpha x plus y.

Definition at line 72 of file BlasArray.hpp.

77{
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");
82
83 F77NAME(daxpy)(n, alpha, &x[0], incx, &y[0], incy);
84}
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
Definition: ErrorUtil.hpp:242

References ASSERTL1, daxpy(), and F77NAME.

◆ dcopy()

void F77NAME() Blas::dcopy ( const int &  n,
const double *  x,
const int &  incx,
double *  y,
const int &  incy 
)

Referenced by Dcopy().

◆ Dcopy() [1/2]

static void Blas::Dcopy ( const int &  n,
const double *  x,
const int &  incx,
double *  y,
const int &  incy 
)
inlinestatic

BLAS level 1: Copy x to y.

Definition at line 128 of file Blas.hpp.

130{
131 F77NAME(dcopy)(n, x, incx, y, incy);
132}
void F77NAME() dcopy(const int &n, const double *x, const int &incx, double *y, const int &incy)

References dcopy(), and F77NAME.

Referenced by Nektar::CoupledLinearNS::SetUpCoupledMatrix(), Nektar::StdRegions::StdPointExp::v_GetCoords(), Nektar::StdRegions::StdQuadExp::v_GetCoords(), and Nektar::StdRegions::StdSegExp::v_GetCoords().

◆ Dcopy() [2/2]

static void Blas::Dcopy ( const int &  n,
const Nektar::Array< Nektar::OneD, const double > &  x,
const int &  incx,
Nektar::Array< Nektar::OneD, double > &  y,
const int &  incy 
)
inlinestatic

Definition at line 57 of file BlasArray.hpp.

62{
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");
67
68 F77NAME(dcopy)(n, &x[0], incx, &y[0], incy);
69}

References ASSERTL1, dcopy(), and F77NAME.

◆ ddot()

double F77NAME() Blas::ddot ( const int &  n,
const double *  x,
const int &  incx,
const double *  y,
const int &  incy 
)

Referenced by Ddot().

◆ Ddot() [1/2]

static double Blas::Ddot ( const int &  n,
const double *  x,
const int &  incx,
const double *  y,
const int &  incy 
)
inlinestatic

◆ Ddot() [2/2]

static double Blas::Ddot ( const int &  n,
const Nektar::Array< Nektar::OneD, const double > &  x,
const int &  incx,
const Nektar::Array< Nektar::OneD, const double > &  y,
const int &  incy 
)
inlinestatic

BLAS level 1: output = \( x^T y \).

Definition at line 87 of file BlasArray.hpp.

92{
93 return F77NAME(ddot)(n, &x[0], incx, &y[0], incy);
94}

References ddot(), and F77NAME.

◆ dgbmv()

void F77NAME() Blas::dgbmv ( const char &  trans,
const int &  m,
const int &  n,
const int &  kl,
const int &  ku,
const double &  alpha,
const double *  a,
const int &  lda,
const double *  x,
const int &  incx,
const double &  beta,
double *  y,
const int &  incy 
)

Referenced by Dgbmv(), and Gbmv().

◆ Dgbmv()

static void Blas::Dgbmv ( const char &  trans,
const int &  m,
const int &  n,
const int &  kl,
const int &  ku,
const double &  alpha,
const double *  a,
const int &  lda,
const double *  x,
const int &  incx,
const double &  beta,
double *  y,
const int &  incy 
)
inlinestatic

BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[m x n] is banded.

Definition at line 243 of file Blas.hpp.

248{
249 F77NAME(dgbmv)(trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy);
250}
void F77NAME() dgbmv(const char &trans, const int &m, const int &n, const int &kl, const int &ku, const double &alpha, const double *a, const int &lda, const double *x, const int &incx, const double &beta, double *y, const int &incy)
@ beta
Gauss Radau pinned at x=-1,.
Definition: PointsType.h:59

References Nektar::LibUtilities::beta, dgbmv(), and F77NAME.

Referenced by Nektar::BandedMatrixVectorMultiplicationUnitTests::BOOST_AUTO_TEST_CASE().

◆ dgemm()

void F77NAME() Blas::dgemm ( const char &  trans,
const char &  transb,
const int &  m1,
const int &  n,
const int &  k,
const double &  alpha,
const double *  a,
const int &  lda,
const double *  b,
const int &  ldb,
const double &  beta,
double *  c,
const int &  ldc 
)

Referenced by Dgemm(), and Gemm().

◆ Dgemm()

static void Blas::Dgemm ( const char &  transa,
const char &  transb,
const int &  m,
const int &  n,
const int &  k,
const double &  alpha,
const double *  a,
const int &  lda,
const double *  b,
const int &  ldb,
const double &  beta,
double *  c,
const int &  ldc 
)
inlinestatic

BLAS level 3: Matrix-matrix multiply C = A x B where op(A)[m x k], op(B)[k x n], C[m x n] DGEMM performs one of the matrix-matrix operations: C := alpha*op( A )*op( B ) + beta*C,.

Definition at line 383 of file Blas.hpp.

388{
390 (transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
391}
void F77NAME() dgemm(const char &trans, const char &transb, const int &m1, const int &n, const int &k, const double &alpha, const double *a, const int &lda, const double *b, const int &ldb, const double &beta, double *c, const int &ldc)

References Nektar::LibUtilities::beta, dgemm(), and F77NAME.

Referenced by Cdgemm(), Nektar::MultiRegions::GlobalLinSysStaticCond::ConstructNextLevelCondensedSystem(), Nektar::LibUtilities::Basis::GenBasis(), Nektar::Collections::HexIProduct(), Nektar::LibUtilities::Interp2D(), Nektar::LibUtilities::Interp3D(), Nektar::LibUtilities::InterpCoeff2D(), Nektar::LibUtilities::InterpCoeff3D(), Nektar::MultiRegions::LocTraceToTraceMap::InterpLocEdgesToTrace(), Nektar::MultiRegions::LocTraceToTraceMap::InterpLocEdgesToTraceTranspose(), Nektar::MultiRegions::LocTraceToTraceMap::InterpLocFacesToTrace(), Nektar::MultiRegions::LocTraceToTraceMap::InterpLocFacesToTraceTranspose(), Nektar::MultiRegions::LocTraceToTraceMap::InterpTraceToLocEdges(), Nektar::MultiRegions::LocTraceToTraceMap::InterpTraceToLocFaces(), Nektar::MultiRegions::GJPStabilisation::MultiplyByStdDerivBaseOnTraceMat(), Nektar::Collections::IProductWRTDerivBase_StdMat::operator()(), Nektar::Collections::IProductWRTDerivBase_SumFac_Seg::operator()(), Nektar::Collections::IProductWRTBase_StdMat::operator()(), Nektar::Collections::IProductWRTBase_SumFac_Seg::operator()(), Nektar::Collections::PhysInterp1DScaled_StdMat::operator()(), Nektar::Collections::PhysInterp1DScaled_NoCollection::operator()(), Nektar::Collections::BwdTrans_SumFac_Tet::operator()(), Nektar::Collections::BwdTrans_SumFac_Prism::operator()(), Nektar::Collections::BwdTrans_SumFac_Pyr::operator()(), Nektar::Collections::PhysDeriv_StdMat::operator()(), Nektar::Collections::PhysDeriv_SumFac_Seg::operator()(), Nektar::Collections::PhysDeriv_SumFac_Quad::operator()(), Nektar::Collections::PhysDeriv_SumFac_Tri::operator()(), Nektar::Collections::PhysDeriv_SumFac_Hex::operator()(), Nektar::Collections::PhysDeriv_SumFac_Tet::operator()(), Nektar::Collections::PhysDeriv_SumFac_Prism::operator()(), Nektar::Collections::PhysDeriv_SumFac_Pyr::operator()(), Nektar::Collections::BwdTrans_StdMat::operator()(), Nektar::Collections::BwdTrans_SumFac_Seg::operator()(), Nektar::Collections::BwdTrans_SumFac_Quad::operator()(), Nektar::Collections::BwdTrans_SumFac_Tri::operator()(), Nektar::Collections::BwdTrans_SumFac_Hex::operator()(), Nektar::LibUtilities::PhysGalerkinProject2D(), Nektar::LibUtilities::PhysGalerkinProject3D(), Nektar::StdRegions::StdExpansion2D::PhysTensorDeriv(), Nektar::StdRegions::StdExpansion3D::PhysTensorDeriv(), Nektar::Collections::PrismIProduct(), Nektar::Collections::PyrIProduct(), Nektar::Collections::QuadIProduct(), Nektar::CoupledLinearNS::SetUpCoupledMatrix(), Nektar::Collections::TetIProduct(), Nektar::Collections::TriIProduct(), Nektar::StdRegions::StdHexExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdPrismExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdPyrExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdTetExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdQuadExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdTriExp::v_BwdTrans_SumFacKernel(), Nektar::MultiRegions::PreconditionerLowEnergy::v_DoTransformBasisFromLowEnergy(), Nektar::MultiRegions::PreconditionerLowEnergy::v_DoTransformBasisToLowEnergy(), Nektar::MultiRegions::PreconditionerLowEnergy::v_DoTransformCoeffsFromLowEnergy(), Nektar::MultiRegions::PreconditionerLowEnergy::v_DoTransformCoeffsToLowEnergy(), Nektar::StdRegions::StdHexExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdPrismExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdPyrExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdTetExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdQuadExp::v_IProductWRTBase_SumFacKernel(), and Nektar::StdRegions::StdTriExp::v_IProductWRTBase_SumFacKernel().

◆ dgemv()

void F77NAME() Blas::dgemv ( const char &  trans,
const int &  m,
const int &  n,
const double &  alpha,
const double *  a,
const int &  lda,
const double *  x,
const int &  incx,
const double &  beta,
double *  y,
const int &  incy 
)

Referenced by Dgemv(), and Gemv().

◆ Dgemv()

static void Blas::Dgemv ( const char &  trans,
const int &  m,
const int &  n,
const double &  alpha,
const double *  a,
const int &  lda,
const double *  x,
const int &  incx,
const double &  beta,
double *  y,
const int &  incy 
)
inlinestatic

BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[m x n].

Definition at line 211 of file Blas.hpp.

215{
216 F77NAME(dgemv)(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
217}
void F77NAME() dgemv(const char &trans, const int &m, const int &n, const double &alpha, const double *a, const int &lda, const double *x, const int &incx, const double &beta, double *y, const int &incy)

References Nektar::LibUtilities::beta, dgemv(), and F77NAME.

Referenced by Nektar::LocalRegions::NodalTriExp::GeneralMatrixOp_MatOp(), Nektar::LocalRegions::TetExp::GeneralMatrixOp_MatOp(), Nektar::LibUtilities::Interp1D(), Nektar::MultiRegions::LocTraceToTraceMap::InterpLocFacesToTrace(), Nektar::LocalRegions::NodalTriExp::IProductWRTBase_MatOp(), Nektar::LocalRegions::NodalTriExp::IProductWRTDerivBase_MatOp(), Nektar::StorageSmvBsr< T >::Multiply_generic(), Nektar::ForcingMovingBody::Newmark_betaSolver(), Nektar::Collections::PhysInterp1DScaled_NoCollection::operator()(), Nektar::LibUtilities::PhysGalerkinProject1D(), Nektar::StdRegions::StdExpansion0D::PhysTensorDeriv(), Nektar::StdRegions::StdExpansion1D::PhysTensorDeriv(), Nektar::Collections::PrismIProduct(), Nektar::Collections::TetIProduct(), Nektar::Collections::TriIProduct(), Nektar::StdRegions::StdPointExp::v_BwdTrans(), Nektar::StdRegions::StdSegExp::v_BwdTrans(), Nektar::StdRegions::StdPyrExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdTetExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdTriExp::v_BwdTrans_SumFacKernel(), Nektar::MultiRegions::GlobalLinSysIterativeStaticCond::v_DoMatrixMultiply(), Nektar::LocalRegions::QuadExp::v_FwdTransBndConstrained(), Nektar::LocalRegions::SegExp::v_FwdTransBndConstrained(), Nektar::LocalRegions::TriExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdQuadExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdSegExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdTriExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdPointExp::v_IProductWRTBase(), Nektar::StdRegions::StdSegExp::v_IProductWRTBase(), Nektar::StdRegions::StdSegExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdPyrExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdTetExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdTriExp::v_IProductWRTBase_SumFacKernel(), and Nektar::StdRegions::StdExpansion3D::v_PhysEvaluate().

◆ dger()

void F77NAME() Blas::dger ( const int &  m,
const int &  n,
const double &  alpha,
const double *  x,
const int &  incx,
const double *  y,
const int &  incy,
double *  a,
const int &  lda 
)

Referenced by Ger().

◆ dnrm2()

double F77NAME() Blas::dnrm2 ( const int &  n,
const double *  x,
const int &  incx 
)

Referenced by Dnrm2().

◆ Dnrm2()

static double Blas::Dnrm2 ( const int &  n,
const double *  x,
const int &  incx 
)
inlinestatic

Definition at line 170 of file Blas.hpp.

171{
172 return F77NAME(dnrm2)(n, x, incx);
173}
double F77NAME() dnrm2(const int &n, const double *x, const int &incx)

References dnrm2(), and F77NAME.

◆ drot()

void F77NAME() Blas::drot ( const int &  n,
double *  x,
const int &  incx,
double *  y,
const int &  incy,
const double &  c,
const double &  s 
)

Referenced by Drot().

◆ Drot()

static void Blas::Drot ( const int &  n,
double *  x,
const int &  incx,
double *  y,
const int &  incy,
const double &  c,
const double &  s 
)
inlinestatic

BLAS level 1: Plane rotation by c = cos(theta), s = sin(theta)

Definition at line 156 of file Blas.hpp.

158{
159 F77NAME(drot)(n, x, incx, y, incy, c, s);
160}
void F77NAME() drot(const int &n, double *x, const int &incx, double *y, const int &incy, const double &c, const double &s)

References drot(), and F77NAME.

◆ dsbmv()

void F77NAME() Blas::dsbmv ( const char &  uplo,
const int &  m,
const int &  k,
const double &  alpha,
const double *  a,
const int &  lda,
const double *  x,
const int &  incx,
const double &  beta,
double *  y,
const int &  incy 
)

Referenced by Dsbmv(), and Sbmv().

◆ Dsbmv()

static void Blas::Dsbmv ( const char &  uplo,
const int &  m,
const int &  k,
const double &  alpha,
const double *  a,
const int &  lda,
const double *  x,
const int &  incx,
const double &  beta,
double *  y,
const int &  incy 
)
inlinestatic

BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[m x m] is symmetric banded.

Definition at line 301 of file Blas.hpp.

305{
306 F77NAME(dsbmv)(uplo, m, k, alpha, a, lda, x, incx, beta, y, incy);
307}
void F77NAME() dsbmv(const char &uplo, const int &m, const int &k, const double &alpha, const double *a, const int &lda, const double *x, const int &incx, const double &beta, double *y, const int &incy)

References Nektar::LibUtilities::beta, dsbmv(), and F77NAME.

◆ dscal()

void F77NAME() Blas::dscal ( const int &  n,
const double &  alpha,
double *  x,
const int &  incx 
)

Referenced by Dscal().

◆ Dscal()

static void Blas::Dscal ( const int &  n,
const double &  alpha,
double *  x,
const int &  incx 
)
inlinestatic

◆ dspmv()

void F77NAME() Blas::dspmv ( const char &  uplo,
const int &  n,
const double &  alpha,
const double *  a,
const double *  x,
const int &  incx,
const double &  beta,
double *  y,
const int &  incy 
)

Referenced by Dspmv(), and Spmv().

◆ Dspmv()

static void Blas::Dspmv ( const char &  uplo,
const int &  n,
const double &  alpha,
const double *  a,
const double *  x,
const int &  incx,
const double &  beta,
double *  y,
const int &  incy 
)
inlinestatic

BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[n x n] is symmetric packed.

Definition at line 272 of file Blas.hpp.

275{
276 F77NAME(dspmv)(uplo, n, alpha, a, x, incx, beta, y, incy);
277}
void F77NAME() dspmv(const char &uplo, const int &n, const double &alpha, const double *a, const double *x, const int &incx, const double &beta, double *y, const int &incy)

References Nektar::LibUtilities::beta, dspmv(), and F77NAME.

◆ dswap()

void F77NAME() Blas::dswap ( const int &  n,
double *  x,
const int &  incx,
double *  y,
const int &  incy 
)

Referenced by Dswap().

◆ Dswap()

static void Blas::Dswap ( const int &  n,
double *  x,
const int &  incx,
double *  y,
const int &  incy 
)
inlinestatic

BLAS level 1: Swap x with y.

Definition at line 142 of file Blas.hpp.

144{
145 F77NAME(dswap)(n, x, incx, y, incy);
146}
void F77NAME() dswap(const int &n, double *x, const int &incx, double *y, const int &incy)

References dswap(), and F77NAME.

◆ dtpmv()

void F77NAME() Blas::dtpmv ( const char &  uplo,
const char &  trans,
const char &  diag,
const int &  n,
const double *  ap,
double *  x,
const int &  incx 
)

Referenced by Dtpmv(), and Tpmv().

◆ Dtpmv()

static void Blas::Dtpmv ( const char &  uplo,
const char &  trans,
const char &  diag,
const int &  n,
const double *  ap,
double *  x,
const int &  incx 
)
inlinestatic

BLAS level 2: Matrix vector multiply x = alpha A x where A[n x n].

Definition at line 326 of file Blas.hpp.

329{
330 F77NAME(dtpmv)(uplo, trans, diag, n, ap, x, incx);
331}
void F77NAME() dtpmv(const char &uplo, const char &trans, const char &diag, const int &n, const double *ap, double *x, const int &incx)

References dtpmv(), and F77NAME.

◆ Gbmv() [1/2]

static void Blas::Gbmv ( const char &  trans,
const int &  m,
const int &  n,
const int &  kl,
const int &  ku,
const double &  alpha,
const double *  a,
const int &  lda,
const double *  x,
const int &  incx,
const double &  beta,
double *  y,
const int &  incy 
)
inlinestatic

BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[m x n] is banded.

Definition at line 221 of file Blas.hpp.

226{
227 F77NAME(dgbmv)(trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy);
228}

References Nektar::LibUtilities::beta, dgbmv(), and F77NAME.

Referenced by Nektar::NekMultiplyBandedMatrix().

◆ Gbmv() [2/2]

static void Blas::Gbmv ( const char &  trans,
const int &  m,
const int &  n,
const int &  kl,
const int &  ku,
const float &  alpha,
const float *  a,
const int &  lda,
const float *  x,
const int &  incx,
const float &  beta,
float *  y,
const int &  incy 
)
inlinestatic

BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[m x n] is banded.

Definition at line 232 of file Blas.hpp.

237{
238 F77NAME(sgbmv)(trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy);
239}
void F77NAME() sgbmv(const char &trans, const int &m, const int &n, const int &kl, const int &ku, const float &alpha, const float *a, const int &lda, const float *x, const int &incx, const float &beta, float *y, const int &incy)

References Nektar::LibUtilities::beta, F77NAME, and sgbmv().

◆ Gemm() [1/2]

static void Blas::Gemm ( const char &  transa,
const char &  transb,
const int &  m,
const int &  n,
const int &  k,
const double &  alpha,
const double *  a,
const int &  lda,
const double *  b,
const int &  ldb,
const double &  beta,
double *  c,
const int &  ldc 
)
inlinestatic

BLAS level 3: Matrix-matrix multiply C = A x B where op(A)[m x k], op(B)[k x n], C[m x n] DGEMM performs one of the matrix-matrix operations: C := alpha*op( A )*op( B ) + beta*C,.

Definition at line 355 of file Blas.hpp.

360{
362 (transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
363}

References Nektar::LibUtilities::beta, dgemm(), and F77NAME.

Referenced by Nektar::MultiplyEqual(), and Nektar::NekMultiplyFullMatrixFullMatrix().

◆ Gemm() [2/2]

static void Blas::Gemm ( const char &  transa,
const char &  transb,
const int &  m,
const int &  n,
const int &  k,
const float &  alpha,
const float *  a,
const int &  lda,
const float *  b,
const int &  ldb,
const float &  beta,
float *  c,
const int &  ldc 
)
inlinestatic

BLAS level 3: Matrix-matrix multiply C = A x B where op(A)[m x k], op(B)[k x n], C[m x n] DGEMM performs one of the matrix-matrix operations: C := alpha*op( A )*op( B ) + beta*C,.

Definition at line 369 of file Blas.hpp.

374{
376 (transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
377}
void F77NAME() sgemm(const char &trans, const char &transb, const int &m1, const int &n, const int &k, const float &alpha, const float *a, const int &lda, const float *b, const int &ldb, const float &beta, float *c, const int &ldc)

References Nektar::LibUtilities::beta, F77NAME, and sgemm().

◆ Gemv() [1/2]

static void Blas::Gemv ( const char &  trans,
const int &  m,
const int &  n,
const double &  alpha,
const double *  a,
const int &  lda,
const double *  x,
const int &  incx,
const double &  beta,
double *  y,
const int &  incy 
)
inlinestatic

BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[m x n].

Definition at line 191 of file Blas.hpp.

195{
196 F77NAME(dgemv)(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
197}

References Nektar::LibUtilities::beta, dgemv(), and F77NAME.

Referenced by Nektar::DiagonalBlockFullScalMatrixMultiply(), and Nektar::NekMultiplyFullMatrix().

◆ Gemv() [2/2]

static void Blas::Gemv ( const char &  trans,
const int &  m,
const int &  n,
const float &  alpha,
const float *  a,
const int &  lda,
const float *  x,
const int &  incx,
const float &  beta,
float *  y,
const int &  incy 
)
inlinestatic

BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[m x n].

Definition at line 201 of file Blas.hpp.

205{
206 F77NAME(sgemv)(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
207}
void F77NAME() sgemv(const char &trans, const int &m, const int &n, const float &alpha, const float *a, const int &lda, const float *x, const int &incx, const float &beta, float *y, const int &incy)

References Nektar::LibUtilities::beta, F77NAME, and sgemv().

◆ Ger() [1/2]

static void Blas::Ger ( const int &  m,
const int &  n,
const double &  alpha,
const double *  x,
const int &  incx,
const double *  y,
const int &  incy,
double *  a,
const int &  lda 
)
inlinestatic

BLAS level 2: Matrix vector multiply A = alpha*x*y**T + A where A[m x n].

Definition at line 335 of file Blas.hpp.

338{
339 F77NAME(dger)(m, n, alpha, x, incx, y, incy, a, lda);
340}
void F77NAME() dger(const int &m, const int &n, const double &alpha, const double *x, const int &incx, const double *y, const int &incy, double *a, const int &lda)

References dger(), and F77NAME.

Referenced by Nektar::CFSImplicit::AddMatNSBlkDiagVol().

◆ Ger() [2/2]

static void Blas::Ger ( const int &  m,
const int &  n,
const float &  alpha,
const float *  x,
const int &  incx,
const float *  y,
const int &  incy,
float *  a,
const int &  lda 
)
inlinestatic

BLAS level 2: Matrix vector multiply A = alpha*x*y**T + A where A[m x n].

Definition at line 344 of file Blas.hpp.

347{
348 F77NAME(sger)(m, n, alpha, x, incx, y, incy, a, lda);
349}
void F77NAME() sger(const int &m, const int &n, const float &alpha, const float *x, const int &incx, const float *y, const int &incy, float *a, const int &lda)

References F77NAME, and sger().

◆ idamax()

int F77NAME() Blas::idamax ( const int &  n,
const double *  x,
const int &  incx 
)

Referenced by Idamax().

◆ Idamax()

static int Blas::Idamax ( const int &  n,
const double *  x,
const int &  incx 
)
inlinestatic

BLAS level 1: output = 1st value where \( |x[i]| = max |x|_1 \) Note it is modified to return a value between (0,n-1) as per the standard C convention.

Definition at line 184 of file Blas.hpp.

185{
186 return F77NAME(idamax)(n, x, incx) - 1;
187}
int F77NAME() idamax(const int &n, const double *x, const int &incx)

References F77NAME, and idamax().

◆ Sbmv() [1/2]

static void Blas::Sbmv ( const char &  uplo,
const int &  m,
const int &  k,
const double &  alpha,
const double *  a,
const int &  lda,
const double *  x,
const int &  incx,
const double &  beta,
double *  y,
const int &  incy 
)
inlinestatic

BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[m x m] is symmetric banded.

Definition at line 281 of file Blas.hpp.

285{
286 F77NAME(dsbmv)(uplo, m, k, alpha, a, lda, x, incx, beta, y, incy);
287}

References Nektar::LibUtilities::beta, dsbmv(), and F77NAME.

◆ Sbmv() [2/2]

static void Blas::Sbmv ( const char &  uplo,
const int &  m,
const int &  k,
const float &  alpha,
const float *  a,
const int &  lda,
const float *  x,
const int &  incx,
const float &  beta,
float *  y,
const int &  incy 
)
inlinestatic

BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[m x m] is symmetric banded.

Definition at line 291 of file Blas.hpp.

295{
296 F77NAME(ssbmv)(uplo, m, k, alpha, a, lda, x, incx, beta, y, incy);
297}
void F77NAME() ssbmv(const char &uplo, const int &m, const int &k, const float &alpha, const float *a, const int &lda, const float *x, const int &incx, const float &beta, float *y, const int &incy)

References Nektar::LibUtilities::beta, F77NAME, and ssbmv().

◆ sgbmv()

void F77NAME() Blas::sgbmv ( const char &  trans,
const int &  m,
const int &  n,
const int &  kl,
const int &  ku,
const float &  alpha,
const float *  a,
const int &  lda,
const float *  x,
const int &  incx,
const float &  beta,
float *  y,
const int &  incy 
)

Referenced by Gbmv().

◆ sgemm()

void F77NAME() Blas::sgemm ( const char &  trans,
const char &  transb,
const int &  m1,
const int &  n,
const int &  k,
const float &  alpha,
const float *  a,
const int &  lda,
const float *  b,
const int &  ldb,
const float &  beta,
float *  c,
const int &  ldc 
)

Referenced by Gemm().

◆ sgemv()

void F77NAME() Blas::sgemv ( const char &  trans,
const int &  m,
const int &  n,
const float &  alpha,
const float *  a,
const int &  lda,
const float *  x,
const int &  incx,
const float &  beta,
float *  y,
const int &  incy 
)

Referenced by Gemv().

◆ sger()

void F77NAME() Blas::sger ( const int &  m,
const int &  n,
const float &  alpha,
const float *  x,
const int &  incx,
const float *  y,
const int &  incy,
float *  a,
const int &  lda 
)

Referenced by Ger().

◆ Spmv() [1/2]

static void Blas::Spmv ( const char &  uplo,
const int &  n,
const double &  alpha,
const double *  a,
const double *  x,
const int &  incx,
const double &  beta,
double *  y,
const int &  incy 
)
inlinestatic

BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[n x n] is symmetric packed.

Definition at line 254 of file Blas.hpp.

257{
258 F77NAME(dspmv)(uplo, n, alpha, a, x, incx, beta, y, incy);
259}

References Nektar::LibUtilities::beta, dspmv(), and F77NAME.

Referenced by Nektar::NekMultiplySymmetricMatrix().

◆ Spmv() [2/2]

static void Blas::Spmv ( const char &  uplo,
const int &  n,
const float &  alpha,
const float *  a,
const float *  x,
const int &  incx,
const float &  beta,
float *  y,
const int &  incy 
)
inlinestatic

BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[n x n] is symmetric packed.

Definition at line 263 of file Blas.hpp.

266{
267 F77NAME(sspmv)(uplo, n, alpha, a, x, incx, beta, y, incy);
268}
void F77NAME() sspmv(const char &uplo, const int &n, const float &alpha, const float *a, const float *x, const int &incx, const float &beta, float *y, const int &incy)

References Nektar::LibUtilities::beta, F77NAME, and sspmv().

◆ ssbmv()

void F77NAME() Blas::ssbmv ( const char &  uplo,
const int &  m,
const int &  k,
const float &  alpha,
const float *  a,
const int &  lda,
const float *  x,
const int &  incx,
const float &  beta,
float *  y,
const int &  incy 
)

Referenced by Sbmv().

◆ sspmv()

void F77NAME() Blas::sspmv ( const char &  uplo,
const int &  n,
const float &  alpha,
const float *  a,
const float *  x,
const int &  incx,
const float &  beta,
float *  y,
const int &  incy 
)

Referenced by Spmv().

◆ stpmv()

void F77NAME() Blas::stpmv ( const char &  uplo,
const char &  trans,
const char &  diag,
const int &  n,
const float *  ap,
float *  x,
const int &  incx 
)

Referenced by Tpmv().

◆ Tpmv() [1/2]

static void Blas::Tpmv ( const char &  uplo,
const char &  trans,
const char &  diag,
const int &  n,
const double *  ap,
double *  x,
const int &  incx 
)
inlinestatic

BLAS level 2: Matrix vector multiply x = alpha A x where A[n x n].

Definition at line 310 of file Blas.hpp.

313{
314 F77NAME(dtpmv)(uplo, trans, diag, n, ap, x, incx);
315}

References dtpmv(), and F77NAME.

Referenced by Nektar::NekMultiplyLowerTriangularMatrix(), and Nektar::NekMultiplyUpperTriangularMatrix().

◆ Tpmv() [2/2]

static void Blas::Tpmv ( const char &  uplo,
const char &  trans,
const char &  diag,
const int &  n,
const float *  ap,
float *  x,
const int &  incx 
)
inlinestatic

BLAS level 2: Matrix vector multiply x = alpha A x where A[n x n].

Definition at line 318 of file Blas.hpp.

321{
322 F77NAME(stpmv)(uplo, trans, diag, n, ap, x, incx);
323}
void F77NAME() stpmv(const char &uplo, const char &trans, const char &diag, const int &n, const float *ap, float *x, const int &incx)

References F77NAME, and stpmv().