fix warnings
[pluto.git] / examples / mvt / mvt.c
blob04917501107406f970ad2fc83c55fba0929758c2
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <math.h>
4 #include <unistd.h>
5 #include <sys/time.h>
7 #define N 10000
8 double a[N][N], y_1[N+17], y_2[N+19], x1[N+23], z0[N+29], x2[N+31];
10 #ifdef TIME
11 #define IF_TIME(foo) foo;
12 #else
13 #define IF_TIME(foo)
14 #endif
16 double rtclock()
18 struct timezone Tzp;
19 struct timeval Tp;
20 int stat;
21 stat = gettimeofday (&Tp, &Tzp);
22 if (stat != 0) printf("Error return from gettimeofday: %d",stat);
23 return(Tp.tv_sec + Tp.tv_usec*1.0e-6);
26 void init_array()
28 int i, j;
30 for (i=0; i<N; i++) {
31 y_1[i] = i;
32 y_2[i] = i+1;
33 x1[i] = 0.0;
34 x2[i] = 0.0;
36 for (j=0; j<N; j++)
37 a[i][j] = i+j+1.0;
41 void print_array()
43 int i, j;
45 for (i=0; i<N; i++) {
46 fprintf(stderr, "%lf ", x1[i]);
47 if (j%80 == 20) fprintf(stderr, "\n");
49 fprintf(stderr, "\n");
50 for (i=0; i<N; i++) {
51 fprintf(stderr, "%lf ", x2[i]);
52 if (j%80 == 20) fprintf(stderr, "\n");
54 fprintf(stderr, "\n");
57 int main()
59 int i, j, k, l, t;
61 double t_start, t_end;
63 init_array() ;
65 IF_TIME(t_start = rtclock());
67 #pragma scop
68 for (i=0; i<N; i++) {
69 for (j=0; j<N; j++) {
70 x1[i] = x1[i] + a[i][j] * y_1[j];
74 for (i=0; i<N; i++) {
75 for (j=0; j<N; j++) {
76 x2[i] = x2[i] + a[j][i] * y_2[j];
79 #pragma endscop
81 IF_TIME(t_end = rtclock());
82 IF_TIME(fprintf(stdout, "%0.6lfs\n", t_end - t_start));
84 if (fopen(".test", "r")) {
85 #ifdef MPI
86 if (my_rank == 0) {
87 print_array();
89 #else
90 print_array();
91 #endif
93 return 0;