OpenCAEPoro  v0.5.0
A simulator for multicomponent porous media flow
Functions
DenseMat.hpp File Reference

Operations about small dense mat. More...

#include <algorithm>
#include <iomanip>
#include <iostream>
#include <string>

Go to the source code of this file.

Functions

void dscal_ (const int *n, const double *alpha, double *x, const int *incx)
 Scales a vector by a constant.
 
double ddot_ (const int *n, double *a, const int *inca, double *b, const int *incb)
 Forms the dot product of two vectors.
 
int dcopy_ (const int *n, const double *src, const int *incx, double *dst, const int *incy)
 Copies a vector, src, to a vector, dst.
 
int daxpy_ (const int *n, const double *alpha, const double *x, const int *incx, double *y, const int *incy)
 Constant times a vector plus a vector.
 
double dnrm2_ (const int *n, double *x, const int *incx)
 Computes the Euclidean norm of a vector.
 
double dasum_ (const int *n, double *x, const int *incx)
 Computes the sum of the absolute values of a vector.
 
int idamax_ (const int *n, double *x, const int *incx)
 Finds the index of element having max absolute value.
 
int 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)
 Performs matrix-matrix operations C : = alpha * op(A) * op(B) + beta * C.
 
int dgesv_ (const int *n, const int *nrhs, double *A, const int *lda, int *ipiv, double *b, const int *ldb, int *info)
 Computes the solution to system of linear equations A * X = B for general matrices.
 
int dsysv_ (const char *uplo, const int *n, const int *nrhs, double *A, const int *lda, int *ipiv, double *b, const int *ldb, double *work, const int *lwork, int *info)
 Computes the solution to system of linear equations A * X = B for symm matrices.
 
int ssyevd_ (char *jobz, char *uplo, const int *n, float *A, const int *lda, float *w, float *work, const int *lwork, int *iwork, const int *liwork, int *info)
 
void CalEigenSY (const int &N, float *A, float *w, float *work, const int &lwork)
 Calculate the minimal eigenvalue for symmetric matrix with mkl lapack.
 
void Dcopy (const int &N, double *dst, const double *src)
 Calculate the minimal eigenvalue for symmetric matrix with mkl lapack. More...
 
double Ddot (int n, double *a, double *b)
 Dot product of two double vectors stored as pointers.
 
double Dnorm1 (const int &N, double *x)
 Computes the L1-norm of a vector.
 
double Dnorm2 (const int &N, double *x)
 Computes the L2-norm of a vector.
 
void Dscalar (const int &n, const double &alpha, double *x)
 Scales a vector by a constant.
 
void Daxpy (const int &n, const double &alpha, const double *x, double *y)
 Constant times a vector plus a vector.
 
void DaABpbC (const int &m, const int &n, const int &k, const double &alpha, const double *A, const double *B, const double &beta, double *C)
 Computes C' = alpha B'A' + beta C', all matrices are column-major.
 
void myDABpC (const int &m, const int &n, const int &k, const double *A, const double *B, double *C)
 
void myDABpCp (const int &m, const int &n, const int &k, const double *A, const double *B, double *C, const int *flag, const int N)
 
void myDABpCp1 (const int &m, const int &n, const int &k, const double *A, const double *B, double *C, const int *flag, const int N)
 
void myDABpCp2 (const int &m, const int &n, const int &k, const double *A, const double *B, double *C, const int *flag, const int N)
 
void DaAxpby (const int &m, const int &n, const double &a, const double *A, const double *x, const double &b, double *y)
 Computes y = a A x + b y.
 
void LUSolve (const int &nrhs, const int &N, double *A, double *b, int *pivot)
 Calls dgesv to solve the linear system for general matrices.
 
int SYSSolve (const int &nrhs, const char *uplo, const int &N, double *A, double *b, int *pivot, double *work, const int &lwork)
 Calls dsysy to solve the linear system for symm matrices.
 
template<typename T >
void PrintDX (const int &N, const T *x)
 Prints a vector.
 
template<typename T >
bool CheckNan (const int &N, const T *x)
 check NaN
 

Detailed Description

Operations about small dense mat.

Author
Shizhe Li
Date
Oct/24/2021

Copyright (C) 2021–present by the OpenCAEPoro team. All rights reserved.

Released under the terms of the GNU Lesser General Public License 3.0 or later.

Definition in file DenseMat.hpp.

Function Documentation

◆ Dcopy()

void Dcopy ( const int &  N,
double *  dst,
const double *  src 
)

Calculate the minimal eigenvalue for symmetric matrix with mkl lapack.

Copy a double vector from src to dst.

Definition at line 36 of file DenseMat.cpp.

37 {
38  const int incx = 1, incy = 1;
39  dcopy_(&N, src, &incx, dst, &incy);
40 }
int dcopy_(const int *n, const double *src, const int *incx, double *dst, const int *incy)
Copies a vector, src, to a vector, dst.

References dcopy_().

◆ ssyevd_()

int ssyevd_ ( char *  jobz,
char *  uplo,
const int *  n,
float *  A,
const int *  lda,
float *  w,
float *  work,
const int *  lwork,
int *  iwork,
const int *  liwork,
int *  info 
)

Computes the eigenvalues and, optionally, the leftand /or right eigenvectors for SY matrices