fix warnings
[pluto.git] / examples / doitgen / doitgen.mkl.c
blobe6f5628190297d7b60dd66c40cadd8f664e6b8be
1 #include <stdio.h>
2 #include <stdlib.h>
4 #include "mkl.h"
6 #include "decls.h"
7 #include "util.h"
9 double t_start, t_end;
11 main()
13 int t, p, q, r, s;
14 double *_C4, *_sum, *_A;
15 int LDA, LDB, LDC;
16 int i, j, k;
18 LDA=N;
19 LDB=N;
20 LDC=N;
22 init_array();
24 _A = (double *) malloc(sizeof(double)*N*N*N);
25 _C4 = (double *) malloc(sizeof(double)*N*N);
26 _sum = (double *) malloc(sizeof(double)*N*N*N);
28 for( i=0; i<N; i++){
29 for( j=0; j<N; j++){
30 for( k=0; k<N; k++){
31 _A[i*N*N+j*N+k]= A[i][j][k];
33 _C4[j*N+i]= C4[i][j];
37 IF_TIME(t_start = rtclock());
39 #ifndef TEST
40 for (t=0; t<10000; t++) {
41 #endif
43 for( r = 0; r< N; r++) {
44 for( q = 0; q< N; q++) {
45 for( p = 0; p< N; p++) {
46 _sum[N*N*r + N*q + p] = 0.0;
49 cblas_dgemv(CblasRowMajor,CblasNoTrans,
50 N,N,1,_C4,N,&_A[N*N*r+N*q],1,1,&_sum[N*N*r+N*q],1);
52 for( p = 0; p< N; p++) {
53 _A[N*N*r+N*q+p] = _sum[N*N*r+N*q+p];
58 #ifndef TEST
60 #endif
62 IF_TIME(t_end = rtclock());
63 IF_TIME(fprintf(stderr, "%0.6lfs\n", t_end - t_start));
65 for( r = 0; r<N; r++) {
66 for( q = 0; q<N; q++) {
67 for( p = 0; p< N; p++) {
68 A[r][q][p] = _A[N*N*r+N*q+p];
73 #ifdef TEST
74 print_array();
75 #endif
77 return 0;