1/* cblas_example.c */ 2 3#include <stdio.h> 4#include <stdlib.h> 5#include "cblas.h" 6 7int main ( ) 8{ 9 enum CBLAS_ORDER order; 10 enum CBLAS_TRANSPOSE transa; 11 12 double *a, *x, *y; 13 double alpha, beta; 14 int m, n, lda, incx, incy, i; 15 16 order = CblasColMajor; 17 transa = CblasNoTrans; 18 19 m = 4; /* Size of Column ( the number of rows ) */ 20 n = 4; /* Size of Row ( the number of columns ) */ 21 lda = 4; /* Leading dimension of 5 * 4 matrix is 5 */ 22 incx = 1; 23 incy = 1; 24 alpha = 1; 25 beta = 0; 26 27 a = (double *)malloc(sizeof(double)*m*n); 28 x = (double *)malloc(sizeof(double)*n); 29 y = (double *)malloc(sizeof(double)*n); 30 /* The elements of the first column */ 31 a[0] = 1; 32 a[1] = 2; 33 a[2] = 3; 34 a[3] = 4; 35 /* The elements of the second column */ 36 a[m] = 1; 37 a[m+1] = 1; 38 a[m+2] = 1; 39 a[m+3] = 1; 40 /* The elements of the third column */ 41 a[m*2] = 3; 42 a[m*2+1] = 4; 43 a[m*2+2] = 5; 44 a[m*2+3] = 6; 45 /* The elements of the fourth column */ 46 a[m*3] = 5; 47 a[m*3+1] = 6; 48 a[m*3+2] = 7; 49 a[m*3+3] = 8; 50 /* The elemetns of x and y */ 51 x[0] = 1; 52 x[1] = 2; 53 x[2] = 1; 54 x[3] = 1; 55 y[0] = 0; 56 y[1] = 0; 57 y[2] = 0; 58 y[3] = 0; 59 60 cblas_dgemv( order, transa, m, n, alpha, a, lda, x, incx, beta, 61 y, incy ); 62 /* Print y */ 63 for( i = 0; i < n; i++ ) 64 printf(" y%d = %f\n", i, y[i]); 65 free(a); 66 free(x); 67 free(y); 68 return 1; 69} 70