cblas_example2.c
来自「基本的C语言线性代数函数库,在linux下可直接编译;在windows下要显示地」· C语言 代码 · 共 73 行
C
73 行
/* cblas_example2.c */#include <stdio.h>#include <stdlib.h>#include "cblas.h"#include "cblas_f77.h"#define INVALID -1int main (int argc, char **argv ){ int rout=-1,info=0,m,n,k,lda,ldb,ldc; 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; if (argc > 2){ rout = atoi(argv[1]); info = atoi(argv[2]); } if (rout == 1) { if (info==0) { printf("Checking if cblas_dgemm fails on parameter 4\n"); cblas_dgemm( CblasRowMajor, CblasTrans, CblasNoTrans, INVALID, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 ); } if (info==1) { printf("Checking if cblas_dgemm fails on parameter 5\n"); cblas_dgemm( CblasRowMajor, CblasNoTrans, CblasTrans, 0, INVALID, 0, ALPHA, A, 1, B, 1, BETA, C, 1 ); } if (info==2) { printf("Checking if cblas_dgemm fails on parameter 9\n"); cblas_dgemm( CblasRowMajor, CblasNoTrans, CblasNoTrans, 0, 0, 2, ALPHA, A, 1, B, 1, BETA, C, 2 ); } if (info==3) { printf("Checking if cblas_dgemm fails on parameter 11\n"); cblas_dgemm( CblasRowMajor, CblasNoTrans, CblasNoTrans, 0, 2, 2, ALPHA, A, 1, B, 1, BETA, C, 1 ); } } else { if (info==0) { printf("Checking if F77_dgemm fails on parameter 3\n"); m=INVALID; n=0; k=0; lda=1; ldb=1; ldc=1; F77_dgemm( "T", "N", &m, &n, &k, &ALPHA, A, &lda, B, &ldb, &BETA, C, &ldc ); } if (info==1) { m=0; n=INVALID; k=0; lda=1; ldb=1; ldc=1; printf("Checking if F77_dgemm fails on parameter 4\n"); F77_dgemm( "N", "T", &m, &n, &k, &ALPHA, A, &lda, B, &ldb, &BETA, C, &ldc ); } if (info==2) { printf("Checking if F77_dgemm fails on parameter 8\n"); m=2; n=0; k=0; lda=1; ldb=1; ldc=2; F77_dgemm( "N", "N" , &m, &n, &k, &ALPHA, A, &lda, B, &ldb, &BETA, C, &ldc ); } if (info==3) { printf("Checking if F77_dgemm fails on parameter 10\n"); m=0; n=0; k=2; lda=1; ldb=1; ldc=1; F77_dgemm( "N", "N" , &m, &n, &k, &ALPHA, A, &lda, B, &ldb, &BETA, C, &ldc ); } } return 1;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?