c_d3chke.c

来自「基于Blas CLapck的.用过的人知道是干啥的」· C语言 代码 · 共 1,272 行 · 第 1/4 页

C
1,272
字号
#include <stdio.h>#include <string.h>#include "cblas.h"#include "cblas_test.h"int cblas_ok, cblas_lerr, cblas_info;int link_xerbla=TRUE;char *cblas_rout;#ifdef F77_Charvoid F77_xerbla(F77_Char F77_srname, void *vinfo);#elsevoid F77_xerbla(char *srname, void *vinfo);#endifvoid chkxer(void) {   extern int cblas_ok, cblas_lerr, cblas_info;   extern int link_xerbla;   extern char *cblas_rout;   if (cblas_lerr == 1 ) {      printf("***** ILLEGAL VALUE OF PARAMETER NUMBER %d NOT DETECTED BY %s *****\n", cblas_info, cblas_rout);      cblas_ok = 0 ;   }   cblas_lerr = 1 ;}void F77_d3chke(char *rout) {   char *sf = ( rout ) ;   double A[2] = {0.0,0.0},           B[2] = {0.0,0.0},           C[2] = {0.0,0.0},           ALPHA=0.0, BETA=0.0;   extern int cblas_info, cblas_lerr, cblas_ok;   extern int RowMajorStrg;   extern char *cblas_rout;   if (link_xerbla) /* call these first to link */   {      cblas_xerbla(cblas_info,cblas_rout,"");      F77_xerbla(cblas_rout,&cblas_info);   }    cblas_ok = TRUE ;   cblas_lerr = PASSED ;   if (strncmp( sf,"cblas_dgemm"   ,11)==0) {      cblas_rout = "cblas_dgemm"   ;      cblas_info = 1;      cblas_dgemm( INVALID,  CblasNoTrans, CblasNoTrans, 0, 0, 0,                    ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 1;      cblas_dgemm( INVALID,  CblasNoTrans, CblasTrans, 0, 0, 0,                    ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 1;      cblas_dgemm( INVALID,  CblasTrans, CblasNoTrans, 0, 0, 0,                    ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 1;      cblas_dgemm( INVALID,  CblasTrans, CblasTrans, 0, 0, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 2; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  INVALID, CblasNoTrans, 0, 0, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 2; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  INVALID, CblasTrans, 0, 0, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 3; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasNoTrans, INVALID, 0, 0, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 3; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasTrans, INVALID, 0, 0, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 4; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasNoTrans, CblasNoTrans, INVALID, 0, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 4; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasNoTrans, CblasTrans, INVALID, 0, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 4; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasTrans, CblasNoTrans, INVALID, 0, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 4; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasTrans, CblasTrans, INVALID, 0, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 5; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasNoTrans, CblasNoTrans, 0, INVALID, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 5; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasNoTrans, CblasTrans, 0, INVALID, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 5; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasTrans, CblasNoTrans, 0, INVALID, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 5; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasTrans, CblasTrans, 0, INVALID, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 6; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasNoTrans, CblasNoTrans, 0, 0, INVALID,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 6; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasNoTrans, CblasTrans, 0, 0, INVALID,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 6; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasTrans, CblasNoTrans, 0, 0, INVALID,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 6; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasTrans, CblasTrans, 0, 0, INVALID,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 9; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasNoTrans, CblasNoTrans, 2, 0, 0,                   ALPHA, A, 1, B, 1, BETA, C, 2 );      chkxer();      cblas_info = 9; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasNoTrans, CblasTrans, 2, 0, 0,                   ALPHA, A, 1, B, 1, BETA, C, 2 );      chkxer();      cblas_info = 9; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasTrans, CblasNoTrans, 0, 0, 2,                   ALPHA, A, 1, B, 2, BETA, C, 1 );      chkxer();      cblas_info = 9; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasTrans, CblasTrans, 0, 0, 2,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 11; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasNoTrans, CblasNoTrans, 0, 0, 2,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 11; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasTrans, CblasNoTrans, 0, 0, 2,                   ALPHA, A, 2, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 11; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasNoTrans, CblasTrans, 0, 2, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 11; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasTrans, CblasTrans, 0, 2, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 14; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasNoTrans, CblasNoTrans, 2, 0, 0,                   ALPHA, A, 2, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 14; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasNoTrans, CblasTrans, 2, 0, 0,                   ALPHA, A, 2, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 14; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasTrans, CblasNoTrans, 2, 0, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 14; RowMajorStrg = FALSE;      cblas_dgemm( CblasColMajor,  CblasTrans, CblasTrans, 2, 0, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 4; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasNoTrans, CblasNoTrans, INVALID, 0, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 4; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasNoTrans, CblasTrans, INVALID, 0, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 4; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasTrans, CblasNoTrans, INVALID, 0, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 4; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasTrans, CblasTrans, INVALID, 0, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 5; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasNoTrans, CblasNoTrans, 0, INVALID, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 5; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasNoTrans, CblasTrans, 0, INVALID, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 5; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasTrans, CblasNoTrans, 0, INVALID, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 5; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasTrans, CblasTrans, 0, INVALID, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 6; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasNoTrans, CblasNoTrans, 0, 0, INVALID,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 6; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasNoTrans, CblasTrans, 0, 0, INVALID,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 6; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasTrans, CblasNoTrans, 0, 0, INVALID,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 6; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasTrans, CblasTrans, 0, 0, INVALID,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 9;  RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasNoTrans, CblasNoTrans, 0, 0, 2,                   ALPHA, A, 1, B, 1, BETA, C, 2 );      chkxer();      cblas_info = 9; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasNoTrans, CblasTrans, 0, 0, 2,                   ALPHA, A, 1, B, 2, BETA, C, 2 );      chkxer();      cblas_info = 9; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasTrans, CblasNoTrans, 2, 0, 0,                   ALPHA, A, 1, B, 2, BETA, C, 1 );      chkxer();      cblas_info = 9; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasTrans, CblasTrans, 2, 0, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 11; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasNoTrans, CblasNoTrans, 0, 2, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 11; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasTrans, CblasNoTrans, 0, 2, 0,                   ALPHA, A, 2, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 11; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasNoTrans, CblasTrans, 0, 0, 2,                   ALPHA, A, 2, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 11; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasTrans, CblasTrans, 0, 0, 2,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 14; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasNoTrans, CblasNoTrans, 0, 2, 0,                   ALPHA, A, 1, B, 2, BETA, C, 1 );      chkxer();      cblas_info = 14; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasNoTrans, CblasTrans, 0, 2, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 14; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasTrans, CblasNoTrans, 0, 2, 0,                   ALPHA, A, 1, B, 2, BETA, C, 1 );      chkxer();      cblas_info = 14; RowMajorStrg = TRUE;      cblas_dgemm( CblasRowMajor,  CblasTrans, CblasTrans, 0, 2, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();   } else if (strncmp( sf,"cblas_dsymm"   ,11)==0) {      cblas_rout = "cblas_dsymm"   ;      cblas_info = 1;      cblas_dsymm( INVALID,  CblasRight, CblasLower, 0, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 2; RowMajorStrg = FALSE;      cblas_dsymm( CblasColMajor,  INVALID, CblasUpper, 0, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 3; RowMajorStrg = FALSE;      cblas_dsymm( CblasColMajor,  CblasLeft, INVALID, 0, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 4; RowMajorStrg = FALSE;      cblas_dsymm( CblasColMajor,  CblasLeft, CblasUpper, INVALID, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 4; RowMajorStrg = FALSE;      cblas_dsymm( CblasColMajor,  CblasRight, CblasUpper, INVALID, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 4; RowMajorStrg = FALSE;      cblas_dsymm( CblasColMajor,  CblasLeft, CblasLower, INVALID, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 4; RowMajorStrg = FALSE;      cblas_dsymm( CblasColMajor,  CblasRight, CblasLower, INVALID, 0,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 5; RowMajorStrg = FALSE;      cblas_dsymm( CblasColMajor,  CblasLeft, CblasUpper, 0, INVALID,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 5; RowMajorStrg = FALSE;      cblas_dsymm( CblasColMajor,  CblasRight, CblasUpper, 0, INVALID,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 5; RowMajorStrg = FALSE;      cblas_dsymm( CblasColMajor,  CblasLeft, CblasLower, 0, INVALID,                   ALPHA, A, 1, B, 1, BETA, C, 1 );      chkxer();      cblas_info = 5; RowMajorStrg = FALSE;      cblas_dsymm( CblasColMajor,  CblasRight, CblasLower, 0, INVALID,

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?