18 #ifndef GEOSX_LINEARALGEBRA_INTERFACES_BLASLAPACKLA_HPP_ 19 #define GEOSX_LINEARALGEBRA_INTERFACES_BLASLAPACKLA_HPP_ 37 template<
typename T >
41 template<
typename T >
45 template<
typename T >
177 real64 const alpha = 1. );
195 real64 const alpha = 1. );
202 real64 const alpha = 1. );
259 real64 const beta = 0.0 );
282 real64 const beta = 0.0 );
305 real64 const beta = 0.0 );
330 real64 const beta = 0.0 );
355 real64 const beta = 0.0 );
380 real64 const beta = 0.0 );
567 Vec< std::complex< real64 > >
const & lambda );
573 Vec< std::complex< real64 > >
const & lambda );
static void vectorCopy(Vec< real64 const > const &X, Vec< real64 > const &Y)
Vector copy; Y = X.
static real64 vectorNormInf(Vec< real64 const > const &X)
Returns the infinity-norm of the vector.
static void matrixCopy(MatRowMajor< real64 const > const &A, MatRowMajor< real64 > const &B)
Matrix copy; B = A.
normal distribution (0,1)
uniform distribution (-1,1)
static void matrixMatrixAdd(MatRowMajor< real64 const > const &A, MatRowMajor< real64 > const &B, real64 const alpha=1.)
Matrix-Matrix sum; B = alpha*A + B.
static void matrixScale(real64 const alpha, MatRowMajor< real64 > const &A)
In-place scalar-matrix product; A = alpha*A.
static real64 vectorDot(Vec< real64 const > const &X, Vec< real64 const > const &Y)
Returns the dot product of two vectors.
This class serves to provide a sliced multidimensional interface to the family of LvArray classes...
static void matrixTMatrixTMultiply(MatRowMajor< real64 const > const &A, MatRowMajor< real64 const > const &B, MatRowMajor< real64 > const &C, real64 const alpha=1.0, real64 const beta=0.0)
transpose(Matrix)-transpose(Matrix) product; C = alpha*transpose(A)*transpose(B) + beta*C...
static void matrixMatrixMultiply(MatRowMajor< real64 const > const &A, MatRowMajor< real64 const > const &B, MatRowMajor< real64 > const &C, real64 const alpha=1.0, real64 const beta=0.0)
Matrix-Matrix product; C = alpha*A*B + beta*C.
This class contains a collection of BLAS and LAPACK linear algebra operations for GEOSX array1d and a...
static void matrixSVD(MatRowMajor< real64 const > const &A, MatRowMajor< real64 > const &U, Vec< real64 > const &S, MatRowMajor< real64 > const &VT)
Computes the singular value decomposition of A.
static real64 matrixNormInf(MatRowMajor< real64 const > const &A)
Returns the infinity norm of the matrix.
static void matrixTVectorMultiply(MatRowMajor< real64 const > const &A, Vec< real64 const > const &X, Vec< real64 > const &Y, real64 const alpha=1.0, real64 const beta=0.0)
transpose(Matrix)-Vector product; Y = alpha*transpose(A)*X + beta*Y.
static void matrixInverse(MatRowMajor< real64 const > const &A, MatRowMajor< real64 > const &Ainv, real64 &detA)
Computes the inverse matrix; Ainv = inverse(A).
double real64
64-bit floating point type.
static real64 matrixNormFrobenius(MatRowMajor< real64 const > const &A)
Returns the Frobenius norm of the matrix.
static void vectorScale(real64 const alpha, Vec< real64 > const &X)
In-place scalar-vector product; X = alpha*X.
static void vectorVectorAdd(Vec< real64 const > const &X, Vec< real64 > const &Y, real64 const alpha=1.)
Vector-Vector sum; Y = alpha*X + Y.
uniform distribution (0,1)
static void matrixVectorMultiply(MatRowMajor< real64 const > const &A, Vec< real64 const > const &X, Vec< real64 > const &Y, real64 const alpha=1.0, real64 const beta=0.0)
Matrix-Vector product; Y = alpha*A*X + beta*Y.
static void vectorRand(Vec< real64 > const &X, RandomNumberDistribution const &idist=RandomNumberDistribution::UNIFORM_01)
Sets vector entries to random real numbers.
static void setRandomNumberGeneratorSeed(arraySlice1d< int const > const &seed)
Set the random number generator seed.
static void matrixMatrixTMultiply(MatRowMajor< real64 const > const &A, MatRowMajor< real64 const > const &B, MatRowMajor< real64 > const &C, real64 const alpha=1.0, real64 const beta=0.0)
Matrix-transpose(Matrix) product; C = alpha*A*transpose(B) + beta*C.
static real64 matrixNorm1(MatRowMajor< real64 const > const &A)
Returns the one norm of the matrix.
static void matrixTMatrixMultiply(MatRowMajor< real64 const > const &A, MatRowMajor< real64 const > const &B, MatRowMajor< real64 > const &C, real64 const alpha=1.0, real64 const beta=0.0)
transpose(Matrix)-Matrix product; C = alpha*transpose(A)*B + beta*C.
RandomNumberDistribution
This enum class specifies the type of distribution for generating random real numbers.
std::int32_t integer
Signed integer type.
static void matrixEigenvalues(MatRowMajor< real64 const > const &A, Vec< std::complex< real64 > > const &lambda)
Computes the eigenvalues of A.
static real64 vectorNorm1(Vec< real64 const > const &X)
Returns the 1-norm of the vector.
static void matrixRand(MatRowMajor< real64 > const &A, RandomNumberDistribution const &idist=RandomNumberDistribution::UNIFORM_01)
Sets matrix entries to random real numbers.
static real64 vectorNorm2(Vec< real64 const > const &X)
Returns the two norm of the vector.
static void getRandomNumberGeneratorSeed(arraySlice1d< int > const &seed)
Get the random number generator seed.
static real64 determinant(MatRowMajor< real64 const > const &A)
Returns the determinant of a square matrix.