source: trunk/examples/nardi/shallow_performanceMeasurement/2shalw_50x50.h @ 415

Last change on this file since 415 was 415, checked in by lnalod, 14 years ago

Script matlab for the bruit.

  • Property svn:eol-style set to native
File size: 22.7 KB
Line 
1#include <sys/time.h>
2double my_gettimeofday(){
3   struct timeval tmp_time;
4    gettimeofday(&tmp_time, NULL);
5     return tmp_time.tv_sec + (tmp_time.tv_usec * 1.0e-6L);
6}
7
8
9  double differenceForward=0, differenceBackward=0;
10  double parallelForward=0, parallelBackward=0;
11  double nonParallelForward=0, nonParallelBackward=0;
12  int counter=0;
13  double beginParallelForward=0, endParallelForward=0;
14  double beginNonParallelForward=0, endNonParallelForward=0;
15  double beginNonParallelBackward=0, endNonParallelBackward=0;
16  double beginParallelBackward=0, endParallelBackward=0;
17  double beginForward=0, endForward=0;
18  double beginBackward=0, endBackward=0;
19
20  double beginF_amdahl=0, intermediary_1_F_amdahl=0, intermediary_2_F_amdahl=0, endF_amdahl=0;
21  double beginB_amdahl=0, intermediary_1_B_amdahl=0, intermediary_2_B_amdahl=0, endB_amdahl=0;
22  double difference_amdahl_parallel=0;
23
24
25//----------------------------------------------------
26// project: shalw_50x50     header generated by YAO version v.9
27//----------------------------------------------------
28
29// € € € € € € € € LES FONCTIONS PREDEFINIES
30/*M2_ADJUST*/ 
31void Yadjust_Hfil()
32{
33         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1) 
34         for (int Yw2=0; Yw2<YA2_Soce; ++Yw2) 
35         for (int Yws=0; Yws<YNBS_Hfil; ++Yws) 
36         for (int Ywt=YDEBTARGET_Hfil; Ywt<YENDTARGET_Hfil; ++Ywt) 
37         { Ystate_Hfil(Yws, Yw1, Yw2, Ywt) -= Yepsi_Hfil(Yws, Yw1, Yw2) * Ygrad_Hfil(Yws, Yw1, Yw2, Ywt);
38        }
39}/*M2_GCTOTBT */ 
40void YgradCTOtab_Hfil(int frompdt, int topdt, YREAL tab[])
41{
42         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
43                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
44                         for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
45                                 for (int Yws=0; Yws<YNBS_Hfil; ++Yws){
46                                         tab[Y3windice] += YG_Hfil(Yws, Yw1, Yw2, Ywt); ++Y3windice;}}}}
47}/*M2_VSTAT*/ 
48void Y3valstate_Hfil()
49{
50         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1)
51         for (int Yw2=0; Yw2<YA2_Soce; ++Yw2)
52         for (int Yws=0; Yws<YNBS_Hfil; ++Yws)
53         for (int Ywt=YDEBTARGET_Hfil; Ywt<YENDTARGET_Hfil; ++Ywt)
54         { Y3x[Y3windice] = YHfil(Yw1, Yw2)->Ystate[Ywt][Yws]; ++Y3windice;
55         }
56}/*M2_GSTAT*/ 
57void Y3getstate_Hfil(float x[])
58{
59         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1)
60         for (int Yw2=0; Yw2<YA2_Soce; ++Yw2)
61         for (int Yws=0; Yws<YNBS_Hfil; ++Yws)
62         for (int Ywt=YDEBTARGET_Hfil; Ywt<YENDTARGET_Hfil; ++Ywt)
63         { YHfil(Yw1, Yw2)->Ystate[Ywt][Yws] = x[Y3windice]; ++Y3windice;
64         }
65}/*M2_VGRADT*/ 
66void Y3valgrad_Hfil(float g[])
67{
68         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1)
69         for (int Yw2=0; Yw2<YA2_Soce; ++Yw2)
70         for (int Yws=0; Yws<YNBS_Hfil; ++Yws)
71         for (int Ywt=YDEBTARGET_Hfil; Ywt<YENDTARGET_Hfil; ++Ywt)
72         { g[Y3windice] = YHfil(Yw1, Yw2)->Ygrad[Ywt][Yws]; ++Y3windice;
73         }
74}/*M2_TBTOGT  */ 
75void YtabTOgrad_Hfil(int frompdt, int topdt, YREAL tab[])
76{
77         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
78                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
79                         for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
80                                 for (int Yws=0; Yws<YNBS_Hfil; ++Yws){
81                                         YG_Hfil(Yws, Yw1, Yw2, Ywt) = tab[Y3windice]; ++Y3windice;}}}}
82}/*M2_RGRADT*/ 
83void Yrazgrad_Hfil()
84{
85         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
86                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
87                         for (int Ywt=0; Ywt<YNBALLTIME_Toce; ++Ywt){
88                                 for (int Yws=0; Yws<YNBS_Hfil; ++Yws){
89                                         YHfil(Yw1, Yw2)->Ygrad[Ywt][Yws] = 0.0;}}}}
90}/*M2_SETAT*/ 
91void Ysetstate_Hfil(double val)
92{
93         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
94                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
95                         for (int Ywt=0; Ywt<YNBALLTIME_Toce;    ++Ywt){
96                                 for (int Yws=0; Yws<YNBS_Hfil; ++Yws){
97                                         YHfil(Yw1, Yw2)->Ystate[Ywt][Yws] = val;}}}}
98}/*M2_YIOUT*/ 
99void Yio_Hfil(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) 
100{  Yiorwf ("Hfil", Yws, Yw1, Yw2, Yw3, Ywt, &YS_Hfil(Yws, Yw1, Yw2, Ywt), val);
101}/*M0_OUTOB*/ 
102int Youtoobs_Hfil(YioKind yiokind, int Yws, int Ywt, int arbpdt)
103{
104         Yaobs.time = arbpdt;
105         Yaobs.imod = Yimod("Hfil");
106         Yaobs.smod = Yws;/*M2_OUTOBT*/
107         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1)
108         for (int Yw2=0; Yw2<YA2_Soce; ++Yw2)
109         {      if(select_io(yiokind, "Hfil", Yws, Yw1, Yw2, -1, Ywt, &Ystate_Hfil(Yws, Yw1, Yw2, Ywt)))
110                        {       Yaobs.iaxe = Yw1; Yaobs.jaxe = Yw2; Yaobs.kaxe = -1;
111                                Yaobs.vobs = Ystate_Hfil(Yws, Yw1, Yw2, Ywt);
112                                if(!Yobs_insert (&Yaobs)) return(0);
113                        }
114         }/*M9_OUTOB*/ 
115         return(1);
116}/*M2_SEPS*/ 
117void Ysetepsi_Hfil(double val)
118{
119         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
120                 for (int Yw2=0; Yw2<YA2_Soce;  ++Yw2){
121                         for (int Yws=0; Yws<YNBS_Hfil; ++Yws){
122                                 YHfil(Yw1, Yw2)->Yepsi[Yws] = val;}}}
123}/*M2_CREU*/ 
124void Ycreate_Hfil() 
125{
126         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
127                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
128                         if ((YHfil(Yw1, Yw2)= new Hfil ())==NULL) Ycreate_errnew();}}
129}/*M2_SWISH*/ 
130void Ysetwish_Hfil(double val)
131{
132         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
133                 for (int Yw2=0; Yw2<YA2_Soce;  ++Yw2){
134                         for (int Yws=0; Yws<YNBS_Hfil; ++Yws){
135                                 Ywish_Hfil(Yws, Yw1, Yw2) = val;}}}
136}/*M2_TBTOGT  */ 
137void YtabTOgrad_Ufil(int frompdt, int topdt, YREAL tab[])
138{
139         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
140                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
141                         for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
142                                 for (int Yws=0; Yws<YNBS_Ufil; ++Yws){
143                                         YG_Ufil(Yws, Yw1, Yw2, Ywt) = tab[Y3windice]; ++Y3windice;}}}}
144}/*M2_RGRADT*/ 
145void Yrazgrad_Ufil()
146{
147         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
148                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
149                         for (int Ywt=0; Ywt<YNBALLTIME_Toce; ++Ywt){
150                                 for (int Yws=0; Yws<YNBS_Ufil; ++Yws){
151                                         YUfil(Yw1, Yw2)->Ygrad[Ywt][Yws] = 0.0;}}}}
152}/*M2_SETAT*/ 
153void Ysetstate_Ufil(double val)
154{
155         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
156                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
157                         for (int Ywt=0; Ywt<YNBALLTIME_Toce;    ++Ywt){
158                                 for (int Yws=0; Yws<YNBS_Ufil; ++Yws){
159                                         YUfil(Yw1, Yw2)->Ystate[Ywt][Yws] = val;}}}}
160}/*M2_YIOUT*/ 
161void Yio_Ufil(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) 
162{  Yiorwf ("Ufil", Yws, Yw1, Yw2, Yw3, Ywt, &YS_Ufil(Yws, Yw1, Yw2, Ywt), val);
163}/*M2_CREU*/ 
164void Ycreate_Ufil() 
165{
166         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
167                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
168                         if ((YUfil(Yw1, Yw2)= new Ufil ())==NULL) Ycreate_errnew();}}
169}/*M2_TBTOGT  */ 
170void YtabTOgrad_Vfil(int frompdt, int topdt, YREAL tab[])
171{
172         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
173                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
174                         for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
175                                 for (int Yws=0; Yws<YNBS_Vfil; ++Yws){
176                                         YG_Vfil(Yws, Yw1, Yw2, Ywt) = tab[Y3windice]; ++Y3windice;}}}}
177}/*M2_RGRADT*/ 
178void Yrazgrad_Vfil()
179{
180         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
181                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
182                         for (int Ywt=0; Ywt<YNBALLTIME_Toce; ++Ywt){
183                                 for (int Yws=0; Yws<YNBS_Vfil; ++Yws){
184                                         YVfil(Yw1, Yw2)->Ygrad[Ywt][Yws] = 0.0;}}}}
185}/*M2_SETAT*/ 
186void Ysetstate_Vfil(double val)
187{
188         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
189                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
190                         for (int Ywt=0; Ywt<YNBALLTIME_Toce;    ++Ywt){
191                                 for (int Yws=0; Yws<YNBS_Vfil; ++Yws){
192                                         YVfil(Yw1, Yw2)->Ystate[Ywt][Yws] = val;}}}}
193}/*M2_YIOUT*/ 
194void Yio_Vfil(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) 
195{  Yiorwf ("Vfil", Yws, Yw1, Yw2, Yw3, Ywt, &YS_Vfil(Yws, Yw1, Yw2, Ywt), val);
196}/*M2_CREU*/ 
197void Ycreate_Vfil() 
198{
199         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
200                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
201                         if ((YVfil(Yw1, Yw2)= new Vfil ())==NULL) Ycreate_errnew();}}
202}/*M2_TBTOGT  */ 
203void YtabTOgrad_Hphy(int frompdt, int topdt, YREAL tab[])
204{
205         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
206                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
207                         for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
208                                 for (int Yws=0; Yws<YNBS_Hphy; ++Yws){
209                                         YG_Hphy(Yws, Yw1, Yw2, Ywt) = tab[Y3windice]; ++Y3windice;}}}}
210}/*M2_RGRADT*/ 
211void Yrazgrad_Hphy()
212{
213         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
214                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
215                         for (int Ywt=0; Ywt<YNBALLTIME_Toce; ++Ywt){
216                                 for (int Yws=0; Yws<YNBS_Hphy; ++Yws){
217                                         YHphy(Yw1, Yw2)->Ygrad[Ywt][Yws] = 0.0;}}}}
218}/*M2_SETAT*/ 
219void Ysetstate_Hphy(double val)
220{
221         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
222                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
223                         for (int Ywt=0; Ywt<YNBALLTIME_Toce;    ++Ywt){
224                                 for (int Yws=0; Yws<YNBS_Hphy; ++Yws){
225                                         YHphy(Yw1, Yw2)->Ystate[Ywt][Yws] = val;}}}}
226}/*M2_YIOUT*/ 
227void Yio_Hphy(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) 
228{  Yiorwf ("Hphy", Yws, Yw1, Yw2, Yw3, Ywt, &YS_Hphy(Yws, Yw1, Yw2, Ywt), val);
229}/*M2_CREU*/ 
230void Ycreate_Hphy() 
231{
232         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
233                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
234                         if ((YHphy(Yw1, Yw2)= new Hphy ())==NULL) Ycreate_errnew();}}
235}/*M2_TBTOGT  */ 
236void YtabTOgrad_Uphy(int frompdt, int topdt, YREAL tab[])
237{
238         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
239                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
240                         for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
241                                 for (int Yws=0; Yws<YNBS_Uphy; ++Yws){
242                                         YG_Uphy(Yws, Yw1, Yw2, Ywt) = tab[Y3windice]; ++Y3windice;}}}}
243}/*M2_RGRADT*/ 
244void Yrazgrad_Uphy()
245{
246         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
247                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
248                         for (int Ywt=0; Ywt<YNBALLTIME_Toce; ++Ywt){
249                                 for (int Yws=0; Yws<YNBS_Uphy; ++Yws){
250                                         YUphy(Yw1, Yw2)->Ygrad[Ywt][Yws] = 0.0;}}}}
251}/*M2_SETAT*/ 
252void Ysetstate_Uphy(double val)
253{
254         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
255                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
256                         for (int Ywt=0; Ywt<YNBALLTIME_Toce;    ++Ywt){
257                                 for (int Yws=0; Yws<YNBS_Uphy; ++Yws){
258                                         YUphy(Yw1, Yw2)->Ystate[Ywt][Yws] = val;}}}}
259}/*M2_YIOUT*/ 
260void Yio_Uphy(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) 
261{  Yiorwf ("Uphy", Yws, Yw1, Yw2, Yw3, Ywt, &YS_Uphy(Yws, Yw1, Yw2, Ywt), val);
262}/*M2_CREU*/ 
263void Ycreate_Uphy() 
264{
265         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
266                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
267                         if ((YUphy(Yw1, Yw2)= new Uphy ())==NULL) Ycreate_errnew();}}
268}/*M2_TBTOGT  */ 
269void YtabTOgrad_Vphy(int frompdt, int topdt, YREAL tab[])
270{
271         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
272                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
273                         for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
274                                 for (int Yws=0; Yws<YNBS_Vphy; ++Yws){
275                                         YG_Vphy(Yws, Yw1, Yw2, Ywt) = tab[Y3windice]; ++Y3windice;}}}}
276}/*M2_RGRADT*/ 
277void Yrazgrad_Vphy()
278{
279         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
280                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
281                         for (int Ywt=0; Ywt<YNBALLTIME_Toce; ++Ywt){
282                                 for (int Yws=0; Yws<YNBS_Vphy; ++Yws){
283                                         YVphy(Yw1, Yw2)->Ygrad[Ywt][Yws] = 0.0;}}}}
284}/*M2_SETAT*/ 
285void Ysetstate_Vphy(double val)
286{
287         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
288                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
289                         for (int Ywt=0; Ywt<YNBALLTIME_Toce;    ++Ywt){
290                                 for (int Yws=0; Yws<YNBS_Vphy; ++Yws){
291                                         YVphy(Yw1, Yw2)->Ystate[Ywt][Yws] = val;}}}}
292}/*M2_YIOUT*/ 
293void Yio_Vphy(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) 
294{  Yiorwf ("Vphy", Yws, Yw1, Yw2, Yw3, Ywt, &YS_Vphy(Yws, Yw1, Yw2, Ywt), val);
295}/*M2_CREU*/ 
296void Ycreate_Vphy() 
297{
298         for (int Yw1=0; Yw1<YA1_Soce; ++Yw1){
299                 for (int Yw2=0; Yw2<YA2_Soce; ++Yw2){
300                         if ((YVphy(Yw1, Yw2)= new Vphy ())==NULL) Ycreate_errnew();}}
301}
302void Ycreate_all () 
303{
304         Ycreate_Hfil ();
305         Ycreate_Ufil ();
306         Ycreate_Vfil ();
307         Ycreate_Hphy ();
308         Ycreate_Uphy ();
309         Ycreate_Vphy ();
310}
311void Ywishdiff_all (char *nmmod, int Yws, int Yw1, int Yw2, int Yw3, int Ywt, YREAL vobs) 
312{       
313         if(1==0);
314         else if (strcmp(nmmod, "Hfil") == 0)
315                                 YW_Hfil(Yws, Yw1, Yw2) = YS_Hfil(Yws, Yw1, Yw2, Ywt) - vobs;
316}
317void Ycostwishdiff_all (char *nmmod, int Yws, int Yw1, int Yw2, int Yw3, int Ywt) 
318{       
319         if(1==0);
320         else if (strcmp(nmmod, "Hfil") == 0)
321                                      YG_Hfil(Yws, Yw1, Yw2, Ywt) += Ycostdiff(YW_Hfil(Yws, Yw1, Yw2), YW_Hfil(Yws, Yw1, Yw2));
322}
323void Youtoobs_mod(YioKind yiokind, char *nmmod, int numout, int pdt, int arbpdt)
324{
325         if(1==0);
326         else if (strcmp(nmmod, "Hfil") == 0) Youtoobs_Hfil(yiokind, numout, pdt, arbpdt);
327}
328void Yadjust_all () 
329{
330         Yadjust_Hfil ();
331}
332void Yrazgrad_all () 
333{
334         Yrazgrad_Hfil ();
335         Yrazgrad_Ufil ();
336         Yrazgrad_Vfil ();
337         Yrazgrad_Hphy ();
338         Yrazgrad_Uphy ();
339         Yrazgrad_Vphy ();
340}
341void Yrazgrad_only (int itraj) 
342{
343        if (itraj==Yid_Toce)
344        {}
345}
346int Ysetstate_mod (char *nmmod, YREAL val) 
347{       int codret=0; int all=0;
348        if (!strcmp(nmmod, "Y#A")) all=1;
349        if (!strcmp(nmmod, "Hfil") || all)
350        {  Ysetstate_Hfil(val);codret=1;}
351        if (!strcmp(nmmod, "Ufil") || all)
352        {  Ysetstate_Ufil(val);codret=1;}
353        if (!strcmp(nmmod, "Vfil") || all)
354        {  Ysetstate_Vfil(val);codret=1;}
355        if (!strcmp(nmmod, "Hphy") || all)
356        {  Ysetstate_Hphy(val);codret=1;}
357        if (!strcmp(nmmod, "Uphy") || all)
358        {  Ysetstate_Uphy(val);codret=1;}
359        if (!strcmp(nmmod, "Vphy") || all)
360        {  Ysetstate_Vphy(val);codret=1;}
361        return(codret);
362}
363void Ysetwish_mod (int imod, YREAL val) 
364{       if(1==0);
365        else if (imod==0) Ysetwish_Hfil(val);
366}
367void  Yio_mod (char *nmmod, int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val)
368{
369         if(1==0);
370         else if (strcmp(nmmod, "Hfil") == 0) Yio_Hfil(Yws, Yw1, Yw2, Yw3, Ywt, val);
371         else if (strcmp(nmmod, "Ufil") == 0) Yio_Ufil(Yws, Yw1, Yw2, Yw3, Ywt, val);
372         else if (strcmp(nmmod, "Vfil") == 0) Yio_Vfil(Yws, Yw1, Yw2, Yw3, Ywt, val);
373         else if (strcmp(nmmod, "Hphy") == 0) Yio_Hphy(Yws, Yw1, Yw2, Yw3, Ywt, val);
374         else if (strcmp(nmmod, "Uphy") == 0) Yio_Uphy(Yws, Yw1, Yw2, Yw3, Ywt, val);
375         else if (strcmp(nmmod, "Vphy") == 0) Yio_Vphy(Yws, Yw1, Yw2, Yw3, Ywt, val);
376}
377void YgradCTOtab_target (YREAL tab[]) 
378{       //Y3windice = 0;
379         YgradCTOtab_Hfil (YTabMod[Yid_Hfil].deb_target, YTabMod[Yid_Hfil].end_target, tab);
380}
381void YtabTOgrad_target (YREAL tab[]) 
382{       //Y3windice = 0;
383         YtabTOgrad_Hfil (YTabMod[Yid_Hfil].deb_target, YTabMod[Yid_Hfil].end_target, tab);
384}
385void Y3getstate_all (float x[]) 
386{        Y3windice = 0;
387         Y3getstate_Hfil (x);
388}
389void Y3valstate_all () 
390{        Y3windice = 0;
391         Y3valstate_Hfil ();
392}
393void Y3valgrad_all (float g[]) 
394{        Y3windice = 0;
395         Y3valgrad_Hfil (g);
396}
397int Yauto_call (int argc, char *argv[]) 
398{
399         int codret=0; int all=0; double val;
400         if (1==0);
401         else if ( !strcmp(argv[0], "setepsi") || !strcmp(argv[0], "SETEPSI") 
402                                         ||!strcmp(argv[0], "setepsi_all") || !strcmp(argv[0], "SETEPSI_ALL"))
403         {
404                         if (!strcmp(argv[0], "setepsi_all") || !strcmp(argv[0], "SETEPSI_ALL")){all=1; val=atof(argv[1]);} else val=atof(argv[2]);
405                         if (!strcmp(argv[1], "Hfil") || all)
406                                         {Ysetepsi_Hfil(val);codret=1;}
407         }
408         else codret=0;
409         return(codret);
410}
411
412 int Yforward_space_Soce()
413{
414         YA1=50; YA2=50; YA3=0;
415Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/
416beginForward = my_gettimeofday();
417#pragma omp parallel for
418for(YY=0; YY<YA1_Soce; ++YY){
419  Yi=YY;
420for(Yj=0; Yj<YA2_Soce; ++Yj)
421{
422         Yting[0]=YS1_Hfil( Yi, Yj, YTemps-1);
423         Yting[1]=YS1_Uphy( Yi, Yj, YTemps-1);
424         if (1==0 || Yi-1<0)
425         Yting[2]=0; 
426         else 
427         Yting[2]=YS1_Uphy( Yi-1, Yj, YTemps-1);
428         if (1==0 || Yj+1>YA2_Soce-1)
429         Yting[3]=0; 
430         else 
431         Yting[3]=YS1_Vphy( Yi, Yj+1, YTemps-1);
432         Yting[4]=YS1_Vphy( Yi, Yj, YTemps-1);
433         YHphy(Yi, Yj)->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4] );
434         Yting[0]=YS1_Ufil( Yi, Yj, YTemps-1);
435         if (1==0 || Yi+1>YA1_Soce-1)
436         Yting[1]=0; 
437         else 
438         Yting[1]=YS1_Hphy( Yi+1, Yj, YTemps-1);
439         Yting[2]=YS1_Hphy( Yi, Yj, YTemps-1);
440         Yting[3]=YS1_Vphy( Yi, Yj, YTemps-1);
441         if (1==0 || Yj+1>YA2_Soce-1)
442         Yting[4]=0; 
443         else 
444         Yting[4]=YS1_Vphy( Yi, Yj+1, YTemps-1);
445         if (1==0 || Yi+1>YA1_Soce-1)
446         Yting[5]=0; 
447         else 
448         Yting[5]=YS1_Vphy( Yi+1, Yj, YTemps-1);
449         if (1==0 || Yi+1>YA1_Soce-1 || Yj+1>YA2_Soce-1)
450         Yting[6]=0; 
451         else 
452         Yting[6]=YS1_Vphy( Yi+1, Yj+1, YTemps-1);
453         YUphy(Yi, Yj)->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6] );
454         Yting[0]=YS1_Vfil( Yi, Yj, YTemps-1);
455         Yting[1]=YS1_Hphy( Yi, Yj, YTemps-1);
456         if (1==0 || Yj-1<0)
457         Yting[2]=0; 
458         else 
459         Yting[2]=YS1_Hphy( Yi, Yj-1, YTemps-1);
460         if (1==0 || Yi-1<0 || Yj-1<0)
461         Yting[3]=0; 
462         else 
463         Yting[3]=YS1_Uphy( Yi-1, Yj-1, YTemps-1);
464         if (1==0 || Yi-1<0)
465         Yting[4]=0; 
466         else 
467         Yting[4]=YS1_Uphy( Yi-1, Yj, YTemps-1);
468         if (1==0 || Yj-1<0)
469         Yting[5]=0; 
470         else 
471         Yting[5]=YS1_Uphy( Yi, Yj-1, YTemps-1);
472         Yting[6]=YS1_Uphy( Yi, Yj, YTemps-1);
473         YVphy(Yi, Yj)->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6] );
474         Yting[0]=YS1_Hfil( Yi, Yj, YTemps-1);
475         Yting[1]=YS1_Hphy( Yi, Yj, YTemps-1);
476         Yting[2]=YS1_Hphy( Yi, Yj, YTemps);
477         YHfil(Yi, Yj)->forward( Yting[0], Yting[1], Yting[2] );
478         Yting[0]=YS1_Ufil( Yi, Yj, YTemps-1);
479         Yting[1]=YS1_Uphy( Yi, Yj, YTemps-1);
480         Yting[2]=YS1_Uphy( Yi, Yj, YTemps);
481         YUfil(Yi, Yj)->forward( Yting[0], Yting[1], Yting[2] );
482         Yting[0]=YS1_Vfil( Yi, Yj, YTemps-1);
483         Yting[1]=YS1_Vphy( Yi, Yj, YTemps-1);
484         Yting[2]=YS1_Vphy( Yi, Yj, YTemps);
485         YVfil(Yi, Yj)->forward( Yting[0], Yting[1], Yting[2] );
486
487}
488}
489endForward=my_gettimeofday();
490
491         return(0);
492}
493
494 int Ybackward_space_Soce()
495{
496         YA1=50; YA2=50; YA3=0;
497Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/
498beginBackward=my_gettimeofday();
499#pragma omp parallel for
500for(YY=YA1_Soce-1; YY>=0; --YY){
501  Yi=YY;
502for(Yj=YA2_Soce-1; Yj>=0; --Yj)
503{
504         Yting[0]=YS1_Vfil( Yi, Yj, YTemps-1);
505         Yting[1]=YS1_Vphy( Yi, Yj, YTemps-1);
506         Yting[2]=YS1_Vphy( Yi, Yj, YTemps);
507         memset(Yjac, 0, 7*sizeof(double));
508         YVfil(Yi, Yj)->backward( Yting[0], Yting[1], Yting[2] );
509         Yvsmatt (YNBS_Vfil, YNBI_Vfil, YMAX_JAC_NBI, &YG1Y_Vfil, Yjac[0], Ytbeta);
510         YG1_Vfil( Yi, Yj, YTemps-1) += Ytbeta[0];
511         #pragma omp atomic
512         YG1_Vphy( Yi, Yj, YTemps-1) += Ytbeta[1];
513         #pragma omp atomic
514         YG1_Vphy( Yi, Yj, YTemps) += Ytbeta[2];
515         Yting[0]=YS1_Ufil( Yi, Yj, YTemps-1);
516         Yting[1]=YS1_Uphy( Yi, Yj, YTemps-1);
517         Yting[2]=YS1_Uphy( Yi, Yj, YTemps);
518         memset(Yjac, 0, 7*sizeof(double));
519         YUfil(Yi, Yj)->backward( Yting[0], Yting[1], Yting[2] );
520         Yvsmatt (YNBS_Ufil, YNBI_Ufil, YMAX_JAC_NBI, &YG1Y_Ufil, Yjac[0], Ytbeta);
521         YG1_Ufil( Yi, Yj, YTemps-1) += Ytbeta[0];
522         #pragma omp atomic
523         YG1_Uphy( Yi, Yj, YTemps-1) += Ytbeta[1];
524         #pragma omp atomic
525         YG1_Uphy( Yi, Yj, YTemps) += Ytbeta[2];
526         Yting[0]=YS1_Hfil( Yi, Yj, YTemps-1);
527         Yting[1]=YS1_Hphy( Yi, Yj, YTemps-1);
528         Yting[2]=YS1_Hphy( Yi, Yj, YTemps);
529         memset(Yjac, 0, 7*sizeof(double));
530         YHfil(Yi, Yj)->backward( Yting[0], Yting[1], Yting[2] );
531         Yvsmatt (YNBS_Hfil, YNBI_Hfil, YMAX_JAC_NBI, &YG1Y_Hfil, Yjac[0], Ytbeta);
532         YG1_Hfil( Yi, Yj, YTemps-1) += Ytbeta[0];
533         #pragma omp atomic
534         YG1_Hphy( Yi, Yj, YTemps-1) += Ytbeta[1];
535         #pragma omp atomic
536         YG1_Hphy( Yi, Yj, YTemps) += Ytbeta[2];
537         Yting[0]=YS1_Vfil( Yi, Yj, YTemps-1);
538         Yting[1]=YS1_Hphy( Yi, Yj, YTemps-1);
539         if (1==0 || Yj-1<0)
540         Yting[2]=0; 
541         else 
542         Yting[2]=YS1_Hphy( Yi, Yj-1, YTemps-1);
543         if (1==0 || Yi-1<0 || Yj-1<0)
544         Yting[3]=0; 
545         else 
546         Yting[3]=YS1_Uphy( Yi-1, Yj-1, YTemps-1);
547         if (1==0 || Yi-1<0)
548         Yting[4]=0; 
549         else 
550         Yting[4]=YS1_Uphy( Yi-1, Yj, YTemps-1);
551         if (1==0 || Yj-1<0)
552         Yting[5]=0; 
553         else 
554         Yting[5]=YS1_Uphy( Yi, Yj-1, YTemps-1);
555         Yting[6]=YS1_Uphy( Yi, Yj, YTemps-1);
556         memset(Yjac, 0, 7*sizeof(double));
557         YVphy(Yi, Yj)->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6] );
558         Yvsmatt (YNBS_Vphy, YNBI_Vphy, YMAX_JAC_NBI, &YG1Y_Vphy, Yjac[0], Ytbeta);
559         YG1_Vfil( Yi, Yj, YTemps-1) += Ytbeta[0];
560         #pragma omp atomic
561         YG1_Hphy( Yi, Yj, YTemps-1) += Ytbeta[1];
562         if (1==0 || Yj-1<0){} 
563         else 
564         #pragma omp atomic
565         YG1_Hphy( Yi, Yj-1, YTemps-1) += Ytbeta[2];
566         if (1==0 || Yi-1<0 || Yj-1<0){} 
567         else 
568         #pragma omp atomic
569         YG1_Uphy( Yi-1, Yj-1, YTemps-1) += Ytbeta[3];
570         if (1==0 || Yi-1<0){} 
571         else 
572         #pragma omp atomic
573         YG1_Uphy( Yi-1, Yj, YTemps-1) += Ytbeta[4];
574         if (1==0 || Yj-1<0){} 
575         else 
576         #pragma omp atomic
577         YG1_Uphy( Yi, Yj-1, YTemps-1) += Ytbeta[5];
578         #pragma omp atomic
579         YG1_Uphy( Yi, Yj, YTemps-1) += Ytbeta[6];
580         Yting[0]=YS1_Ufil( Yi, Yj, YTemps-1);
581         if (1==0 || Yi+1>YA1_Soce-1)
582         Yting[1]=0; 
583         else 
584         Yting[1]=YS1_Hphy( Yi+1, Yj, YTemps-1);
585         Yting[2]=YS1_Hphy( Yi, Yj, YTemps-1);
586         Yting[3]=YS1_Vphy( Yi, Yj, YTemps-1);
587         if (1==0 || Yj+1>YA2_Soce-1)
588         Yting[4]=0; 
589         else 
590         Yting[4]=YS1_Vphy( Yi, Yj+1, YTemps-1);
591         if (1==0 || Yi+1>YA1_Soce-1)
592         Yting[5]=0; 
593         else 
594         Yting[5]=YS1_Vphy( Yi+1, Yj, YTemps-1);
595         if (1==0 || Yi+1>YA1_Soce-1 || Yj+1>YA2_Soce-1)
596         Yting[6]=0; 
597         else 
598         Yting[6]=YS1_Vphy( Yi+1, Yj+1, YTemps-1);
599         memset(Yjac, 0, 7*sizeof(double));
600         YUphy(Yi, Yj)->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6] );
601         Yvsmatt (YNBS_Uphy, YNBI_Uphy, YMAX_JAC_NBI, &YG1Y_Uphy, Yjac[0], Ytbeta);
602         YG1_Ufil( Yi, Yj, YTemps-1) += Ytbeta[0];
603         if (1==0 || Yi+1>YA1_Soce-1){} 
604         else 
605         #pragma omp atomic
606         YG1_Hphy( Yi+1, Yj, YTemps-1) += Ytbeta[1];
607         #pragma omp atomic
608         YG1_Hphy( Yi, Yj, YTemps-1) += Ytbeta[2];
609         #pragma omp atomic
610         YG1_Vphy( Yi, Yj, YTemps-1) += Ytbeta[3];
611         if (1==0 || Yj+1>YA2_Soce-1){} 
612         else 
613         #pragma omp atomic
614         YG1_Vphy( Yi, Yj+1, YTemps-1) += Ytbeta[4];
615         if (1==0 || Yi+1>YA1_Soce-1){} 
616         else 
617         #pragma omp atomic
618         YG1_Vphy( Yi+1, Yj, YTemps-1) += Ytbeta[5];
619         if (1==0 || Yi+1>YA1_Soce-1 || Yj+1>YA2_Soce-1){} 
620         else 
621         #pragma omp atomic
622         YG1_Vphy( Yi+1, Yj+1, YTemps-1) += Ytbeta[6];
623         Yting[0]=YS1_Hfil( Yi, Yj, YTemps-1);
624         Yting[1]=YS1_Uphy( Yi, Yj, YTemps-1);
625         if (1==0 || Yi-1<0)
626         Yting[2]=0; 
627         else 
628         Yting[2]=YS1_Uphy( Yi-1, Yj, YTemps-1);
629         if (1==0 || Yj+1>YA2_Soce-1)
630         Yting[3]=0; 
631         else 
632         Yting[3]=YS1_Vphy( Yi, Yj+1, YTemps-1);
633         Yting[4]=YS1_Vphy( Yi, Yj, YTemps-1);
634         memset(Yjac, 0, 7*sizeof(double));
635         YHphy(Yi, Yj)->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4] );
636         Yvsmatt (YNBS_Hphy, YNBI_Hphy, YMAX_JAC_NBI, &YG1Y_Hphy, Yjac[0], Ytbeta);
637         YG1_Hfil( Yi, Yj, YTemps-1) += Ytbeta[0];
638         #pragma omp atomic
639         YG1_Uphy( Yi, Yj, YTemps-1) += Ytbeta[1];
640         if (1==0 || Yi-1<0){} 
641         else 
642         #pragma omp atomic
643         YG1_Uphy( Yi-1, Yj, YTemps-1) += Ytbeta[2];
644         if (1==0 || Yj+1>YA2_Soce-1){} 
645         else 
646         #pragma omp atomic
647         YG1_Vphy( Yi, Yj+1, YTemps-1) += Ytbeta[3];
648         #pragma omp atomic
649         YG1_Vphy( Yi, Yj, YTemps-1) += Ytbeta[4];
650
651}
652}
653  endBackward=my_gettimeofday();
654  counter ++;
655
656  printf("\n\n################FORWARD-BACKWARD_SPACE_Soce#########################################");
657  printf("\nTimeForwardDifference %f", (endForward - beginForward));
658  printf("\nTimeBackwardDifference %f", (endBackward - beginBackward));
659  printf("\ncounter %d ", counter);
660  differenceForward = differenceForward + (endForward - beginForward);
661  differenceBackward = differenceBackward + (endBackward - beginBackward);
662  printf("Average %f\n", (differenceForward + differenceBackward) / counter );
663  printf("\n############################################################################\n\n");
664
665
666         return(0);
667}
668
669int Yforward_traj_Toce(int nbp)
670{
671        Ycurward=FORWARD;
672         Yforward_space_Soce();
673         return(0);
674}
675
676int Ybackward_traj_Toce(int nbp)
677{
678        Ycurward=BACKWARD;
679         Ybackward_space_Soce();
680         return(0);
681}
682
683int Yforward_order()
684{
685         Yforward_traj_Toce(0);
686         return(0);
687}
688
689int Ybackward_order()
690{
691         Ybackward_traj_Toce(0);
692         return(0);
693}
694
695void Yforward_operator (char type) 
696{       
697}
698void Ybackward_operator (char type) 
699{       
700}
701
702// € € € € € € € € LES FONCTIONS UTILISATEUR ... :
703int Yuser_call (int argc, char *argv[]) 
704{
705         int codret=1;
706         if (strcmp(argv[0], "xivg") == 0)
707                 xivg(argc, argv);
708         else if (strcmp(argv[0], "xdisplay") == 0)
709                 xdisplay();
710         else if (strcmp(argv[0], "xgauss") == 0)
711                 xgauss(argc, argv);
712         else if (strcmp(argv[0], "xvitgeo") == 0)
713                 xvitgeo();
714         else codret=0;
715         return(codret);
716}
717
718//-------------- end Yao generation -----------------
Note: See TracBrowser for help on using the repository browser.