1 /* { dg-do compile } */
2 /* { dg-options "-fopenmp -O2 -std=c99" } */
3 
4 typedef __SIZE_TYPE__ size_t;
5 
6 typedef struct {
7   int _flags;
8 } FILE;
9 
10 extern FILE *fopen (__const char *__restrict __filename,
11       __const char *__restrict __modes);
12 extern size_t fread (void *__restrict __ptr, size_t __size,
13        size_t __n, FILE *__restrict __stream) ;
14 extern int fclose (FILE *__stream);
15 extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
16         size_t __n, FILE *__restrict __s) ;
17 
18 extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
19 
20 extern size_t strlen (__const char *__s)
21      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
22 extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
23      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
24 
25 extern int __attribute__ ((__nothrow__)) atoi (__const char *__nptr);
26 
27 extern float cabsf (float _Complex __z) __attribute__ ((__nothrow__)); extern float __cabsf (float _Complex __z) __attribute__ ((__nothrow__));
28 extern float sqrtf (float __x) __attribute__ ((__nothrow__)); extern float __sqrtf (float __x) __attribute__ ((__nothrow__));
29 
main(int argc,char * argv[])30 int main(int argc , char * argv[])
31 {
32   int AA, BB, CC;
33   AA = 99;
34   BB = 99;
35   CC = (int)atoi(argv[3]);
36   int m,n,s;
37   int DD,EE,num_s;
38 
39 
40   float _Complex * restrict A;
41   A = malloc((AA) * (BB) * (CC) * sizeof(float _Complex));
42   int A_slice_stride;
43   A_slice_stride = (AA) * (BB) ;
44 
45 
46   float * restrict f;
47   f = malloc(CC * sizeof(float));
48 
49 
50 
51   FILE *fp;
52 
53   fp = fopen(argv[1],"rb");
54   fread(A,sizeof(float _Complex),AA * BB * CC,fp);
55   fclose(fp);
56 
57   fp = fopen(argv[2],"rb");
58   fread(f,sizeof(float),CC,fp);
59   fclose(fp);
60 
61 
62   DD = (int)atoi(argv[4]);
63   EE = (int)atoi(argv[5]);
64 
65   num_s = (EE - DD) + 1;
66 
67 
68 
69   float * restrict INPUT;
70   INPUT = malloc(4 * 4 * sizeof(float));
71 
72 
73 
74   int m_max = 99;
75   int n_max = 00;
76   float h = 0.1;
77   float FF = 10;
78 
79   if ((__extension__ (__builtin_constant_p (5) && ((__builtin_constant_p (argv[6]) && strlen (argv[6]) < ((size_t) (5))) || (__builtin_constant_p ("plane") && strlen ("plane") < ((size_t) (5)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (argv[6]) && __builtin_constant_p ("plane") && (__s1_len = strlen (argv[6]), __s2_len = strlen ("plane"), (!((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("plane") + 1) - (size_t)(const void *)("plane") == 1) || __s2_len >= 4)) ? __builtin_strcmp (argv[6], "plane") : (__builtin_constant_p (argv[6]) && ((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) && (__s1_len = strlen (argv[6]), __s1_len < 4) ? (__builtin_constant_p ("plane") && ((size_t)(const void *)(("plane") + 1) - (size_t)(const void *)("plane") == 1) ? __builtin_strcmp (argv[6], "plane") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("plane"); register int __result = (((__const unsigned char *) (__const char *) (argv[6]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[6]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[6]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (argv[6]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("plane") && ((size_t)(const void *)(("plane") + 1) - (size_t)(const void *)("plane") == 1) && (__s2_len = strlen ("plane"), __s2_len < 4) ? (__builtin_constant_p (argv[6]) && ((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) ? __builtin_strcmp (argv[6], "plane") : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (argv[6]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("plane"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("plane"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("plane"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("plane"))[3]); } } __result; }))) : __builtin_strcmp (argv[6], "plane")))); }) : (__extension__ (__builtin_constant_p (5) && ((__builtin_constant_p (argv[6]) && strlen (argv[6]) < ((size_t) (5))) || (__builtin_constant_p ("plane") && strlen ("plane") < ((size_t) (5)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (argv[6]) && __builtin_constant_p ("plane") && (__s1_len = strlen (argv[6]), __s2_len = strlen ("plane"), (!((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("plane") + 1) - (size_t)(const void *)("plane") == 1) || __s2_len >= 4)) ? __builtin_strcmp (argv[6], "plane") : (__builtin_constant_p (argv[6]) && ((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) && (__s1_len = strlen (argv[6]), __s1_len < 4) ? (__builtin_constant_p ("plane") && ((size_t)(const void *)(("plane") + 1) - (size_t)(const void *)("plane") == 1) ? __builtin_strcmp (argv[6], "plane") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("plane"); register int __result = (((__const unsigned char *) (__const char *) (argv[6]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[6]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[6]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (argv[6]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("plane") && ((size_t)(const void *)(("plane") + 1) - (size_t)(const void *)("plane") == 1) && (__s2_len = strlen ("plane"), __s2_len < 4) ? (__builtin_constant_p (argv[6]) && ((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) ? __builtin_strcmp (argv[6], "plane") : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (argv[6]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("plane"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("plane"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("plane"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("plane"))[3]); } } __result; }))) : __builtin_strcmp (argv[6], "plane")))); }) : strncmp (argv[6], "plane", 5)))))==0) {
80       m_max = INPUT[ ( ((1)-1) + ( ((1)-1)*4 ))];
81       n_max = INPUT[ ( ((2)-1) + ( ((1)-1)*4 ))];
82       h = INPUT[ ( ((3)-1) + ( ((1)-1)*4 ))];
83       FF = INPUT[ ( ((4)-1) + ( ((1)-1)*4 ))];
84   }
85 
86   if ((__extension__ (__builtin_constant_p (6) && ((__builtin_constant_p (argv[6]) && strlen (argv[6]) < ((size_t) (6))) || (__builtin_constant_p ("sphere") && strlen ("sphere") < ((size_t) (6)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (argv[6]) && __builtin_constant_p ("sphere") && (__s1_len = strlen (argv[6]), __s2_len = strlen ("sphere"), (!((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("sphere") + 1) - (size_t)(const void *)("sphere") == 1) || __s2_len >= 4)) ? __builtin_strcmp (argv[6], "sphere") : (__builtin_constant_p (argv[6]) && ((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) && (__s1_len = strlen (argv[6]), __s1_len < 4) ? (__builtin_constant_p ("sphere") && ((size_t)(const void *)(("sphere") + 1) - (size_t)(const void *)("sphere") == 1) ? __builtin_strcmp (argv[6], "sphere") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("sphere"); register int __result = (((__const unsigned char *) (__const char *) (argv[6]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[6]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[6]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (argv[6]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("sphere") && ((size_t)(const void *)(("sphere") + 1) - (size_t)(const void *)("sphere") == 1) && (__s2_len = strlen ("sphere"), __s2_len < 4) ? (__builtin_constant_p (argv[6]) && ((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) ? __builtin_strcmp (argv[6], "sphere") : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (argv[6]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("sphere"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("sphere"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("sphere"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("sphere"))[3]); } } __result; }))) : __builtin_strcmp (argv[6], "sphere")))); }) : (__extension__ (__builtin_constant_p (6) && ((__builtin_constant_p (argv[6]) && strlen (argv[6]) < ((size_t) (6))) || (__builtin_constant_p ("sphere") && strlen ("sphere") < ((size_t) (6)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (argv[6]) && __builtin_constant_p ("sphere") && (__s1_len = strlen (argv[6]), __s2_len = strlen ("sphere"), (!((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("sphere") + 1) - (size_t)(const void *)("sphere") == 1) || __s2_len >= 4)) ? __builtin_strcmp (argv[6], "sphere") : (__builtin_constant_p (argv[6]) && ((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) && (__s1_len = strlen (argv[6]), __s1_len < 4) ? (__builtin_constant_p ("sphere") && ((size_t)(const void *)(("sphere") + 1) - (size_t)(const void *)("sphere") == 1) ? __builtin_strcmp (argv[6], "sphere") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("sphere"); register int __result = (((__const unsigned char *) (__const char *) (argv[6]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[6]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[6]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (argv[6]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("sphere") && ((size_t)(const void *)(("sphere") + 1) - (size_t)(const void *)("sphere") == 1) && (__s2_len = strlen ("sphere"), __s2_len < 4) ? (__builtin_constant_p (argv[6]) && ((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) ? __builtin_strcmp (argv[6], "sphere") : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (argv[6]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("sphere"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("sphere"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("sphere"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("sphere"))[3]); } } __result; }))) : __builtin_strcmp (argv[6], "sphere")))); }) : strncmp (argv[6], "sphere", 6)))))==0) {
87       m_max = 181;
88       n_max = 361;
89       h = INPUT[ ( ((3)-1) + ( ((1)-1)*4 ))];
90       FF = INPUT[ ( ((4)-1) + ( ((1)-1)*4 ))];
91   }
92 
93 
94 
95 
96 
97   float * restrict X;
98   X = malloc(m_max * n_max * sizeof(float));
99 
100 
101   float * restrict Y;
102   Y = malloc(m_max * n_max * sizeof(float));
103 
104 
105   float * restrict Z;
106   Z = malloc(m_max * n_max * sizeof(float));
107 
108 
109 
110 
111 
112 
113   float _Complex * restrict P;
114   P = malloc(m_max * n_max * sizeof(float _Complex));
115 
116 
117   float _Complex * restrict Ps;
118   Ps = malloc((m_max) * (n_max) * (num_s) * sizeof(float _Complex));
119   int Ps_slice_stride;
120   Ps_slice_stride = (m_max) * (n_max) ;
121 
122 
123   float GG;
124   float HH;
125 
126 
127 
128 
129   for ( n = 1 ; n <= 99 ; n++ ) {
130       for ( m = 1 ; m <= 99 ; m++ ) {
131 
132 
133 
134 
135 
136 	  X[ ( ((m)-1) + ( ((n)-1)*m_max ))] = FF ;
137 	  Y[ ( ((m)-1) + ( ((n)-1)*m_max ))] = FF ;
138 	  Z[ ( ((m)-1) + ( ((n)-1)*m_max ))] = FF ;
139       }
140   }
141   int KK = atoi(argv[8]);
142   int LL = 3 * KK;
143 
144 
145   float * restrict MM;
146   MM = malloc(4 * LL * sizeof(float));
147   for ( n = 1 ; n <= n_max ; n++) {
148       for ( m = 1 ; m <= m_max ; m++) {
149 	  for ( s = 1 ; s <= num_s ; s++) {
150 	      Ps[ ( ((m)-1) + (((n)-1)*(m_max)) + (((s)-1)*(Ps_slice_stride)) ) ] = 0.0 + 0.0 * (__extension__ 1.0iF);
151 	  }
152       }
153   }
154 
155 
156   int liter ;
157 
158 #pragma omp parallel for private(m,liter,s)
159   for ( n = 1 ; n <= n_max ; n++) {
160       for ( m = 1 ; m <= m_max ; m++) {
161 	  for ( liter = 1 ; liter <= KK ; liter++ ) {
162 	      for ( s = 1 ; s <= num_s ; s++) {
163 
164 
165 		  int LM_column;
166 		  float NN[4];
167 		  float OO[4];
168 		  float PP[4];
169 		  float QQ[4];
170 		  float k;
171 		  int s_index;
172 		  float RR;
173 
174 		  s_index = s + (DD -1);
175 		  RR = f[ ( (s_index)-1) ];
176 		  k = 99.0;
177 
178 		  NN[1 -1] = X[ ( ((m)-1) + ( ((n)-1)*m_max ))];
179 		  NN[2 -1] = Y[ ( ((m)-1) + ( ((n)-1)*m_max ))];
180 		  NN[3 -1] = Z[ ( ((m)-1) + ( ((n)-1)*m_max ))];
181 		  NN[4 -1] = 1.0;
182 
183 		  LM_column = ((liter -1) * 3) + 1;
184 		  OO[1 -1] = MM[ ( ((1)-1) + ( ((LM_column)-1)*4 ))];
185 		  OO[2 -1] = MM[ ( ((2)-1) + ( ((LM_column)-1)*4 ))];
186 		  OO[3 -1] = MM[ ( ((3)-1) + ( ((LM_column)-1)*4 ))];
187 		  OO[4 -1] = MM[ ( ((4)-1) + ( ((LM_column)-1)*4 ))];
188 
189 		  LM_column = ((liter -1) * 3) + 2;
190 		  PP[1 -1] = MM[ ( ((1)-1) + ( ((LM_column)-1)*4 ))];
191 		  PP[2 -1] = MM[ ( ((2)-1) + ( ((LM_column)-1)*4 ))];
192 		  PP[3 -1] = MM[ ( ((3)-1) + ( ((LM_column)-1)*4 ))];
193 		  PP[4 -1] = MM[ ( ((4)-1) + ( ((LM_column)-1)*4 ))];
194 
195 		  LM_column = ((liter -1) * 3) + 3;
196 		  QQ[1 -1] = MM[ ( ((1)-1) + ( ((LM_column)-1)*4 ))];
197 		  QQ[2 -1] = MM[ ( ((2)-1) + ( ((LM_column)-1)*4 ))];
198 		  QQ[3 -1] = MM[ ( ((3)-1) + ( ((LM_column)-1)*4 ))];
199 		  QQ[4 -1] = MM[ ( ((4)-1) + ( ((LM_column)-1)*4 ))];
200 
201 	      }
202 	  }
203       }
204   }
205 
206 
207 #pragma omp parallel for private(m)
208   for ( n = 1 ; n <= n_max ; n++) {
209       for ( m = 1 ; m <= m_max ; m++) {
210 
211 
212 
213 	  int s;
214 	  float SSS;
215 	  float f1,f2,p1,p2,TT,h,FFF;
216 	  SSS = 0.0;
217 	  for ( s = 2 ; s <= num_s ; s++) {
218 	      f1 = f[ ( ((s-1) + (DD - 1))-1) ];
219 	      f2 = f[ ( ((s) + (DD - 1))-1) ];
220 	      p1 = cabsf(Ps[ ( ((m)-1) + (((n)-1)*(m_max)) + ((((s-1))-1)*(Ps_slice_stride)) ) ]) ;
221 	      p2 = cabsf(Ps[ ( ((m)-1) + (((n)-1)*(m_max)) + (((s)-1)*(Ps_slice_stride)) ) ]) ;
222 
223 	      h = f2 - f1;
224 
225 	      FFF = (f1 + f2) / 2.0;
226 
227 
228 	      TT = (1.0 / sqrtf(2.0)) * (((h * p1) + (0.5 * h * (p2 - p1))) * (1.0 / FFF));
229 
230 	      SSS += TT;
231 
232 	  }
233 
234 	  P[ ( ((m)-1) + ( ((n)-1)*m_max ))] = SSS + ((__extension__ 1.0iF) * 0.0);
235       }
236   }
237 
238 
239 
240 
241 
242   fp = fopen(argv[10],"wb");
243   fwrite(X,sizeof(float),m_max * n_max,fp);
244   fclose(fp);
245 
246   fp = fopen(argv[11],"wb");
247   fwrite(Y,sizeof(float),m_max * n_max,fp);
248   fclose(fp);
249 
250   fp = fopen(argv[12],"wb");
251   fwrite(Z,sizeof(float),m_max * n_max,fp);
252   fclose(fp);
253 
254   fp = fopen(argv[13],"wb");
255   fwrite(P,sizeof(float _Complex),m_max * n_max,fp);
256   fclose(fp);
257 
258 
259 
260   return(0);
261 }
262