本文整理汇总了C++中cblas_xerbla函数的典型用法代码示例。如果您正苦于以下问题:C++ cblas_xerbla函数的具体用法?C++ cblas_xerbla怎么用?C++ cblas_xerbla使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cblas_xerbla函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: cblas_xerbla
int clapack_zgeqrf
(const enum CBLAS_ORDER Order, ATL_CINT M, ATL_CINT N,
void *A, ATL_CINT lda, void *TAU)
{
int ierr=0;
if (Order != CblasRowMajor && Order != CblasColMajor)
{
ierr = -1;
cblas_xerbla(1, "clapack_zgeqrf",
"Order must be %d or %d, but is set to %d\n",
CblasRowMajor, CblasColMajor, Order);
}
if (M < 0)
{
ierr = -2;
cblas_xerbla(2, "clapack_zgeqrf",
"M cannot be less than zero 0,; is set to %d.\n", M);
}
if (N < 0)
{
ierr = -3;
cblas_xerbla(3, "clapack_zgeqrf",
"N cannot be less than zero 0,; is set to %d.\n", N);
}
if (Order == CblasColMajor)
{
if (lda < M || lda < 1)
{
ierr = -5;
cblas_xerbla(5, "clapack_zgeqrf",
"lda must be >= MAX(M,1): lda=%d M=%d\n", lda, M);
}
}
else
{
if (lda < N || lda < 1)
{
ierr = -5;
cblas_xerbla(5, "clapack_zgeqrf",
"lda must be >= MAX(N,1): lda=%d N=%d\n", lda, N);
}
}
if (ierr)
return(ierr);
if (Order == CblasColMajor)
return(ATL_zgeqrf(M, N, A, lda, TAU, NULL, 0));
else
return(ATL_zgelqf(N, M, A, lda, TAU, NULL, 0));
}
开发者ID:AIDman,项目名称:Kaldi,代码行数:49,代码来源:clapack_zgeqrf.c
示例2: F77_xerbla
void F77_xerbla(char *srname, void *vinfo)
#endif
{
#ifdef F77_CHAR
char *srname;
#endif
char rout[] = {'c','b','l','a','s','_','\0','\0','\0','\0','\0','\0','\0'};
int *info=vinfo;
int i;
extern int CBLAS_CallFromC;
#ifdef F77_CHAR
srname = F2C_STR(F77_srname, XerblaStrLen);
#endif
if (CBLAS_CallFromC)
{
for(i=0; i != XerblaStrLen; i++) rout[i+6] = tolower(srname[i]);
rout[XerblaStrLen+6] = '\0';
cblas_xerbla(*info+1,rout,"");
}
else
{
fprintf(stderr, "Parameter %d to routine %s was incorrect\n",
*info, srname);
}
}
开发者ID:4ker,项目名称:OpenBLAS,代码行数:31,代码来源:xerbla.c
示例3: cblas_sspr
void cblas_sspr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
const int N, const float alpha,
const float *X, const int incX, float *A)
{
int info = 2000;
#define x X
#ifndef NoCblasErrorChecks
if (Order != CblasColMajor && Order != CblasRowMajor)
info = cblas_errprn(1, info, "Order must be %d or %d, but is set to %d",
CblasRowMajor, CblasColMajor, Order);
if (Uplo != CblasUpper && Uplo != CblasLower)
info = cblas_errprn(2, info, "UPLO must be %d or %d, but is set to %d",
CblasUpper, CblasLower, Uplo);
if (N < 0) info = cblas_errprn(3, info,
"N cannot be less than zero; is set to %d.", N);
if (!incX) info = cblas_errprn(6, info,
"incX cannot be zero; is set to %d.", incX);
if (info != 2000)
{
cblas_xerbla(info, "cblas_sspr", "");
return;
}
#endif
if (incX < 0) x += (1-N)*incX;
if (Order == CblasColMajor)
ATL_sspr(Uplo, N, alpha, x, incX, A);
else
ATL_sspr(( (Uplo == CblasUpper) ? CblasLower : CblasUpper ),
N, alpha, x, incX, A);
}
开发者ID:GorgonCryoEM,项目名称:Gorgon-CVS,代码行数:33,代码来源:cblas_sspr.c
示例4: cblas_dger
void cblas_dger(const enum CBLAS_ORDER order, 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)
{
#ifdef F77_INT
F77_INT F77_M=M, F77_N=N, F77_lda=lda, F77_incX=incX, F77_incY=incY;
#else
#define F77_M M
#define F77_N N
#define F77_incX incX
#define F77_incY incY
#define F77_lda lda
#endif
if (order == CblasColMajor)
{
F77_dger( &F77_M, &F77_N, &alpha, X, &F77_incX, Y, &F77_incY, A,
&F77_lda);
}
else if (order == CblasRowMajor)
{
F77_dger( &F77_N, &F77_M ,&alpha, Y, &F77_incY, X, &F77_incX, A,
&F77_lda);
}
else cblas_xerbla(1, "cblas_dger", "Illegal Order setting, %d\n", order);
return;
}
开发者ID:AbdealiJK,项目名称:dlib,代码行数:29,代码来源:cblas_dger.c
示例5: cblas_zgeru
void cblas_zgeru(const enum CBLAS_ORDER order, const integer M, const integer N,
const void *alpha, const void *X, const integer incX,
const void *Y, const integer incY, void *A, const integer lda)
{
#define F77_M M
#define F77_N N
#define F77_incX incX
#define F77_incY incY
#define F77_lda lda
extern integer CBLAS_CallFromC;
extern integer RowMajorStrg;
RowMajorStrg = 0;
CBLAS_CallFromC = 1;
if (order == CblasColMajor)
{
zgeru_( &F77_M, &F77_N, alpha, X, &F77_incX, Y, &F77_incY, A,
&F77_lda);
}
else if (order == CblasRowMajor)
{
RowMajorStrg = 1;
zgeru_( &F77_N, &F77_M, alpha, Y, &F77_incY, X, &F77_incX, A,
&F77_lda);
}
else cblas_xerbla(1, "cblas_zgeru", "Illegal Order setting, %d\n", order);
CBLAS_CallFromC = 0;
RowMajorStrg = 0;
return;
}
开发者ID:juanjosegarciaripoll,项目名称:cblapack,代码行数:31,代码来源:cblas_zgeru.c
示例6: cblas_sger
void cblas_sger(enum CBLAS_ORDER order, f77_int M, f77_int N,
const float alpha, const float *X, f77_int incX,
const float *Y, f77_int incY, float *A, f77_int lda)
{
#ifdef F77_INT
F77_INT F77_M=M, F77_N=N, F77_lda=lda, F77_incX=incX, F77_incY=incY;
#else
#define F77_M M
#define F77_N N
#define F77_incX incX
#define F77_incY incY
#define F77_lda lda
#endif
extern int CBLAS_CallFromC;
extern int RowMajorStrg;
RowMajorStrg = 0;
CBLAS_CallFromC = 1;
if (order == CblasColMajor)
{
F77_sger( &F77_M, &F77_N, &alpha, X, &F77_incX, Y, &F77_incY, A,
&F77_lda);
}
else if (order == CblasRowMajor)
{
RowMajorStrg = 1;
F77_sger( &F77_N, &F77_M, &alpha, Y, &F77_incY, X, &F77_incX, A,
&F77_lda);
}
else cblas_xerbla(1, "cblas_sger", "Illegal Order setting, %d\n", order);
CBLAS_CallFromC = 0;
RowMajorStrg = 0;
return;
}
开发者ID:devinamatthews,项目名称:blis,代码行数:35,代码来源:cblas_sger.c
示例7: cblas_dger2
void cblas_dger2(const enum CBLAS_ORDER Order, ATL_CINT M, ATL_CINT N,
const double alpha, const double *X, ATL_CINT incX,
const double *Y, ATL_CINT incY, const double beta,
const double *W, ATL_CINT incW,
const double *Z, ATL_CINT incZ, double *A, ATL_CINT lda)
{
int info = 2000;
#define x X
#define y Y
#define w W
#define z Z
#ifndef NoCblasErrorChecks
if (M < 0) info = cblas_errprn(2, info,
"M cannot be less than zero; is set to %d.", M);
if (N < 0) info = cblas_errprn(3, info,
"N cannot be less than zero; is set to %d.", N);
if (!incX) info = cblas_errprn(6, info,
"incX cannot be zero; is set to %d.", incX);
if (!incY) info = cblas_errprn(8, info,
"incY cannot be zero; is set to %d.", incY);
if (!incW) info = cblas_errprn(11, info,
"incW cannot be zero; is set to %d.", incW);
if (!incZ) info = cblas_errprn(13, info,
"incZ cannot be zero; is set to %d.", incZ);
if (Order == CblasColMajor)
{
if (lda < M || lda < 1)
info = cblas_errprn(15, info, "lda must be >= MAX(M,1): lda=%d M=%d",
lda, M);
}
else if (Order == CblasRowMajor)
{
if (lda < N || lda < 1)
info = cblas_errprn(15, info, "lda must be >= MAX(N,1): lda=%d M=%d",
lda, N);
}
else
info = cblas_errprn(1, info, "Order must be %d or %d, but is set to %d",
CblasRowMajor, CblasColMajor, Order);
if (info != 2000)
{
cblas_xerbla(info, "cblas_dger2", "");
return;
}
#endif
if (incX < 0) x += (1-M)*incX;
if (incY < 0) y += (1-N)*incY;
if (incW < 0) w += (1-M)*incW;
if (incZ < 0) z += (1-N)*incZ;
if (Order == CblasColMajor)
ATL_dger2(M, N, alpha, x, incX, y, incY, beta, w, incW, z, incZ, A, lda);
else
ATL_dger2(N, M, alpha, y, incY, x, incX, beta, w, incW, z, incZ, A, lda);
}
开发者ID:kevinoid,项目名称:atlas-debian,代码行数:57,代码来源:cblas_dger2.c
示例8: cblas_zgerc
void cblas_zgerc(const enum CBLAS_ORDER Order, const int M, const int N,
const void *alpha, const void *X, const int incX,
const void *Y, const int incY, void *A, const int lda)
{
int info = 2000;
const double *x = X, *y = Y;
void *vy;
double *y0;
double one[2] = {ATL_rone, ATL_rzero};
#ifndef NoCblasErrorChecks
if (M < 0) info = cblas_errprn(2, info,
"M cannot be less than zero; is set to %d.", M);
if (N < 0) info = cblas_errprn(3, info,
"N cannot be less than zero; is set to %d.", N);
if (!incX) info = cblas_errprn(6, info,
"incX cannot be zero; is set to %d.", incX);
if (!incY) info = cblas_errprn(8, info,
"incY cannot be zero; is set to %d.", incY);
if (Order == CblasColMajor)
{
if (lda < M || lda < 1)
info = cblas_errprn(10, info, "lda must be >= MAX(M,1): lda=%d M=%d",
lda, M);
}
else if (Order == CblasRowMajor)
{
if (lda < N || lda < 1)
info = cblas_errprn(10, info, "lda must be >= MAX(N,1): lda=%d M=%d",
lda, N);
}
else
info = cblas_errprn(1, info, "Order must be %d or %d, but is set to %d",
CblasRowMajor, CblasColMajor, Order);
if (info != 2000)
{
cblas_xerbla(info, "cblas_zgerc", "");
return;
}
#endif
if (incX < 0) x += (1-M)*incX<<1;
if (incY < 0) y += (1-N)*incY<<1;
if (Order == CblasColMajor)
ATL_zgerc(M, N, alpha, x, incX, y, incY, A, lda);
else
{
vy = malloc(ATL_Cachelen + ATL_MulBySize(N));
ATL_assert(vy);
y0 = ATL_AlignPtr(vy);
ATL_zmoveConj(N, alpha, y, incY, y0, 1);
ATL_zgeru(N, M, one, y0, 1, x, incX, A, lda);
free(vy);
}
}
开发者ID:GorgonCryoEM,项目名称:Gorgon-CVS,代码行数:56,代码来源:cblas_zgerc.c
示例9: cblas_cher2
void cblas_cher2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
const int N, const void *alpha,
const void *X, const int incX,
const void *Y, const int incY, void *A, const int lda)
{
int info = 2000;
void *vx, *vy;
float *x0, *y0;
const float *x=X, *y=Y, *alp=alpha;
const float one[2]={ATL_rone, ATL_rzero};
#ifndef NoCblasErrorChecks
if (Order != CblasColMajor && Order != CblasRowMajor)
info = cblas_errprn(1, info, "Order must be %d or %d, but is set to %d",
CblasRowMajor, CblasColMajor, Order);
if (Uplo != CblasUpper && Uplo != CblasLower)
info = cblas_errprn(2, info, "UPLO must be %d or %d, but is set to %d",
CblasUpper, CblasLower, Uplo);
if (N < 0) info = cblas_errprn(3, info,
"N cannot be less than zero; is set to %d.", N);
if (!incX) info = cblas_errprn(6, info,
"incX cannot be zero; is set to %d.", incX);
if (!incY) info = cblas_errprn(8, info,
"incY cannot be zero; is set to %d.", incY);
if (lda < N || lda < 1)
info = cblas_errprn(10, info, "lda must be >= MAX(N,1): lda=%d N=%d",
lda, N);
if (info != 2000)
{
cblas_xerbla(info, "cblas_cher2", "");
return;
}
#endif
if (incX < 0) x += (1-N)*incX<<1;
if (incY < 0) y += (1-N)*incY<<1;
if (Order == CblasColMajor)
ATL_cher2(Uplo, N, alpha, x, incX, y, incY, A, lda);
else if (alp[0] != ATL_rzero || alp[1] != ATL_rzero)
{
vx = malloc(ATL_Cachelen + ATL_MulBySize(N));
vy = malloc(ATL_Cachelen + ATL_MulBySize(N));
ATL_assert(vx != NULL && vy != NULL);
x0 = ATL_AlignPtr(vx);
y0 = ATL_AlignPtr(vy);
ATL_cmoveConj(N, alpha, y, incY, y0, 1);
ATL_ccopyConj(N, x, incX, x0, 1);
ATL_cher2(( (Uplo == CblasUpper) ? CblasLower : CblasUpper ),
N, one, y0, 1, x0, 1, A, lda);
free(vx);
free(vy);
}
else ATL_cher2(( (Uplo == CblasUpper) ? CblasLower : CblasUpper ),
N, alpha, y, incY, x, incX, A, lda);
}
开发者ID:AIDman,项目名称:Kaldi,代码行数:56,代码来源:cblas_cher2.c
示例10: clapack_strtri
int clapack_strtri(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
const enum ATLAS_DIAG Diag, const int N,
float *A, const int lda)
{
int ierr;
if (Order != CblasRowMajor && Order != CblasColMajor)
{
ierr = -1;
cblas_xerbla(1, "clapack_strtri",
"Order must be %d or %d, but is set to %d\n",
CblasRowMajor, CblasColMajor, Order);
}
if (Uplo != CblasUpper && Uplo != CblasLower)
{
ierr = -2;
cblas_xerbla(2, "clapack_strtri",
"Uplo must be %d or %d, but is set to %d\n",
CblasUpper, CblasLower, Uplo);
}
if (Diag != CblasUnit && Diag != CblasNonUnit)
{
ierr = -3;
cblas_xerbla(3, "clapack_strtri",
"Diag must be %d or %d, but is set to %d\n",
CblasNonUnit, CblasUnit, Diag);
}
if (N < 0)
{
ierr = -4;
cblas_xerbla(4, "clapack_strtri",
"N cannot be less than zero 0,; is set to %d.\n", N);
}
if (lda < N || lda < 1)
{
ierr = -6;
cblas_xerbla(6, "clapack_strtri",
"lda must be >= MAX(N,1): lda=%d N=%d\n", lda, N);
}
if (ierr) ierr = ATL_strtri(Order, Uplo, Diag, N, A, lda);
return(ierr);
}
开发者ID:certik,项目名称:vendor,代码行数:41,代码来源:clapack_strtri.c
示例11: cblas_ctbmv
void cblas_ctbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
const enum CBLAS_TRANSPOSE TA, const enum CBLAS_DIAG Diag,
const int N, const int K, const void *A, const int lda,
void *X, const int incX)
{
int info = 2000;
enum CBLAS_UPLO uplo;
enum CBLAS_TRANSPOSE ta;
float *x = X;
#ifndef NoCblasErrorChecks
if (Order != CblasColMajor && Order != CblasRowMajor)
info = cblas_errprn(1, info, "Order must be %d or %d, but is set to %d",
CblasRowMajor, CblasColMajor, Order);
if (Uplo != CblasUpper && Uplo != CblasLower)
info = cblas_errprn(2, info, "UPLO must be %d or %d, but is set to %d",
CblasUpper, CblasLower, Uplo);
if (TA != CblasNoTrans && TA != CblasTrans && TA != CblasConjTrans)
info = cblas_errprn(3, info,
"TransA must be %d, %d or %d, but is set to %d",
CblasNoTrans, CblasTrans, CblasConjTrans, TA);
if (Diag != CblasUnit && Diag != CblasNonUnit)
info = cblas_errprn(4, info, "DIAG must be %d or %d, but is set to %d",
CblasUnit, CblasNonUnit, Diag);
if (N < 0) info = cblas_errprn(5, info,
"N cannot be less than zero; is set to %d.", N);
if (K < 0)
info = cblas_errprn(6, info, "Valid K: 0 < K < N; K=%d, N=%d.", K, N);
if (lda < K+1)
info = cblas_errprn(8, info, "lda must be >= K+1: lda=%d K=%d", lda, K);
if (!incX)
info = cblas_errprn(10, info, "incX cannot be zero; is set to %d.", incX);
if (info != 2000)
{
cblas_xerbla(info, "cblas_ctbmv", "");
return;
}
#endif
if (incX < 0) x += (1-N)*incX<<1;
if (Order == CblasColMajor)
ATL_ctbmv(Uplo, TA, Diag, N, K, A, lda, x, incX);
else
{
uplo = ( (Uplo == CblasUpper) ? CblasLower : CblasUpper );
if (TA == CblasNoTrans) ta = CblasTrans;
else if (TA == CblasConjTrans) ta = AtlasConj;
else ta = CblasNoTrans;
ATL_ctbmv(uplo, ta, Diag, N, K, A, lda, x, incX);
}
}
开发者ID:certik,项目名称:vendor,代码行数:51,代码来源:cblas_ctbmv.c
示例12: sgemv_
void 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 )
{
/* It is safe to use the original SGEMV if we are not using AVX on Mavericks
* or the input arrays A, X and Y are all aligned on 32 byte boundaries. */
#define BADARRAY(x) (((npy_intp)(void*)x) % 32)
const int use_sgemm = AVX_and_10_9 && (BADARRAY(A) || BADARRAY(X) || BADARRAY(Y));
if (!use_sgemm) {
accelerate_sgemv(trans,m,n,alpha,A,ldA,X,incX,beta,Y,incY);
return;
}
/* Arrays are misaligned, the CPU supports AVX, and we are running
* Mavericks.
*
* Emulation of SGEMV with SGEMM:
*
* SGEMV allows vectors to be strided. SGEMM requires all arrays to be
* contiguous along the leading dimension. To emulate striding in SGEMV
* with the leading dimension arguments in SGEMM we compute
*
* Y = alpha * op(A) @ X + beta * Y
*
* as
*
* Y.T = alpha * X.T @ op(A).T + beta * Y.T
*
* Because Fortran uses column major order and X.T and Y.T are row vectors,
* the leading dimensions of X.T and Y.T in SGEMM become equal to the
* strides of the the column vectors X and Y in SGEMV. */
switch (*trans) {
case 'T':
case 't':
case 'C':
case 'c':
accelerate_cblas_sgemm( CblasColMajor, CblasNoTrans, CblasNoTrans,
1, *n, *m, *alpha, X, *incX, A, *ldA, *beta, Y, *incY );
break;
case 'N':
case 'n':
accelerate_cblas_sgemm( CblasColMajor, CblasNoTrans, CblasTrans,
1, *m, *n, *alpha, X, *incX, A, *ldA, *beta, Y, *incY );
break;
default:
cblas_xerbla(1, "SGEMV", "Illegal transpose setting: %c\n", *trans);
}
}
开发者ID:HaoxinSun,项目名称:numpy,代码行数:50,代码来源:apple_sgemv_fix.c
示例13: cblas_dtrmv
void cblas_dtrmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
const enum CBLAS_TRANSPOSE TA, const enum CBLAS_DIAG Diag,
const int N, const double *A, const int lda,
double *X, const int incX)
{
int info = 2000;
enum CBLAS_UPLO uplo;
enum CBLAS_TRANSPOSE ta;
#define x X
#ifndef NoCblasErrorChecks
if (Order != CblasColMajor && Order != CblasRowMajor)
info = cblas_errprn(1, info, "Order must be %d or %d, but is set to %d",
CblasRowMajor, CblasColMajor, Order);
if (Uplo != CblasUpper && Uplo != CblasLower)
info = cblas_errprn(2, info, "UPLO must be %d or %d, but is set to %d",
CblasUpper, CblasLower, Uplo);
if (TA != CblasNoTrans && TA != CblasTrans && TA != CblasConjTrans)
info = cblas_errprn(3, info,
"TransA must be %d, %d or %d, but is set to %d",
CblasNoTrans, CblasTrans, CblasConjTrans, TA);
if (Diag != CblasUnit && Diag != CblasNonUnit)
info = cblas_errprn(4, info, "DIAG must be %d or %d, but is set to %d",
CblasUnit, CblasNonUnit, Diag);
if (N < 0) info = cblas_errprn(5, info,
"N cannot be less than zero; is set to %d.", N);
if (lda < N || lda < 1)
info = cblas_errprn(7, info, "lda must be >= MAX(N,1): lda=%d N=%d",
lda, N);
if (!incX) info = cblas_errprn(9, info,
"incX cannot be zero; is set to %d.", incX);
if (info != 2000)
{
cblas_xerbla(info, "cblas_dtrmv", "");
return;
}
#endif
if (incX < 0) x += (1-N)*incX;
if (Order == CblasColMajor)
ATL_dtrmv(Uplo, TA, Diag, N, A, lda, x, incX);
else
{
uplo = ( (Uplo == CblasUpper) ? CblasLower : CblasUpper );
if (TA == CblasNoTrans) ta = CblasTrans;
else ta = CblasNoTrans;
ATL_dtrmv(uplo, ta, Diag, N, A, lda, x, incX);
}
}
开发者ID:AIDman,项目名称:Kaldi,代码行数:49,代码来源:cblas_dtrmv.c
示例14: cblas_zher
void cblas_zher(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
const int N, const double alpha,
const void *X, const int incX, void *A, const int lda)
{
int info = 2000;
void *vx;
double one[2] = {ATL_rone, ATL_rzero};
double *x0;
const double *x=X;
#ifndef NoCblasErrorChecks
if (Order != CblasColMajor && Order != CblasRowMajor)
info = cblas_errprn(1, info, "Order must be %d or %d, but is set to %d",
CblasRowMajor, CblasColMajor, Order);
if (Uplo != CblasUpper && Uplo != CblasLower)
info = cblas_errprn(2, info, "UPLO must be %d or %d, but is set to %d",
CblasUpper, CblasLower, Uplo);
if (N < 0) info = cblas_errprn(3, info,
"N cannot be less than zero; is set to %d.", N);
if (!incX) info = cblas_errprn(6, info,
"incX cannot be zero; is set to %d.", incX);
if (lda < N || lda < 1)
info = cblas_errprn(8, info, "lda must be >= MAX(N,1): lda=%d N=%d",
lda, N);
if (info != 2000)
{
cblas_xerbla(info, "cblas_zher", "");
return;
}
#endif
if (incX < 0) x += (1-N)*incX<<1;
if (Order == CblasColMajor)
ATL_zher(Uplo, N, alpha, x, incX, A, lda);
else if (alpha != ATL_rzero)
{
vx = malloc(ATL_Cachelen + ATL_MulBySize(N));
ATL_assert(vx);
x0 = ATL_AlignPtr(vx);
ATL_zmoveConj(N, one, x, incX, x0, 1);
ATL_zher(( (Uplo == CblasUpper) ? CblasLower : CblasUpper ),
N, alpha, x0, 1, A, lda);
free(vx);
}
else
ATL_zher(( (Uplo == CblasUpper) ? CblasLower : CblasUpper ),
N, ATL_rzero, x, incX, A, lda);
}
开发者ID:apollos,项目名称:atlas,代码行数:49,代码来源:cblas_zher.c
示例15: cblas_sger
void cblas_sger (const enum CBLAS_ORDER Order, 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)
{
int info = 2000;
#define x X
#define y Y
#ifndef NoCblasErrorChecks
if (M < 0) info = cblas_errprn(2, info,
"M cannot be less than zero; is set to %d.", M);
if (N < 0) info = cblas_errprn(3, info,
"N cannot be less than zero; is set to %d.", N);
if (!incX) info = cblas_errprn(6, info,
"incX cannot be zero; is set to %d.", incX);
if (!incY) info = cblas_errprn(8, info,
"incY cannot be zero; is set to %d.", incY);
if (Order == CblasColMajor)
{
if (lda < M || lda < 1)
info = cblas_errprn(10, info, "lda must be >= MAX(M,1): lda=%d M=%d",
lda, M);
}
else if (Order == CblasRowMajor)
{
if (lda < N || lda < 1)
info = cblas_errprn(10, info, "lda must be >= MAX(N,1): lda=%d M=%d",
lda, N);
}
else
info = cblas_errprn(1, info, "Order must be %d or %d, but is set to %d",
CblasRowMajor, CblasColMajor, Order);
if (info != 2000)
{
cblas_xerbla(info, "cblas_sger", "");
return;
}
#endif
if (incX < 0) x += (1-M)*incX;
if (incY < 0) y += (1-N)*incY;
if (Order == CblasColMajor)
ATL_sger(M, N, alpha, x, incX, y, incY, A, lda);
else
ATL_sger(N, M, alpha, y, incY, x, incX, A, lda);
}
开发者ID:apollos,项目名称:atlas,代码行数:47,代码来源:cblas_sger.c
示例16: cblas_dsbmv
void cblas_dsbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
const int N, 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)
{
int info = 2000;
const enum CBLAS_UPLO ruplo = (Uplo == CblasUpper) ? CblasLower : CblasUpper;
#define x X
#define y Y
#ifndef NoCblasErrorChecks
if (Order != CblasColMajor && Order != CblasRowMajor)
info = cblas_errprn(1, info, "Order must be %d or %d, but is set to %d",
CblasRowMajor, CblasColMajor, Order);
if (Uplo != CblasUpper && Uplo != CblasLower)
info = cblas_errprn(2, info,
"Uplo must be %d or %d, but is set to %d",
CblasUpper, CblasLower, Uplo);
if (N < 0) info = cblas_errprn(3, info,
"N cannot be less than zero; is set to %d.", N);
if (K < 0)
info = cblas_errprn(4, info, "Valid K: 0 < K < N; K=%d, N=%d.", K, N);
if (lda < K+1) info = cblas_errprn(7, info,
"lda cannot be less than K+1; K=%d, lda=%d\n", K, lda);
if (!incX) info = cblas_errprn(9, info,
"incX cannot be zero; is set to %d.", incX);
if (!incY) info = cblas_errprn(12, info,
"incY cannot be zero; is set to %d.", incY);
if (info != 2000)
{
cblas_xerbla(info, "cblas_dsbmv", "");
return;
}
#endif
if (incX < 0) x += (1-N)*incX;
if (incY < 0) y += (1-N)*incY;
if (Order == CblasColMajor)
ATL_dsbmv(Uplo, N, K, alpha, A, lda, x, incX, beta, y, incY);
else
ATL_dsbmv(ruplo, N, K, alpha, A, lda, x, incX, beta, y, incY);
}
开发者ID:apollos,项目名称:atlas,代码行数:43,代码来源:cblas_dsbmv.c
示例17: cblas_ssyr2
void cblas_ssyr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
const int N, const float alpha,
const float *X, const int incX,
const float *Y, const int incY, float *A, const int lda)
{
int info = 2000;
#define x X
#define y Y
#ifndef NoCblasErrorChecks
if (Order != CblasColMajor && Order != CblasRowMajor)
info = cblas_errprn(1, info, "Order must be %d or %d, but is set to %d",
CblasRowMajor, CblasColMajor, Order);
if (Uplo != CblasUpper && Uplo != CblasLower)
info = cblas_errprn(2, info, "UPLO must be %d or %d, but is set to %d",
CblasUpper, CblasLower, Uplo);
if (N < 0) info = cblas_errprn(3, info,
"N cannot be less than zero; is set to %d.", N);
if (!incX) info = cblas_errprn(6, info,
"incX cannot be zero; is set to %d.", incX);
if (!incY) info = cblas_errprn(8, info,
"incY cannot be zero; is set to %d.", incY);
if (lda < N || lda < 1)
info = cblas_errprn(10, info, "lda must be >= MAX(N,1): lda=%d N=%d",
lda, N);
if (info != 2000)
{
cblas_xerbla(info, "cblas_ssyr2", "");
return;
}
#endif
if (incX < 0) x += (1-N)*incX;
if (incY < 0) y += (1-N)*incY;
if (Order == CblasColMajor)
ATL_ssyr2(Uplo, N, alpha, x, incX, y, incY, A, lda);
else
ATL_ssyr2(( (Uplo == CblasUpper) ? CblasLower : CblasUpper ),
N, alpha, y, incY, x, incX, A, lda);
}
开发者ID:certik,项目名称:vendor,代码行数:41,代码来源:cblas_ssyr2.c
示例18: clapack_cposv
int clapack_cposv(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
const int N, const int NRHS, void *A, const int lda,
void *B, const int ldb)
{
int ierr = 0;
if (Order != CblasRowMajor && Order != CblasColMajor)
{
ierr = -1;
cblas_xerbla(1, "clapack_cposv",
"Order must be %d or %d, but is set to %d\n",
CblasRowMajor, CblasColMajor, Order);
}
if (Uplo != CblasUpper && Uplo != CblasLower)
{
ierr = -2;
cblas_xerbla(2, "clapack_cposv",
"Uplo must be %d or %d, but is set to %d\n",
CblasUpper, CblasLower, Uplo);
}
if (N < 0)
{
ierr = -3;
cblas_xerbla(3, "clapack_cposv",
"N cannot be less than zero 0,; is set to %d.\n", N);
}
if (NRHS < 0)
{
ierr = -4;
cblas_xerbla(4, "clapack_cposv",
"NRHS cannot be less than zero 0,; is set to %d.\n", NRHS);
}
if (lda < N || lda < 1)
{
ierr = -6;
cblas_xerbla(6, "clapack_cposv",
"lda must be >= MAX(N,1): lda=%d N=%d\n", lda, N);
}
if (ldb < N || ldb < 1)
{
ierr = -8;
cblas_xerbla(8, "clapack_cposv",
"ldb must be >= MAX(N,1): ldb=%d N=%d\n", ldb, N);
}
if (!ierr) ierr = ATL_cpotrf(Order, Uplo, N, A, lda);
if (!ierr) ATL_cpotrs(Order, Uplo, N, NRHS, A, lda, B, ldb);
return(ierr);
}
开发者ID:AIDman,项目名称:Kaldi,代码行数:48,代码来源:clapack_cposv.c
示例19: cblas_xerbla
int clapack_dgetrs
(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE Trans,
const int N, const int NRHS, const double *A, const int lda,
const int *ipiv, double *B, const int ldb)
{
int ierr=0;
if (Order != CblasRowMajor && Order != CblasColMajor)
{
ierr = -1;
cblas_xerbla(1, "clapack_dgetrs",
"Order must be %d or %d, but is set to %d\n",
CblasRowMajor, CblasColMajor, Order);
}
if (Trans != CblasNoTrans && Trans != CblasTrans && Trans != CblasConjTrans)
{
ierr = -2;
cblas_xerbla(2, "clapack_dgetrs",
"Trans must be %d, %d, or %d, but is set to %d\n",
CblasNoTrans, CblasTrans, CblasConjTrans);
}
if (N < 0)
{
ierr = -3;
cblas_xerbla(3, "clapack_dgetrs",
"N cannot be less than zero 0,; is set to %d.\n", N);
}
if (NRHS < 0)
{
ierr = -4;
cblas_xerbla(4, "clapack_dgetrs",
"NRHS cannot be less than zero 0,; is set to %d.\n", NRHS);
}
if (lda < N || lda < 1)
{
ierr = -6;
cblas_xerbla(6, "clapack_dgetrs",
"lda must be >= MAX(N,1): lda=%d N=%d\n", lda, N);
}
if (ldb < N || ldb < 1)
{
ierr = -9;
cblas_xerbla(9, "clapack_dgetrs",
"ldb must be >= MAX(N,1): lda=%d N=%d\n", lda, N);
}
if (!ierr) ATL_dgetrs(Order, Trans, N, NRHS, A, lda, ipiv, B, ldb);
return(ierr);
}
开发者ID:AIDman,项目名称:Kaldi,代码行数:47,代码来源:clapack_dgetrs.c
示例20: cblas_cgeru
void cblas_cgeru(const CBLAS_LAYOUT layout, const int M, const int N,
const void *alpha, const void *X, const int incX,
const void *Y, const int incY, void *A, const int lda)
{
#ifdef F77_INT
F77_INT F77_M=M, F77_N=N, F77_lda=lda, F77_incX=incX, F77_incY=incY;
#else
#define F77_M M
#define F77_N N
#define F77_incX incX
#define F77_incY incY
#define F77_lda lda
#endif
extern int CBLAS_CallFromC;
extern int RowMajorStrg;
RowMajorStrg = 0;
CBLAS_CallFromC = 1;
if (layout == CblasColMajor)
{
F77_cgeru( &F77_M, &F77_N, alpha, X, &F77_incX, Y, &F77_incY, A,
&F77_lda);
}
else if (layout == CblasRowMajor)
{
RowMajorStrg = 1;
F77_cgeru( &F77_N, &F77_M, alpha, Y, &F77_incY, X, &F77_incX, A,
&F77_lda);
}
else cblas_xerbla(1, "cblas_cgeru","Illegal layout setting, %d\n", layout);
CBLAS_CallFromC = 0;
RowMajorStrg = 0;
return;
}
开发者ID:ChinaQuants,项目名称:OpenBLAS,代码行数:36,代码来源:cblas_cgeru.c
注:本文中的cblas_xerbla函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论