|
Packit |
67cb25 |
/* cblas/error_cblas_l2.h
|
|
Packit |
67cb25 |
*
|
|
Packit |
67cb25 |
* Copyright (C) 2010 José Luis García Pallero
|
|
Packit |
67cb25 |
*
|
|
Packit |
67cb25 |
* This program is free software; you can redistribute it and/or modify
|
|
Packit |
67cb25 |
* it under the terms of the GNU General Public License as published by
|
|
Packit |
67cb25 |
* the Free Software Foundation; either version 3 of the License, or (at
|
|
Packit |
67cb25 |
* your option) any later version.
|
|
Packit |
67cb25 |
*
|
|
Packit |
67cb25 |
* This program is distributed in the hope that it will be useful, but
|
|
Packit |
67cb25 |
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
67cb25 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
67cb25 |
* General Public License for more details.
|
|
Packit |
67cb25 |
*
|
|
Packit |
67cb25 |
* You should have received a copy of the GNU General Public License
|
|
Packit |
67cb25 |
* along with this program; if not, write to the Free Software
|
|
Packit |
67cb25 |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
Packit |
67cb25 |
*/
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
#ifndef __ERROR_CBLAS_L2_H__
|
|
Packit |
67cb25 |
#define __ERROR_CBLAS_L2_H__
|
|
Packit |
67cb25 |
#include <gsl/gsl_math.h>
|
|
Packit |
67cb25 |
#include "error_cblas.h"
|
|
Packit |
67cb25 |
/*
|
|
Packit |
67cb25 |
* =============================================================================
|
|
Packit |
67cb25 |
* Prototypes for level 2 BLAS
|
|
Packit |
67cb25 |
* =============================================================================
|
|
Packit |
67cb25 |
*/
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/*
|
|
Packit |
67cb25 |
* Routines with standard 4 prefixes (S, D, C, Z)
|
|
Packit |
67cb25 |
*/
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xgemv() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_GEMV(pos,order,TransA,M,N,alpha,A,lda,X,incX,beta,Y,incY) \
|
|
Packit |
67cb25 |
CHECK_ORDER(pos,1,order); \
|
|
Packit |
67cb25 |
CHECK_TRANSPOSE(pos,2,TransA); \
|
|
Packit |
67cb25 |
CHECK_DIM(pos,3,M); \
|
|
Packit |
67cb25 |
CHECK_DIM(pos,4,N); \
|
|
Packit |
67cb25 |
if((order)==CblasRowMajor) { \
|
|
Packit |
67cb25 |
if((lda)
|
|
Packit |
67cb25 |
pos = 7; \
|
|
Packit |
67cb25 |
} \
|
|
Packit |
67cb25 |
} else if((order)==CblasColMajor) { \
|
|
Packit |
67cb25 |
if((lda)
|
|
Packit |
67cb25 |
pos = 7; \
|
|
Packit |
67cb25 |
} \
|
|
Packit |
67cb25 |
}; \
|
|
Packit |
67cb25 |
CHECK_STRIDE(pos,9,incX); \
|
|
Packit |
67cb25 |
CHECK_STRIDE(pos,12,incY);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xgbmv() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_GBMV(pos,order,TransA,M,N,KL,KU,alpha,A,lda,X,incX,beta,Y,incY) \
|
|
Packit |
67cb25 |
CHECK_ORDER(pos,1,order); \
|
|
Packit |
67cb25 |
CHECK_TRANSPOSE(pos,2,TransA); \
|
|
Packit |
67cb25 |
CHECK_DIM(pos,3,M); \
|
|
Packit |
67cb25 |
CHECK_DIM(pos,4,N); \
|
|
Packit |
67cb25 |
CHECK_DIM(pos,5,KL); \
|
|
Packit |
67cb25 |
CHECK_DIM(pos,6,KU); \
|
|
Packit |
67cb25 |
if((lda)
|
|
Packit |
67cb25 |
pos = 9; \
|
|
Packit |
67cb25 |
}; \
|
|
Packit |
67cb25 |
CHECK_STRIDE(pos,11,incX); \
|
|
Packit |
67cb25 |
CHECK_STRIDE(pos,14,incY);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xtrmv() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_TRMV(pos,order,Uplo,TransA,Diag,N,A,lda,X,incX) \
|
|
Packit |
67cb25 |
CHECK_ORDER(pos,1,order); \
|
|
Packit |
67cb25 |
CHECK_UPLO(pos,2,Uplo); \
|
|
Packit |
67cb25 |
CHECK_TRANSPOSE(pos,3,TransA); \
|
|
Packit |
67cb25 |
CHECK_DIAG(pos,4,Diag); \
|
|
Packit |
67cb25 |
CHECK_DIM(pos,5,N); \
|
|
Packit |
67cb25 |
if((lda)
|
|
Packit |
67cb25 |
pos = 7; \
|
|
Packit |
67cb25 |
CHECK_STRIDE(pos,9,incX);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xtbmv() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_TBMV(pos,order,Uplo,TransA,Diag,N,K,A,lda,X,incX) \
|
|
Packit |
67cb25 |
CHECK_ORDER(pos,1,order); \
|
|
Packit |
67cb25 |
CHECK_UPLO(pos,2,Uplo); \
|
|
Packit |
67cb25 |
CHECK_TRANSPOSE(pos,3,TransA); \
|
|
Packit |
67cb25 |
CHECK_DIAG(pos,4,Diag); \
|
|
Packit |
67cb25 |
CHECK_DIM(pos,5,N); \
|
|
Packit |
67cb25 |
CHECK_DIM(pos,6,K); \
|
|
Packit |
67cb25 |
if((lda)
|
|
Packit |
67cb25 |
pos = 8; \
|
|
Packit |
67cb25 |
}; \
|
|
Packit |
67cb25 |
CHECK_STRIDE(pos,10,incX);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xtpmv() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_TPMV(pos,order,Uplo,TransA,Diag,N,Ap,X,incX) \
|
|
Packit |
67cb25 |
CHECK_ORDER(pos,1,order); \
|
|
Packit |
67cb25 |
CHECK_UPLO(pos,2,Uplo); \
|
|
Packit |
67cb25 |
CHECK_TRANSPOSE(pos,3,TransA); \
|
|
Packit |
67cb25 |
CHECK_DIAG(pos,4,Diag); \
|
|
Packit |
67cb25 |
CHECK_DIM(pos,5,N); \
|
|
Packit |
67cb25 |
CHECK_STRIDE(pos,8,incX);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xtrsv() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_TRSV(pos,order,Uplo,TransA,Diag,N,A,lda,X,incX) \
|
|
Packit |
67cb25 |
CBLAS_ERROR_TRMV(pos,order,Uplo,TransA,Diag,N,A,lda,X,incX)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xtbsv() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_TBSV(pos,order,Uplo,TransA,Diag,N,K,A,lda,X,incX) \
|
|
Packit |
67cb25 |
CBLAS_ERROR_TBMV(pos,order,Uplo,TransA,Diag,N,K,A,lda,X,incX)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xtpsv() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_TPSV(pos,order,Uplo,TransA,Diag,N,Ap,X,incX) \
|
|
Packit |
67cb25 |
CBLAS_ERROR_TPMV(pos,order,Uplo,TransA,Diag,N,Ap,X,incX)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/*
|
|
Packit |
67cb25 |
* Routines with S and D prefixes only
|
|
Packit |
67cb25 |
*/
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xsymv() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_SD_SYMV(pos,order,Uplo,N,alpha,A,lda,X,incX,beta,Y,incY) \
|
|
Packit |
67cb25 |
CHECK_ORDER(pos,1,order); \
|
|
Packit |
67cb25 |
CHECK_UPLO(pos,2,Uplo); \
|
|
Packit |
67cb25 |
CHECK_DIM(pos,3,N); \
|
|
Packit |
67cb25 |
if((lda)
|
|
Packit |
67cb25 |
pos = 6; \
|
|
Packit |
67cb25 |
}; \
|
|
Packit |
67cb25 |
CHECK_STRIDE(pos,8,incX); \
|
|
Packit |
67cb25 |
CHECK_STRIDE(pos,11,incY);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xsbmv() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_SD_SBMV(pos,order,Uplo,N,K,alpha,A,lda,X,incX,beta,Y,incY) \
|
|
Packit |
67cb25 |
CHECK_ORDER(pos,1,order); \
|
|
Packit |
67cb25 |
CHECK_UPLO(pos,2,Uplo); \
|
|
Packit |
67cb25 |
CHECK_DIM(pos,3,N); \
|
|
Packit |
67cb25 |
CHECK_DIM(pos,4,K); \
|
|
Packit |
67cb25 |
if((lda)
|
|
Packit |
67cb25 |
pos = 7; \
|
|
Packit |
67cb25 |
}; \
|
|
Packit |
67cb25 |
CHECK_STRIDE(pos,9,incX); \
|
|
Packit |
67cb25 |
CHECK_STRIDE(pos,12,incY);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xspmv() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_SD_SPMV(pos,order,Uplo,N,alpha,Ap,X,incX,beta,Y,incY) \
|
|
Packit |
67cb25 |
CHECK_ORDER(pos,1,order); \
|
|
Packit |
67cb25 |
CHECK_UPLO(pos,2,Uplo); \
|
|
Packit |
67cb25 |
CHECK_DIM(pos,3,N); \
|
|
Packit |
67cb25 |
CHECK_STRIDE(pos,7,incX); \
|
|
Packit |
67cb25 |
CHECK_STRIDE(pos,10,incY);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xger() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_SD_GER(pos,order,M,N,alpha,X,incX,Y,incY,A,lda) \
|
|
Packit |
67cb25 |
CHECK_ORDER(pos,1,order); \
|
|
Packit |
67cb25 |
CHECK_DIM(pos,2,M); \
|
|
Packit |
67cb25 |
CHECK_DIM(pos,3,N); \
|
|
Packit |
67cb25 |
CHECK_STRIDE(pos,6,incX); \
|
|
Packit |
67cb25 |
CHECK_STRIDE(pos,8,incY); \
|
|
Packit |
67cb25 |
if((order)==CblasRowMajor) { \
|
|
Packit |
67cb25 |
if((lda)
|
|
Packit |
67cb25 |
pos = 10; \
|
|
Packit |
67cb25 |
} \
|
|
Packit |
67cb25 |
} else if((order)==CblasColMajor) { \
|
|
Packit |
67cb25 |
if((lda)
|
|
Packit |
67cb25 |
pos = 10; \
|
|
Packit |
67cb25 |
} \
|
|
Packit |
67cb25 |
};
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xsyr() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_SD_SYR(pos,order,Uplo,N,alpha,X,incX,A,lda) \
|
|
Packit |
67cb25 |
CHECK_ORDER(pos,1,order); \
|
|
Packit |
67cb25 |
CHECK_UPLO(pos,2,Uplo); \
|
|
Packit |
67cb25 |
CHECK_DIM(pos,3,N); \
|
|
Packit |
67cb25 |
CHECK_STRIDE(pos,6,incX); \
|
|
Packit |
67cb25 |
if((lda)
|
|
Packit |
67cb25 |
pos = 8; \
|
|
Packit |
67cb25 |
};
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xspr() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_SD_SPR(pos,order,Uplo,N,alpha,X,incX,Ap) \
|
|
Packit |
67cb25 |
CHECK_ORDER(pos,1,order); \
|
|
Packit |
67cb25 |
CHECK_UPLO(pos,2,Uplo); \
|
|
Packit |
67cb25 |
CHECK_DIM(pos,3,N); \
|
|
Packit |
67cb25 |
CHECK_STRIDE(pos,6,incX);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xsyr2() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_SD_SYR2(pos,order,Uplo,N,alpha,X,incX,Y,incY,A,lda) \
|
|
Packit |
67cb25 |
CHECK_ORDER(pos,1,order); \
|
|
Packit |
67cb25 |
CHECK_UPLO(pos,2,Uplo); \
|
|
Packit |
67cb25 |
CHECK_DIM(pos,3,N); \
|
|
Packit |
67cb25 |
CHECK_STRIDE(pos,6,incX); \
|
|
Packit |
67cb25 |
CHECK_STRIDE(pos,8,incY); \
|
|
Packit |
67cb25 |
if((lda)
|
|
Packit |
67cb25 |
pos = 10; \
|
|
Packit |
67cb25 |
};
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xspr2() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_SD_SPR2(pos,order,Uplo,N,alpha,X,incX,Y,incY,A) \
|
|
Packit |
67cb25 |
CHECK_ORDER(pos,1,order); \
|
|
Packit |
67cb25 |
CHECK_UPLO(pos,2,Uplo); \
|
|
Packit |
67cb25 |
CHECK_DIM(pos,3,N); \
|
|
Packit |
67cb25 |
CHECK_STRIDE(pos,6,incX); \
|
|
Packit |
67cb25 |
CHECK_STRIDE(pos,8,incY);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/*
|
|
Packit |
67cb25 |
* Routines with C and Z prefixes only
|
|
Packit |
67cb25 |
*/
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xhemv() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_CZ_HEMV(pos,order,Uplo,N,alpha,A,lda,X,incX,beta,Y,incY) \
|
|
Packit |
67cb25 |
CBLAS_ERROR_SD_SYMV(pos,order,Uplo,N,alpha,A,lda,X,incX,beta,Y,incY)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xhbmv() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_CZ_HBMV(pos,order,Uplo,N,K,alpha,A,lda,X,incX,beta,Y,incY) \
|
|
Packit |
67cb25 |
CBLAS_ERROR_SD_SBMV(pos,order,Uplo,N,K,alpha,A,lda,X,incX,beta,Y,incY)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xhpmv() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_CZ_HPMV(pos,order,Uplo,N,alpha,Ap,X,incX,beta,Y,incY) \
|
|
Packit |
67cb25 |
CBLAS_ERROR_SD_SPMV(pos,order,Uplo,N,alpha,Ap,X,incX,beta,Y,incY)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xgeru() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_CZ_GERU(pos,order,M,N,alpha,X,incX,Y,incY,A,lda) \
|
|
Packit |
67cb25 |
CBLAS_ERROR_SD_GER(pos,order,M,N,alpha,X,incX,Y,incY,A,lda)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xgerc() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_CZ_GERC(pos,order,M,N,alpha,X,incX,Y,incY,A,lda) \
|
|
Packit |
67cb25 |
CBLAS_ERROR_SD_GER(pos,order,M,N,alpha,X,incX,Y,incY,A,lda)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xher() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_CZ_HER(pos,order,Uplo,N,alpha,X,incX,A,lda) \
|
|
Packit |
67cb25 |
CBLAS_ERROR_SD_SYR(pos,order,Uplo,N,alpha,X,incX,A,lda)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xhpr() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_CZ_HPR(pos,order,Uplo,N,alpha,X,incX,A) \
|
|
Packit |
67cb25 |
CBLAS_ERROR_SD_SPR(pos,order,Uplo,N,alpha,X,incX,A)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xher2() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_CZ_HER2(pos,order,Uplo,N,alpha,X,incX,Y,incY,A,lda) \
|
|
Packit |
67cb25 |
CBLAS_ERROR_SD_SYR2(pos,order,Uplo,N,alpha,X,incX,Y,incY,A,lda)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
/* cblas_xhpr2() */
|
|
Packit |
67cb25 |
#define CBLAS_ERROR_CZ_HPR2(pos,order,Uplo,N,alpha,X,incX,Y,incY,Ap) \
|
|
Packit |
67cb25 |
CBLAS_ERROR_SD_SPR2(pos,order,Uplo,N,alpha,X,incX,Y,incY,Ap)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
#endif /* __ERROR_CBLAS_L2_H__ */
|