You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

cblas_example2.c 2.4 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /* cblas_example2.c */
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include "cblas.h"
  5. #include "cblas_f77.h"
  6. #define INVALID -1
  7. int main (int argc, char **argv )
  8. {
  9. CBLAS_INDEX rout=-1,info=0,m,n,k,lda,ldb,ldc;
  10. double A[2] = {0.0,0.0},
  11. B[2] = {0.0,0.0},
  12. C[2] = {0.0,0.0},
  13. ALPHA=0.0, BETA=0.0;
  14. if (argc > 2){
  15. rout = atoi(argv[1]);
  16. info = atoi(argv[2]);
  17. }
  18. if (rout == 1) {
  19. if (info==0) {
  20. printf("Checking if cblas_dgemm fails on parameter 4\n");
  21. cblas_dgemm( CblasRowMajor, CblasTrans, CblasNoTrans, INVALID, 0, 0,
  22. ALPHA, A, 1, B, 1, BETA, C, 1 );
  23. }
  24. if (info==1) {
  25. printf("Checking if cblas_dgemm fails on parameter 5\n");
  26. cblas_dgemm( CblasRowMajor, CblasNoTrans, CblasTrans, 0, INVALID, 0,
  27. ALPHA, A, 1, B, 1, BETA, C, 1 );
  28. }
  29. if (info==2) {
  30. printf("Checking if cblas_dgemm fails on parameter 9\n");
  31. cblas_dgemm( CblasRowMajor, CblasNoTrans, CblasNoTrans, 0, 0, 2,
  32. ALPHA, A, 1, B, 1, BETA, C, 2 );
  33. }
  34. if (info==3) {
  35. printf("Checking if cblas_dgemm fails on parameter 11\n");
  36. cblas_dgemm( CblasRowMajor, CblasNoTrans, CblasNoTrans, 0, 2, 2,
  37. ALPHA, A, 1, B, 1, BETA, C, 1 );
  38. }
  39. } else {
  40. if (info==0) {
  41. printf("Checking if F77_dgemm fails on parameter 3\n");
  42. m=INVALID; n=0; k=0; lda=1; ldb=1; ldc=1;
  43. F77_dgemm( "T", "N", &m, &n, &k,
  44. &ALPHA, A, &lda, B, &ldb, &BETA, C, &ldc );
  45. }
  46. if (info==1) {
  47. m=0; n=INVALID; k=0; lda=1; ldb=1; ldc=1;
  48. printf("Checking if F77_dgemm fails on parameter 4\n");
  49. F77_dgemm( "N", "T", &m, &n, &k,
  50. &ALPHA, A, &lda, B, &ldb, &BETA, C, &ldc );
  51. }
  52. if (info==2) {
  53. printf("Checking if F77_dgemm fails on parameter 8\n");
  54. m=2; n=0; k=0; lda=1; ldb=1; ldc=2;
  55. F77_dgemm( "N", "N" , &m, &n, &k,
  56. &ALPHA, A, &lda, B, &ldb, &BETA, C, &ldc );
  57. }
  58. if (info==3) {
  59. printf("Checking if F77_dgemm fails on parameter 10\n");
  60. m=0; n=0; k=2; lda=1; ldb=1; ldc=1;
  61. F77_dgemm( "N", "N" , &m, &n, &k,
  62. &ALPHA, A, &lda, B, &ldb, &BETA, C, &ldc );
  63. }
  64. }
  65. return 0;
  66. }