1 | |
---|
2 | //---------------------------------------------------- |
---|
3 | // project: mflbc_rd header generated by YAO version v.9 |
---|
4 | //---------------------------------------------------- |
---|
5 | |
---|
6 | // € € € € € € € € LES FONCTIONS PREDEFINIES |
---|
7 | /*M2_TBTOG */ |
---|
8 | void YtabTOgrad_ssd(YREAL tab[]) |
---|
9 | { |
---|
10 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
11 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
12 | for (int Yws=0; Yws<YNBS_ssd; ++Yws){ |
---|
13 | YG_ssd(Yws, Yw1, Yw2) = tab[Y3windice]; ++Y3windice;}}} |
---|
14 | }/*M2_RGRAD*/ |
---|
15 | void Yrazgrad_ssd() |
---|
16 | { |
---|
17 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
18 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
19 | for (int Yws=0; Yws<YNBS_ssd; ++Yws){ |
---|
20 | Yssd(Yw1, Yw2)->Ygrad[Yws] = 0.0;}}} |
---|
21 | }/*M2_SETA*/ |
---|
22 | void Ysetstate_ssd(double val) |
---|
23 | { |
---|
24 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
25 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
26 | for (int Yws=0; Yws<YNBS_ssd; ++Yws){ |
---|
27 | Yssd(Yw1, Yw2)->Ystate[Yws] = val;}}} |
---|
28 | }/*M2_YIOTU*/ |
---|
29 | void Yio_ssd(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) |
---|
30 | { Yiorwf ("ssd", Yws, Yw1, Yw2, Yw3, Ywt, &YS_ssd(Yws, Yw1, Yw2), val); |
---|
31 | }/*M2_CREY*/ |
---|
32 | void Ycreate_ssd() |
---|
33 | { |
---|
34 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
35 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
36 | if ((Yssd(Yw1, Yw2)= new Yaossd ())==NULL) Ycreate_errnew();}} |
---|
37 | }/*M1_ADJUS*/ |
---|
38 | void Yadjust_gama() |
---|
39 | { |
---|
40 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1) |
---|
41 | for (int Yws=0;Yws<YNBS_gama; ++Yws) |
---|
42 | { Ystate_gama(Yws, Yw1) -= Yepsi_gama(Yws, Yw1) * Ygrad_gama(Yws, Yw1); |
---|
43 | } |
---|
44 | }/*M1_GCTOTB */ |
---|
45 | void YgradCTOtab_gama(YREAL tab[]) |
---|
46 | { |
---|
47 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
48 | for (int Yws=0; Yws<YNBS_gama; ++Yws){ |
---|
49 | tab[Y3windice] += YG_gama(Yws, Yw1); ++Y3windice;}} |
---|
50 | }/*M1_VSTA*/ |
---|
51 | void Y3valstate_gama() |
---|
52 | { |
---|
53 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
54 | for (int Yws=0; Yws<YNBS_gama; ++Yws){ |
---|
55 | Y3x[Y3windice] = Ygama(Yw1)->Ystate[Yws]; ++Y3windice;}} |
---|
56 | }/*M1_GSTA*/ |
---|
57 | void Y3getstate_gama(float x[]) |
---|
58 | { |
---|
59 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
60 | for (int Yws=0; Yws<YNBS_gama; ++Yws){ |
---|
61 | Ygama(Yw1)->Ystate[Yws] = x[Y3windice]; ++Y3windice;}} |
---|
62 | }/*M1_VGRAD*/ |
---|
63 | void Y3valgrad_gama(float g[]) |
---|
64 | { |
---|
65 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
66 | for (int Yws=0; Yws<YNBS_gama; ++Yws){ |
---|
67 | g[Y3windice] = Ygama(Yw1)->Ygrad[Yws]; ++Y3windice;}} |
---|
68 | }/*M1_TBTOG */ |
---|
69 | void YtabTOgrad_gama(YREAL tab[]) |
---|
70 | { |
---|
71 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
72 | for (int Yws=0; Yws<YNBS_gama; ++Yws){ |
---|
73 | YG_gama(Yws, Yw1) = tab[Y3windice]; ++Y3windice;}} |
---|
74 | }/*M1_RGRAD*/ |
---|
75 | void Yrazgrad_gama() |
---|
76 | { |
---|
77 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
78 | for (int Yws=0; Yws<YNBS_gama; ++Yws){ |
---|
79 | Ygama(Yw1)->Ygrad[Yws] = 0.0;}} |
---|
80 | }/*M1_SETA*/ |
---|
81 | void Ysetstate_gama(double val) |
---|
82 | { |
---|
83 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
84 | for (int Yws=0; Yws<YNBS_gama; ++Yws){ |
---|
85 | Ygama(Yw1)->Ystate[Yws] = val;}} |
---|
86 | }/*M1_YIOTU*/ |
---|
87 | void Yio_gama(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) |
---|
88 | { Yiorwf ("gama", Yws, Yw1, Yw2, Yw3, Ywt, &YS_gama(Yws, Yw1), val); |
---|
89 | }/*M0_OUTOB*/ |
---|
90 | int Youtoobs_gama(YioKind yiokind, int Yws, int Ywt, int arbpdt) |
---|
91 | { |
---|
92 | Yaobs.time = arbpdt; |
---|
93 | Yaobs.imod = Yimod("gama"); |
---|
94 | Yaobs.smod = Yws;/*M1_OUTOB*/ |
---|
95 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1) |
---|
96 | { if(select_io(yiokind, "gama", Yws, Yw1, -1, -1, Ywt, &Ystate_gama(Yws, Yw1))) |
---|
97 | { Yaobs.iaxe = Yw1; Yaobs.jaxe = -1; Yaobs.kaxe = -1; |
---|
98 | Yaobs.vobs = Ystate_gama(Yws, Yw1); |
---|
99 | if(!Yobs_insert (&Yaobs)) return(0); |
---|
100 | } |
---|
101 | }/*M9_OUTOB*/ |
---|
102 | return(1); |
---|
103 | }/*M1_SEPS*/ |
---|
104 | void Ysetepsi_gama(double val) |
---|
105 | { |
---|
106 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
107 | for (int Yws=0; Yws<YNBS_gama; ++Yws){ |
---|
108 | Ygama(Yw1)->Yepsi[Yws] = val;}} |
---|
109 | }/*M1_CREY*/ |
---|
110 | void Ycreate_gama() |
---|
111 | { |
---|
112 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
113 | if ((Ygama(Yw1) = new Yaogama ())==NULL) Ycreate_errnew();} |
---|
114 | }/*M1_SWISH*/ |
---|
115 | void Ysetwish_gama(double val) |
---|
116 | { |
---|
117 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
118 | for (int Yws=0; Yws<YNBS_gama; ++Yws){ |
---|
119 | Ywish_gama(Yws, Yw1) = val;}} |
---|
120 | }/*M2_TBTOG */ |
---|
121 | void YtabTOgrad_nj(YREAL tab[]) |
---|
122 | { |
---|
123 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
124 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
125 | for (int Yws=0; Yws<YNBS_nj; ++Yws){ |
---|
126 | YG_nj(Yws, Yw1, Yw2) = tab[Y3windice]; ++Y3windice;}}} |
---|
127 | }/*M2_RGRAD*/ |
---|
128 | void Yrazgrad_nj() |
---|
129 | { |
---|
130 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
131 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
132 | for (int Yws=0; Yws<YNBS_nj; ++Yws){ |
---|
133 | Ynj(Yw1, Yw2)->Ygrad[Yws] = 0.0;}}} |
---|
134 | }/*M2_SETA*/ |
---|
135 | void Ysetstate_nj(double val) |
---|
136 | { |
---|
137 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
138 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
139 | for (int Yws=0; Yws<YNBS_nj; ++Yws){ |
---|
140 | Ynj(Yw1, Yw2)->Ystate[Yws] = val;}}} |
---|
141 | }/*M2_YIOTU*/ |
---|
142 | void Yio_nj(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) |
---|
143 | { Yiorwf ("nj", Yws, Yw1, Yw2, Yw3, Ywt, &YS_nj(Yws, Yw1, Yw2), val); |
---|
144 | }/*M2_CREU*/ |
---|
145 | void Ycreate_nj() |
---|
146 | { |
---|
147 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
148 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
149 | if ((Ynj(Yw1, Yw2)= new nj ())==NULL) Ycreate_errnew();}} |
---|
150 | }/*M2_TBTOGT */ |
---|
151 | void YtabTOgrad_diac(int frompdt, int topdt, YREAL tab[]) |
---|
152 | { |
---|
153 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
154 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
155 | for (int Ywt=frompdt; Ywt<topdt; ++Ywt){ |
---|
156 | for (int Yws=0; Yws<YNBS_diac; ++Yws){ |
---|
157 | YG_diac(Yws, Yw1, Yw2, Ywt) = tab[Y3windice]; ++Y3windice;}}}} |
---|
158 | }/*M2_RGRADT*/ |
---|
159 | void Yrazgrad_diac() |
---|
160 | { |
---|
161 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
162 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
163 | for (int Ywt=0; Ywt<YNBALLTIME_Tlu; ++Ywt){ |
---|
164 | for (int Yws=0; Yws<YNBS_diac; ++Yws){ |
---|
165 | Ydiac(Yw1, Yw2)->Ygrad[Ywt][Yws] = 0.0;}}}} |
---|
166 | }/*M2_SETAT*/ |
---|
167 | void Ysetstate_diac(double val) |
---|
168 | { |
---|
169 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
170 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
171 | for (int Ywt=0; Ywt<YNBALLTIME_Tlu; ++Ywt){ |
---|
172 | for (int Yws=0; Yws<YNBS_diac; ++Yws){ |
---|
173 | Ydiac(Yw1, Yw2)->Ystate[Ywt][Yws] = val;}}}} |
---|
174 | }/*M2_YIOUT*/ |
---|
175 | void Yio_diac(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) |
---|
176 | { Yiorwf ("diac", Yws, Yw1, Yw2, Yw3, Ywt, &YS_diac(Yws, Yw1, Yw2, Ywt), val); |
---|
177 | }/*M2_CREU*/ |
---|
178 | void Ycreate_diac() |
---|
179 | { |
---|
180 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
181 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
182 | if ((Ydiac(Yw1, Yw2)= new diac ())==NULL) Ycreate_errnew();}} |
---|
183 | }/*M2_TBTOGT */ |
---|
184 | void YtabTOgrad_diab(int frompdt, int topdt, YREAL tab[]) |
---|
185 | { |
---|
186 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
187 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
188 | for (int Ywt=frompdt; Ywt<topdt; ++Ywt){ |
---|
189 | for (int Yws=0; Yws<YNBS_diab; ++Yws){ |
---|
190 | YG_diab(Yws, Yw1, Yw2, Ywt) = tab[Y3windice]; ++Y3windice;}}}} |
---|
191 | }/*M2_RGRADT*/ |
---|
192 | void Yrazgrad_diab() |
---|
193 | { |
---|
194 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
195 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
196 | for (int Ywt=0; Ywt<YNBALLTIME_Tlu; ++Ywt){ |
---|
197 | for (int Yws=0; Yws<YNBS_diab; ++Yws){ |
---|
198 | Ydiab(Yw1, Yw2)->Ygrad[Ywt][Yws] = 0.0;}}}} |
---|
199 | }/*M2_SETAT*/ |
---|
200 | void Ysetstate_diab(double val) |
---|
201 | { |
---|
202 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
203 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
204 | for (int Ywt=0; Ywt<YNBALLTIME_Tlu; ++Ywt){ |
---|
205 | for (int Yws=0; Yws<YNBS_diab; ++Yws){ |
---|
206 | Ydiab(Yw1, Yw2)->Ystate[Ywt][Yws] = val;}}}} |
---|
207 | }/*M2_YIOUT*/ |
---|
208 | void Yio_diab(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) |
---|
209 | { Yiorwf ("diab", Yws, Yw1, Yw2, Yw3, Ywt, &YS_diab(Yws, Yw1, Yw2, Ywt), val); |
---|
210 | }/*M2_CREU*/ |
---|
211 | void Ycreate_diab() |
---|
212 | { |
---|
213 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
214 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
215 | if ((Ydiab(Yw1, Yw2)= new diab ())==NULL) Ycreate_errnew();}} |
---|
216 | }/*M2_TBTOGT */ |
---|
217 | void YtabTOgrad_bet(int frompdt, int topdt, YREAL tab[]) |
---|
218 | { |
---|
219 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
220 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
221 | for (int Ywt=frompdt; Ywt<topdt; ++Ywt){ |
---|
222 | for (int Yws=0; Yws<YNBS_bet; ++Yws){ |
---|
223 | YG_bet(Yws, Yw1, Yw2, Ywt) = tab[Y3windice]; ++Y3windice;}}}} |
---|
224 | }/*M2_RGRADT*/ |
---|
225 | void Yrazgrad_bet() |
---|
226 | { |
---|
227 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
228 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
229 | for (int Ywt=0; Ywt<YNBALLTIME_Tlu; ++Ywt){ |
---|
230 | for (int Yws=0; Yws<YNBS_bet; ++Yws){ |
---|
231 | Ybet(Yw1, Yw2)->Ygrad[Ywt][Yws] = 0.0;}}}} |
---|
232 | }/*M2_SETAT*/ |
---|
233 | void Ysetstate_bet(double val) |
---|
234 | { |
---|
235 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
236 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
237 | for (int Ywt=0; Ywt<YNBALLTIME_Tlu; ++Ywt){ |
---|
238 | for (int Yws=0; Yws<YNBS_bet; ++Yws){ |
---|
239 | Ybet(Yw1, Yw2)->Ystate[Ywt][Yws] = val;}}}} |
---|
240 | }/*M2_YIOUT*/ |
---|
241 | void Yio_bet(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) |
---|
242 | { Yiorwf ("bet", Yws, Yw1, Yw2, Yw3, Ywt, &YS_bet(Yws, Yw1, Yw2, Ywt), val); |
---|
243 | }/*M2_CREU*/ |
---|
244 | void Ycreate_bet() |
---|
245 | { |
---|
246 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
247 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
248 | if ((Ybet(Yw1, Yw2)= new bet ())==NULL) Ycreate_errnew();}} |
---|
249 | }/*M2_TBTOGT */ |
---|
250 | void YtabTOgrad_gag(int frompdt, int topdt, YREAL tab[]) |
---|
251 | { |
---|
252 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
253 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
254 | for (int Ywt=frompdt; Ywt<topdt; ++Ywt){ |
---|
255 | for (int Yws=0; Yws<YNBS_gag; ++Yws){ |
---|
256 | YG_gag(Yws, Yw1, Yw2, Ywt) = tab[Y3windice]; ++Y3windice;}}}} |
---|
257 | }/*M2_RGRADT*/ |
---|
258 | void Yrazgrad_gag() |
---|
259 | { |
---|
260 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
261 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
262 | for (int Ywt=0; Ywt<YNBALLTIME_Tlu; ++Ywt){ |
---|
263 | for (int Yws=0; Yws<YNBS_gag; ++Yws){ |
---|
264 | Ygag(Yw1, Yw2)->Ygrad[Ywt][Yws] = 0.0;}}}} |
---|
265 | }/*M2_SETAT*/ |
---|
266 | void Ysetstate_gag(double val) |
---|
267 | { |
---|
268 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
269 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
270 | for (int Ywt=0; Ywt<YNBALLTIME_Tlu; ++Ywt){ |
---|
271 | for (int Yws=0; Yws<YNBS_gag; ++Yws){ |
---|
272 | Ygag(Yw1, Yw2)->Ystate[Ywt][Yws] = val;}}}} |
---|
273 | }/*M2_YIOUT*/ |
---|
274 | void Yio_gag(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) |
---|
275 | { Yiorwf ("gag", Yws, Yw1, Yw2, Yw3, Ywt, &YS_gag(Yws, Yw1, Yw2, Ywt), val); |
---|
276 | }/*M2_CREU*/ |
---|
277 | void Ycreate_gag() |
---|
278 | { |
---|
279 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
280 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
281 | if ((Ygag(Yw1, Yw2)= new gag ())==NULL) Ycreate_errnew();}} |
---|
282 | }/*M2_TBTOGT */ |
---|
283 | void YtabTOgrad_res(int frompdt, int topdt, YREAL tab[]) |
---|
284 | { |
---|
285 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
286 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
287 | for (int Ywt=frompdt; Ywt<topdt; ++Ywt){ |
---|
288 | for (int Yws=0; Yws<YNBS_res; ++Yws){ |
---|
289 | YG_res(Yws, Yw1, Yw2, Ywt) = tab[Y3windice]; ++Y3windice;}}}} |
---|
290 | }/*M2_RGRADT*/ |
---|
291 | void Yrazgrad_res() |
---|
292 | { |
---|
293 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
294 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
295 | for (int Ywt=0; Ywt<YNBALLTIME_Tlu; ++Ywt){ |
---|
296 | for (int Yws=0; Yws<YNBS_res; ++Yws){ |
---|
297 | Yres(Yw1, Yw2)->Ygrad[Ywt][Yws] = 0.0;}}}} |
---|
298 | }/*M2_SETAT*/ |
---|
299 | void Ysetstate_res(double val) |
---|
300 | { |
---|
301 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
302 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
303 | for (int Ywt=0; Ywt<YNBALLTIME_Tlu; ++Ywt){ |
---|
304 | for (int Yws=0; Yws<YNBS_res; ++Yws){ |
---|
305 | Yres(Yw1, Yw2)->Ystate[Ywt][Yws] = val;}}}} |
---|
306 | }/*M2_YIOUT*/ |
---|
307 | void Yio_res(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) |
---|
308 | { Yiorwf ("res", Yws, Yw1, Yw2, Yw3, Ywt, &YS_res(Yws, Yw1, Yw2, Ywt), val); |
---|
309 | }/*M2_CREU*/ |
---|
310 | void Ycreate_res() |
---|
311 | { |
---|
312 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
313 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
314 | if ((Yres(Yw1, Yw2)= new res ())==NULL) Ycreate_errnew();}} |
---|
315 | }/*M2_TBTOGT */ |
---|
316 | void YtabTOgrad_ixu(int frompdt, int topdt, YREAL tab[]) |
---|
317 | { |
---|
318 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
319 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
320 | for (int Ywt=frompdt; Ywt<topdt; ++Ywt){ |
---|
321 | for (int Yws=0; Yws<YNBS_ixu; ++Yws){ |
---|
322 | YG_ixu(Yws, Yw1, Yw2, Ywt) = tab[Y3windice]; ++Y3windice;}}}} |
---|
323 | }/*M2_RGRADT*/ |
---|
324 | void Yrazgrad_ixu() |
---|
325 | { |
---|
326 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
327 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
328 | for (int Ywt=0; Ywt<YNBALLTIME_Tlu; ++Ywt){ |
---|
329 | for (int Yws=0; Yws<YNBS_ixu; ++Yws){ |
---|
330 | Yixu(Yw1, Yw2)->Ygrad[Ywt][Yws] = 0.0;}}}} |
---|
331 | }/*M2_SETAT*/ |
---|
332 | void Ysetstate_ixu(double val) |
---|
333 | { |
---|
334 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
335 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
336 | for (int Ywt=0; Ywt<YNBALLTIME_Tlu; ++Ywt){ |
---|
337 | for (int Yws=0; Yws<YNBS_ixu; ++Yws){ |
---|
338 | Yixu(Yw1, Yw2)->Ystate[Ywt][Yws] = val;}}}} |
---|
339 | }/*M2_YIOUT*/ |
---|
340 | void Yio_ixu(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) |
---|
341 | { Yiorwf ("ixu", Yws, Yw1, Yw2, Yw3, Ywt, &YS_ixu(Yws, Yw1, Yw2, Ywt), val); |
---|
342 | }/*M2_CREU*/ |
---|
343 | void Ycreate_ixu() |
---|
344 | { |
---|
345 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
346 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
347 | if ((Yixu(Yw1, Yw2)= new ixu ())==NULL) Ycreate_errnew();}} |
---|
348 | }/*M2_TBTOGT */ |
---|
349 | void YtabTOgrad_psi(int frompdt, int topdt, YREAL tab[]) |
---|
350 | { |
---|
351 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
352 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
353 | for (int Ywt=frompdt; Ywt<topdt; ++Ywt){ |
---|
354 | for (int Yws=0; Yws<YNBS_psi; ++Yws){ |
---|
355 | YG_psi(Yws, Yw1, Yw2, Ywt) = tab[Y3windice]; ++Y3windice;}}}} |
---|
356 | }/*M2_RGRADT*/ |
---|
357 | void Yrazgrad_psi() |
---|
358 | { |
---|
359 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
360 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
361 | for (int Ywt=0; Ywt<YNBALLTIME_Tlu; ++Ywt){ |
---|
362 | for (int Yws=0; Yws<YNBS_psi; ++Yws){ |
---|
363 | Ypsi(Yw1, Yw2)->Ygrad[Ywt][Yws] = 0.0;}}}} |
---|
364 | }/*M2_SETAT*/ |
---|
365 | void Ysetstate_psi(double val) |
---|
366 | { |
---|
367 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
368 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
369 | for (int Ywt=0; Ywt<YNBALLTIME_Tlu; ++Ywt){ |
---|
370 | for (int Yws=0; Yws<YNBS_psi; ++Yws){ |
---|
371 | Ypsi(Yw1, Yw2)->Ystate[Ywt][Yws] = val;}}}} |
---|
372 | }/*M2_YIOUT*/ |
---|
373 | void Yio_psi(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) |
---|
374 | { Yiorwf ("psi", Yws, Yw1, Yw2, Yw3, Ywt, &YS_psi(Yws, Yw1, Yw2, Ywt), val); |
---|
375 | }/*M0_OUTOB*/ |
---|
376 | int Youtoobs_psi(YioKind yiokind, int Yws, int Ywt, int arbpdt) |
---|
377 | { |
---|
378 | Yaobs.time = arbpdt; |
---|
379 | Yaobs.imod = Yimod("psi"); |
---|
380 | Yaobs.smod = Yws;/*M2_OUTOBT*/ |
---|
381 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1) |
---|
382 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2) |
---|
383 | { if(select_io(yiokind, "psi", Yws, Yw1, Yw2, -1, Ywt, &Ystate_psi(Yws, Yw1, Yw2, Ywt))) |
---|
384 | { Yaobs.iaxe = Yw1; Yaobs.jaxe = Yw2; Yaobs.kaxe = -1; |
---|
385 | Yaobs.vobs = Ystate_psi(Yws, Yw1, Yw2, Ywt); |
---|
386 | if(!Yobs_insert (&Yaobs)) return(0); |
---|
387 | } |
---|
388 | }/*M9_OUTOB*/ |
---|
389 | return(1); |
---|
390 | }/*M2_CREU*/ |
---|
391 | void Ycreate_psi() |
---|
392 | { |
---|
393 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
394 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
395 | if ((Ypsi(Yw1, Yw2)= new psi ())==NULL) Ycreate_errnew();}} |
---|
396 | }/*M2_SWISH*/ |
---|
397 | void Ysetwish_psi(double val) |
---|
398 | { |
---|
399 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
400 | for (int Yw2=0; Yw2<YA2_Sac; ++Yw2){ |
---|
401 | for (int Yws=0; Yws<YNBS_psi; ++Yws){ |
---|
402 | Ywish_psi(Yws, Yw1, Yw2) = val;}}} |
---|
403 | }/*M1_TBTOGT */ |
---|
404 | void YtabTOgrad_psifd(int frompdt, int topdt, YREAL tab[]) |
---|
405 | { |
---|
406 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
407 | for (int Ywt=frompdt; Ywt<topdt; ++Ywt){ |
---|
408 | for (int Yws=0; Yws<YNBS_psifd; ++Yws){ |
---|
409 | YG_psifd(Yws, Yw1, Ywt) = tab[Y3windice]; ++Y3windice;}}} |
---|
410 | }/*M1_RGRADT*/ |
---|
411 | void Yrazgrad_psifd() |
---|
412 | { |
---|
413 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
414 | for (int Ywt=0; Ywt<YNBALLTIME_Tlu; ++Ywt){ |
---|
415 | for (int Yws=0; Yws<YNBS_psifd; ++Yws){ |
---|
416 | Ypsifd(Yw1)->Ygrad[Ywt][Yws] = 0.0;}}} |
---|
417 | }/*M1_SETAT*/ |
---|
418 | void Ysetstate_psifd(double val) |
---|
419 | { |
---|
420 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
421 | for (int Ywt=0; Ywt<YNBALLTIME_Tlu; ++Ywt){ |
---|
422 | for (int Yws=0; Yws<YNBS_psifd; ++Yws){ |
---|
423 | Ypsifd(Yw1)->Ystate[Ywt][Yws] = val;}}} |
---|
424 | }/*M1_YIOUT*/ |
---|
425 | void Yio_psifd(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) |
---|
426 | { Yiorwf ("psifd", Yws, Yw1, Yw2, Yw3, Ywt, &YS_psifd(Yws, Yw1, Ywt), val); |
---|
427 | }/*M0_OUTOB*/ |
---|
428 | int Youtoobs_psifd(YioKind yiokind, int Yws, int Ywt, int arbpdt) |
---|
429 | { |
---|
430 | Yaobs.time = arbpdt; |
---|
431 | Yaobs.imod = Yimod("psifd"); |
---|
432 | Yaobs.smod = Yws;/*M1_OUTOBT*/ |
---|
433 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1) |
---|
434 | { if(select_io(yiokind, "psifd", Yws, Yw1, -1, -1, Ywt, &Ystate_psifd(Yws, Yw1, Ywt))) |
---|
435 | { Yaobs.iaxe = Yw1; Yaobs.jaxe = -1; Yaobs.kaxe = -1; |
---|
436 | Yaobs.vobs = Ystate_psifd(Yws, Yw1, Ywt); |
---|
437 | if(!Yobs_insert (&Yaobs)) return(0); |
---|
438 | } |
---|
439 | }/*M9_OUTOB*/ |
---|
440 | return(1); |
---|
441 | }/*M1_CREU*/ |
---|
442 | void Ycreate_psifd() |
---|
443 | { |
---|
444 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
445 | if ((Ypsifd(Yw1) = new psifd ())==NULL) Ycreate_errnew();} |
---|
446 | }/*M1_SWISH*/ |
---|
447 | void Ysetwish_psifd(double val) |
---|
448 | { |
---|
449 | for (int Yw1=0; Yw1<YA1_Sac; ++Yw1){ |
---|
450 | for (int Yws=0; Yws<YNBS_psifd; ++Yws){ |
---|
451 | Ywish_psifd(Yws, Yw1) = val;}} |
---|
452 | }/*M1_TBTOG */ |
---|
453 | void YtabTOgrad_lap(YREAL tab[]) |
---|
454 | { |
---|
455 | for (int Yw1=0; Yw1<YA1_Olap; ++Yw1){ |
---|
456 | for (int Yws=0; Yws<YNBS_lap; ++Yws){ |
---|
457 | YG_lap(Yws, Yw1) = tab[Y3windice]; ++Y3windice;}} |
---|
458 | }/*M1_RGRAD*/ |
---|
459 | void Yrazgrad_lap() |
---|
460 | { |
---|
461 | for (int Yw1=0; Yw1<YA1_Olap; ++Yw1){ |
---|
462 | for (int Yws=0; Yws<YNBS_lap; ++Yws){ |
---|
463 | Ylap(Yw1)->Ygrad[Yws] = 0.0;}} |
---|
464 | }/*M1_SETA*/ |
---|
465 | void Ysetstate_lap(double val) |
---|
466 | { |
---|
467 | for (int Yw1=0; Yw1<YA1_Olap; ++Yw1){ |
---|
468 | for (int Yws=0; Yws<YNBS_lap; ++Yws){ |
---|
469 | Ylap(Yw1)->Ystate[Yws] = val;}} |
---|
470 | }/*M1_YIOTU*/ |
---|
471 | void Yio_lap(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) |
---|
472 | { Yiorwf ("lap", Yws, Yw1, Yw2, Yw3, Ywt, &YS_lap(Yws, Yw1), val); |
---|
473 | }/*M1_CREU*/ |
---|
474 | void Ycreate_lap() |
---|
475 | { |
---|
476 | for (int Yw1=0; Yw1<YA1_Olap; ++Yw1){ |
---|
477 | if ((Ylap(Yw1) = new lap ())==NULL) Ycreate_errnew();} |
---|
478 | } |
---|
479 | void Ycreate_all () |
---|
480 | { |
---|
481 | Ycreate_ssd (); |
---|
482 | Ycreate_gama (); |
---|
483 | Ycreate_nj (); |
---|
484 | Ycreate_diac (); |
---|
485 | Ycreate_diab (); |
---|
486 | Ycreate_bet (); |
---|
487 | Ycreate_gag (); |
---|
488 | Ycreate_res (); |
---|
489 | Ycreate_ixu (); |
---|
490 | Ycreate_psi (); |
---|
491 | Ycreate_psifd (); |
---|
492 | Ycreate_lap (); |
---|
493 | } |
---|
494 | void Ywishdiff_all (char *nmmod, int Yws, int Yw1, int Yw2, int Yw3, int Ywt, YREAL vobs) |
---|
495 | { |
---|
496 | if(1==0); |
---|
497 | else if (strcmp(nmmod, "gama") == 0) |
---|
498 | YW_gama(Yws, Yw1) = YS_gama(Yws, Yw1) - vobs; |
---|
499 | else if (strcmp(nmmod, "psi") == 0) |
---|
500 | YW_psi(Yws, Yw1, Yw2) = YS_psi(Yws, Yw1, Yw2, Ywt) - vobs; |
---|
501 | else if (strcmp(nmmod, "psifd") == 0) |
---|
502 | YW_psifd(Yws, Yw1) = YS_psifd(Yws, Yw1, Ywt) - vobs; |
---|
503 | } |
---|
504 | void Ycostwishdiff_all (char *nmmod, int Yws, int Yw1, int Yw2, int Yw3, int Ywt) |
---|
505 | { |
---|
506 | if(1==0); |
---|
507 | else if (strcmp(nmmod, "gama") == 0) |
---|
508 | YG_gama(Yws, Yw1) += Ycostdiff(YW_gama(Yws, Yw1), YS_lap(Yws, Yw1)); |
---|
509 | else if (strcmp(nmmod, "psi") == 0) |
---|
510 | YG_psi(Yws, Yw1, Yw2, Ywt) += Ycostdiff(YW_psi(Yws, Yw1, Yw2), YW_psi(Yws, Yw1, Yw2)); |
---|
511 | else if (strcmp(nmmod, "psifd") == 0) |
---|
512 | YG_psifd(Yws, Yw1, Ywt) += Ycostdiff(YW_psifd(Yws, Yw1), YW_psifd(Yws, Yw1)); |
---|
513 | } |
---|
514 | void Youtoobs_mod(YioKind yiokind, char *nmmod, int numout, int pdt, int arbpdt) |
---|
515 | { |
---|
516 | if(1==0); |
---|
517 | else if (strcmp(nmmod, "gama") == 0) Youtoobs_gama(yiokind, numout, pdt, arbpdt); |
---|
518 | else if (strcmp(nmmod, "psi") == 0) Youtoobs_psi(yiokind, numout, pdt, arbpdt); |
---|
519 | else if (strcmp(nmmod, "psifd") == 0) Youtoobs_psifd(yiokind, numout, pdt, arbpdt); |
---|
520 | } |
---|
521 | void Yadjust_all () |
---|
522 | { |
---|
523 | Yadjust_gama (); |
---|
524 | } |
---|
525 | void Yrazgrad_all () |
---|
526 | { |
---|
527 | Yrazgrad_ssd (); |
---|
528 | Yrazgrad_gama (); |
---|
529 | Yrazgrad_nj (); |
---|
530 | Yrazgrad_diac (); |
---|
531 | Yrazgrad_diab (); |
---|
532 | Yrazgrad_bet (); |
---|
533 | Yrazgrad_gag (); |
---|
534 | Yrazgrad_res (); |
---|
535 | Yrazgrad_ixu (); |
---|
536 | Yrazgrad_psi (); |
---|
537 | Yrazgrad_psifd (); |
---|
538 | Yrazgrad_lap (); |
---|
539 | } |
---|
540 | void Yrazgrad_only (int itraj) |
---|
541 | { |
---|
542 | if (itraj==Yid_Tlu) |
---|
543 | { Yrazgrad_nj (); |
---|
544 | Yrazgrad_lap (); |
---|
545 | } |
---|
546 | } |
---|
547 | int Ysetstate_mod (char *nmmod, YREAL val) |
---|
548 | { int codret=0; int all=0; |
---|
549 | if (!strcmp(nmmod, "Y#A")) all=1; |
---|
550 | if (!strcmp(nmmod, "ssd") || all) |
---|
551 | { Ysetstate_ssd(val);codret=1;} |
---|
552 | if (!strcmp(nmmod, "gama") || all) |
---|
553 | { Ysetstate_gama(val);codret=1;} |
---|
554 | if (!strcmp(nmmod, "nj") || all) |
---|
555 | { Ysetstate_nj(val);codret=1;} |
---|
556 | if (!strcmp(nmmod, "diac") || all) |
---|
557 | { Ysetstate_diac(val);codret=1;} |
---|
558 | if (!strcmp(nmmod, "diab") || all) |
---|
559 | { Ysetstate_diab(val);codret=1;} |
---|
560 | if (!strcmp(nmmod, "bet") || all) |
---|
561 | { Ysetstate_bet(val);codret=1;} |
---|
562 | if (!strcmp(nmmod, "gag") || all) |
---|
563 | { Ysetstate_gag(val);codret=1;} |
---|
564 | if (!strcmp(nmmod, "res") || all) |
---|
565 | { Ysetstate_res(val);codret=1;} |
---|
566 | if (!strcmp(nmmod, "ixu") || all) |
---|
567 | { Ysetstate_ixu(val);codret=1;} |
---|
568 | if (!strcmp(nmmod, "psi") || all) |
---|
569 | { Ysetstate_psi(val);codret=1;} |
---|
570 | if (!strcmp(nmmod, "psifd") || all) |
---|
571 | { Ysetstate_psifd(val);codret=1;} |
---|
572 | if (!strcmp(nmmod, "lap") || all) |
---|
573 | { Ysetstate_lap(val);codret=1;} |
---|
574 | return(codret); |
---|
575 | } |
---|
576 | void Ysetwish_mod (int imod, YREAL val) |
---|
577 | { if(1==0); |
---|
578 | else if (imod==1) Ysetwish_gama(val); |
---|
579 | else if (imod==9) Ysetwish_psi(val); |
---|
580 | else if (imod==10) Ysetwish_psifd(val); |
---|
581 | } |
---|
582 | void Yio_mod (char *nmmod, int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) |
---|
583 | { |
---|
584 | if(1==0); |
---|
585 | else if (strcmp(nmmod, "ssd") == 0) Yio_ssd(Yws, Yw1, Yw2, Yw3, Ywt, val); |
---|
586 | else if (strcmp(nmmod, "gama") == 0) Yio_gama(Yws, Yw1, Yw2, Yw3, Ywt, val); |
---|
587 | else if (strcmp(nmmod, "nj") == 0) Yio_nj(Yws, Yw1, Yw2, Yw3, Ywt, val); |
---|
588 | else if (strcmp(nmmod, "diac") == 0) Yio_diac(Yws, Yw1, Yw2, Yw3, Ywt, val); |
---|
589 | else if (strcmp(nmmod, "diab") == 0) Yio_diab(Yws, Yw1, Yw2, Yw3, Ywt, val); |
---|
590 | else if (strcmp(nmmod, "bet") == 0) Yio_bet(Yws, Yw1, Yw2, Yw3, Ywt, val); |
---|
591 | else if (strcmp(nmmod, "gag") == 0) Yio_gag(Yws, Yw1, Yw2, Yw3, Ywt, val); |
---|
592 | else if (strcmp(nmmod, "res") == 0) Yio_res(Yws, Yw1, Yw2, Yw3, Ywt, val); |
---|
593 | else if (strcmp(nmmod, "ixu") == 0) Yio_ixu(Yws, Yw1, Yw2, Yw3, Ywt, val); |
---|
594 | else if (strcmp(nmmod, "psi") == 0) Yio_psi(Yws, Yw1, Yw2, Yw3, Ywt, val); |
---|
595 | else if (strcmp(nmmod, "psifd") == 0) Yio_psifd(Yws, Yw1, Yw2, Yw3, Ywt, val); |
---|
596 | else if (strcmp(nmmod, "lap") == 0) Yio_lap(Yws, Yw1, Yw2, Yw3, Ywt, val); |
---|
597 | } |
---|
598 | void YgradCTOtab_target (YREAL tab[]) |
---|
599 | { //Y3windice = 0; |
---|
600 | YgradCTOtab_gama (tab); |
---|
601 | } |
---|
602 | void YtabTOgrad_target (YREAL tab[]) |
---|
603 | { //Y3windice = 0; |
---|
604 | YtabTOgrad_gama (tab); |
---|
605 | } |
---|
606 | void Y3getstate_all (float x[]) |
---|
607 | { Y3windice = 0; |
---|
608 | Y3getstate_gama (x); |
---|
609 | } |
---|
610 | void Y3valstate_all () |
---|
611 | { Y3windice = 0; |
---|
612 | Y3valstate_gama (); |
---|
613 | } |
---|
614 | void Y3valgrad_all (float g[]) |
---|
615 | { Y3windice = 0; |
---|
616 | Y3valgrad_gama (g); |
---|
617 | } |
---|
618 | int Yauto_call (int argc, char *argv[]) |
---|
619 | { |
---|
620 | int codret=0; int all=0; double val; |
---|
621 | if (1==0); |
---|
622 | else if ( !strcmp(argv[0], "setepsi") || !strcmp(argv[0], "SETEPSI") |
---|
623 | ||!strcmp(argv[0], "setepsi_all") || !strcmp(argv[0], "SETEPSI_ALL")) |
---|
624 | { |
---|
625 | if (!strcmp(argv[0], "setepsi_all") || !strcmp(argv[0], "SETEPSI_ALL")){all=1; val=atof(argv[1]);} else val=atof(argv[2]); |
---|
626 | if (!strcmp(argv[1], "gama") || all) |
---|
627 | {Ysetepsi_gama(val);codret=1;} |
---|
628 | } |
---|
629 | else codret=0; |
---|
630 | return(codret); |
---|
631 | } |
---|
632 | |
---|
633 | //############################################################################################################################# |
---|
634 | |
---|
635 | |
---|
636 | #include <sys/time.h> |
---|
637 | double my_gettimeofday(){ |
---|
638 | struct timeval tmp_time; |
---|
639 | gettimeofday(&tmp_time, NULL); |
---|
640 | return tmp_time.tv_sec + (tmp_time.tv_usec * 1.0e-6L); |
---|
641 | } |
---|
642 | |
---|
643 | |
---|
644 | int Yforward_space_Sac() |
---|
645 | { |
---|
646 | double begin=0, end=0; |
---|
647 | YA1=2049; YA2=512; YA3=0; |
---|
648 | Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ |
---|
649 | |
---|
650 | begin=my_gettimeofday(); |
---|
651 | #pragma omp parallel for |
---|
652 | for(YY=0; YY<YA1_Sac; ++YY){ |
---|
653 | Yi=YY; |
---|
654 | { |
---|
655 | for(Yj=0; Yj<YA2_Sac; ++Yj) |
---|
656 | { |
---|
657 | Yting[0]=YS1_ssd( Yi, Yj); |
---|
658 | Ynj(Yi, Yj)->forward( Yting[0] ); |
---|
659 | Yting[0]=YS1_nj( Yi, Yj); |
---|
660 | Ydiab(Yi, Yj)->forward( Yting[0] ); |
---|
661 | Yting[0]=YS1_nj( Yi, Yj); |
---|
662 | Ydiac(Yi, Yj)->forward( Yting[0] ); |
---|
663 | if (1==0 || Yj-1<0) |
---|
664 | Yting[0]=0; |
---|
665 | else |
---|
666 | Yting[0]=YS1_bet( Yi, Yj-1, YTemps); |
---|
667 | if (1==0 || Yj-1<0) |
---|
668 | Yting[1]=0; |
---|
669 | else |
---|
670 | Yting[1]=YS2_bet( Yi, Yj-1, YTemps); |
---|
671 | Ygag(Yi, Yj)->forward( Yting[0], Yting[1] ); |
---|
672 | Yting[0]=YS1_diac( Yi, Yj, YTemps); |
---|
673 | Yting[1]=YS2_diac( Yi, Yj, YTemps); |
---|
674 | Yting[2]=YS1_gag( Yi, Yj, YTemps); |
---|
675 | Yting[3]=YS2_gag( Yi, Yj, YTemps); |
---|
676 | Ybet(Yi, Yj)->forward( Yting[0], Yting[1], Yting[2], Yting[3] ); |
---|
677 | |
---|
678 | } |
---|
679 | |
---|
680 | } |
---|
681 | } |
---|
682 | |
---|
683 | for(Yi=0; Yi<YA1_Sac; ++Yi) |
---|
684 | { |
---|
685 | for(Yj=0; Yj<YA2_Sac; ++Yj) |
---|
686 | { |
---|
687 | if (1==0 || Yi-1<0 || Yj-1<0) |
---|
688 | Yting[0]=0; |
---|
689 | else |
---|
690 | Yting[0]=YS1_psi( Yi-1, Yj-1, YTemps); |
---|
691 | if (1==0 || Yi-1<0 || Yj-1<0) |
---|
692 | Yting[1]=0; |
---|
693 | else |
---|
694 | Yting[1]=YS2_psi( Yi-1, Yj-1, YTemps); |
---|
695 | if (1==0 || Yi-1<0) |
---|
696 | Yting[2]=0; |
---|
697 | else |
---|
698 | Yting[2]=YS1_psi( Yi-1, Yj, YTemps); |
---|
699 | if (1==0 || Yi-1<0) |
---|
700 | Yting[3]=0; |
---|
701 | else |
---|
702 | Yting[3]=YS2_psi( Yi-1, Yj, YTemps); |
---|
703 | if (1==0 || Yi-1<0 || Yj+1>YA2_Sac-1) |
---|
704 | Yting[4]=0; |
---|
705 | else |
---|
706 | Yting[4]=YS1_psi( Yi-1, Yj+1, YTemps); |
---|
707 | if (1==0 || Yi-1<0 || Yj+1>YA2_Sac-1) |
---|
708 | Yting[5]=0; |
---|
709 | else |
---|
710 | Yting[5]=YS2_psi( Yi-1, Yj+1, YTemps); |
---|
711 | Yting[6]=YS1_diab( 0, Yj, YTemps); |
---|
712 | Yting[7]=YS2_diab( 0, Yj, YTemps); |
---|
713 | Yting[8]=YS1_gama( Yi); |
---|
714 | Yting[9]=YS2_gama( Yi); |
---|
715 | Yres(Yi, Yj)->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9] ); |
---|
716 | Yting[0]=YS1_res( Yi, Yj, YTemps); |
---|
717 | Yting[1]=YS2_res( Yi, Yj, YTemps); |
---|
718 | if (1==0 || Yj-1<0) |
---|
719 | Yting[2]=0; |
---|
720 | else |
---|
721 | Yting[2]=YS1_ixu( Yi, Yj-1, YTemps); |
---|
722 | if (1==0 || Yj-1<0) |
---|
723 | Yting[3]=0; |
---|
724 | else |
---|
725 | Yting[3]=YS2_ixu( Yi, Yj-1, YTemps); |
---|
726 | Yting[4]=YS1_bet( 0, Yj, YTemps); |
---|
727 | Yting[5]=YS2_bet( 0, Yj, YTemps); |
---|
728 | if (1==0 || Yi+1>YA1_Sac-1) |
---|
729 | Yting[6]=0; |
---|
730 | else |
---|
731 | Yting[6]=YS1_gama( Yi+1); |
---|
732 | if (1==0 || Yi+1>YA1_Sac-1) |
---|
733 | Yting[7]=0; |
---|
734 | else |
---|
735 | Yting[7]=YS2_gama( Yi+1); |
---|
736 | Yixu(Yi, Yj)->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7] ); |
---|
737 | |
---|
738 | } |
---|
739 | for(Yj=YA2_Sac-1; Yj>=0; --Yj) |
---|
740 | { |
---|
741 | Yting[0]=YS1_ixu( Yi, Yj, YTemps); |
---|
742 | Yting[1]=YS2_ixu( Yi, Yj, YTemps); |
---|
743 | if (1==0 || Yj+1>YA2_Sac-1) |
---|
744 | Yting[2]=0; |
---|
745 | else |
---|
746 | Yting[2]=YS1_psi( Yi, Yj+1, YTemps); |
---|
747 | if (1==0 || Yj+1>YA2_Sac-1) |
---|
748 | Yting[3]=0; |
---|
749 | else |
---|
750 | Yting[3]=YS2_psi( Yi, Yj+1, YTemps); |
---|
751 | if (1==0 || Yj+1>YA2_Sac-1) |
---|
752 | Yting[4]=0; |
---|
753 | else |
---|
754 | Yting[4]=YS1_gag( 0, Yj+1, YTemps); |
---|
755 | if (1==0 || Yj+1>YA2_Sac-1) |
---|
756 | Yting[5]=0; |
---|
757 | else |
---|
758 | Yting[5]=YS2_gag( 0, Yj+1, YTemps); |
---|
759 | Ypsi(Yi, Yj)->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5] ); |
---|
760 | |
---|
761 | } |
---|
762 | |
---|
763 | } |
---|
764 | #pragma omp parallel for |
---|
765 | for(YY=0; YY<YA1_Sac; ++YY){ |
---|
766 | Yi=YY; |
---|
767 | { |
---|
768 | Yting[0]=YS1_psi( Yi, 511, YTemps); |
---|
769 | Yting[1]=YS2_psi( Yi, 511, YTemps); |
---|
770 | Yting[2]=YS1_gama( Yi); |
---|
771 | Yting[3]=YS2_gama( Yi); |
---|
772 | Ypsifd(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3] ); |
---|
773 | |
---|
774 | } |
---|
775 | } |
---|
776 | end=my_gettimeofday(); |
---|
777 | |
---|
778 | printf("\n\n################ FORWARD_SPACE_SAC #########################################"); |
---|
779 | // printf("\nTime begin: %f", begin); |
---|
780 | // printf("\nTime end: %f", end); |
---|
781 | printf("\nTimeForwardDifference %f", (end - begin)); |
---|
782 | printf("\n###############################################################################\n\n"); |
---|
783 | |
---|
784 | return(0); |
---|
785 | } |
---|
786 | //############################################################################################################################# |
---|
787 | |
---|
788 | int Ybackward_space_Sac() |
---|
789 | { |
---|
790 | double begin=0, end=0; |
---|
791 | YA1=2049; YA2=512; YA3=0; |
---|
792 | Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ |
---|
793 | begin=my_gettimeofday(); |
---|
794 | #pragma omp parallel for |
---|
795 | for(YY=YA1_Sac-1; YY>=0; --YY){ |
---|
796 | Yi=YY; |
---|
797 | { |
---|
798 | Yting[0]=YS1_psi( Yi, 511, YTemps); |
---|
799 | Yting[1]=YS2_psi( Yi, 511, YTemps); |
---|
800 | Yting[2]=YS1_gama( Yi); |
---|
801 | Yting[3]=YS2_gama( Yi); |
---|
802 | memset(Yjac, 0, 20*sizeof(double)); |
---|
803 | Ypsifd(Yi)->backward( Yting[0], Yting[1], Yting[2], Yting[3] ); |
---|
804 | Yvsmatt (YNBS_psifd, YNBI_psifd, YMAX_JAC_NBI, &YG1Y_psifd, Yjac[0], Ytbeta); |
---|
805 | YG1_psi( Yi, 511, YTemps) += Ytbeta[0]; |
---|
806 | YG2_psi( Yi, 511, YTemps) += Ytbeta[1]; |
---|
807 | YG1_gama( Yi) += Ytbeta[2]; |
---|
808 | YG2_gama( Yi) += Ytbeta[3]; |
---|
809 | |
---|
810 | } |
---|
811 | } |
---|
812 | for(Yi=YA1_Sac-1; Yi>=0; --Yi) |
---|
813 | { |
---|
814 | for(Yj=0; Yj<YA2_Sac; ++Yj) |
---|
815 | { |
---|
816 | Yting[0]=YS1_ixu( Yi, Yj, YTemps); |
---|
817 | Yting[1]=YS2_ixu( Yi, Yj, YTemps); |
---|
818 | if (1==0 || Yj+1>YA2_Sac-1) |
---|
819 | Yting[2]=0; |
---|
820 | else |
---|
821 | Yting[2]=YS1_psi( Yi, Yj+1, YTemps); |
---|
822 | if (1==0 || Yj+1>YA2_Sac-1) |
---|
823 | Yting[3]=0; |
---|
824 | else |
---|
825 | Yting[3]=YS2_psi( Yi, Yj+1, YTemps); |
---|
826 | if (1==0 || Yj+1>YA2_Sac-1) |
---|
827 | Yting[4]=0; |
---|
828 | else |
---|
829 | Yting[4]=YS1_gag( 0, Yj+1, YTemps); |
---|
830 | if (1==0 || Yj+1>YA2_Sac-1) |
---|
831 | Yting[5]=0; |
---|
832 | else |
---|
833 | Yting[5]=YS2_gag( 0, Yj+1, YTemps); |
---|
834 | memset(Yjac, 0, 20*sizeof(double)); |
---|
835 | Ypsi(Yi, Yj)->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5] ); |
---|
836 | Yvsmatt (YNBS_psi, YNBI_psi, YMAX_JAC_NBI, &YG1Y_psi, Yjac[0], Ytbeta); |
---|
837 | YG1_ixu( Yi, Yj, YTemps) += Ytbeta[0]; |
---|
838 | YG2_ixu( Yi, Yj, YTemps) += Ytbeta[1]; |
---|
839 | if (1==0 || Yj+1>YA2_Sac-1){} |
---|
840 | else |
---|
841 | YG1_psi( Yi, Yj+1, YTemps) += Ytbeta[2]; |
---|
842 | if (1==0 || Yj+1>YA2_Sac-1){} |
---|
843 | else |
---|
844 | YG2_psi( Yi, Yj+1, YTemps) += Ytbeta[3]; |
---|
845 | if (1==0 || Yj+1>YA2_Sac-1){} |
---|
846 | else |
---|
847 | YG1_gag( 0, Yj+1, YTemps) += Ytbeta[4]; |
---|
848 | if (1==0 || Yj+1>YA2_Sac-1){} |
---|
849 | else |
---|
850 | YG2_gag( 0, Yj+1, YTemps) += Ytbeta[5]; |
---|
851 | |
---|
852 | } |
---|
853 | for(Yj=YA2_Sac-1; Yj>=0; --Yj) |
---|
854 | { |
---|
855 | Yting[0]=YS1_res( Yi, Yj, YTemps); |
---|
856 | Yting[1]=YS2_res( Yi, Yj, YTemps); |
---|
857 | if (1==0 || Yj-1<0) |
---|
858 | Yting[2]=0; |
---|
859 | else |
---|
860 | Yting[2]=YS1_ixu( Yi, Yj-1, YTemps); |
---|
861 | if (1==0 || Yj-1<0) |
---|
862 | Yting[3]=0; |
---|
863 | else |
---|
864 | Yting[3]=YS2_ixu( Yi, Yj-1, YTemps); |
---|
865 | Yting[4]=YS1_bet( 0, Yj, YTemps); |
---|
866 | Yting[5]=YS2_bet( 0, Yj, YTemps); |
---|
867 | if (1==0 || Yi+1>YA1_Sac-1) |
---|
868 | Yting[6]=0; |
---|
869 | else |
---|
870 | Yting[6]=YS1_gama( Yi+1); |
---|
871 | if (1==0 || Yi+1>YA1_Sac-1) |
---|
872 | Yting[7]=0; |
---|
873 | else |
---|
874 | Yting[7]=YS2_gama( Yi+1); |
---|
875 | memset(Yjac, 0, 20*sizeof(double)); |
---|
876 | Yixu(Yi, Yj)->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7] ); |
---|
877 | Yvsmatt (YNBS_ixu, YNBI_ixu, YMAX_JAC_NBI, &YG1Y_ixu, Yjac[0], Ytbeta); |
---|
878 | YG1_res( Yi, Yj, YTemps) += Ytbeta[0]; |
---|
879 | YG2_res( Yi, Yj, YTemps) += Ytbeta[1]; |
---|
880 | if (1==0 || Yj-1<0){} |
---|
881 | else |
---|
882 | YG1_ixu( Yi, Yj-1, YTemps) += Ytbeta[2]; |
---|
883 | if (1==0 || Yj-1<0){} |
---|
884 | else |
---|
885 | YG2_ixu( Yi, Yj-1, YTemps) += Ytbeta[3]; |
---|
886 | YG1_bet( 0, Yj, YTemps) += Ytbeta[4]; |
---|
887 | YG2_bet( 0, Yj, YTemps) += Ytbeta[5]; |
---|
888 | if (1==0 || Yi+1>YA1_Sac-1){} |
---|
889 | else |
---|
890 | YG1_gama( Yi+1) += Ytbeta[6]; |
---|
891 | if (1==0 || Yi+1>YA1_Sac-1){} |
---|
892 | else |
---|
893 | YG2_gama( Yi+1) += Ytbeta[7]; |
---|
894 | if (1==0 || Yi-1<0 || Yj-1<0) |
---|
895 | Yting[0]=0; |
---|
896 | else |
---|
897 | Yting[0]=YS1_psi( Yi-1, Yj-1, YTemps); |
---|
898 | if (1==0 || Yi-1<0 || Yj-1<0) |
---|
899 | Yting[1]=0; |
---|
900 | else |
---|
901 | Yting[1]=YS2_psi( Yi-1, Yj-1, YTemps); |
---|
902 | if (1==0 || Yi-1<0) |
---|
903 | Yting[2]=0; |
---|
904 | else |
---|
905 | Yting[2]=YS1_psi( Yi-1, Yj, YTemps); |
---|
906 | if (1==0 || Yi-1<0) |
---|
907 | Yting[3]=0; |
---|
908 | else |
---|
909 | Yting[3]=YS2_psi( Yi-1, Yj, YTemps); |
---|
910 | if (1==0 || Yi-1<0 || Yj+1>YA2_Sac-1) |
---|
911 | Yting[4]=0; |
---|
912 | else |
---|
913 | Yting[4]=YS1_psi( Yi-1, Yj+1, YTemps); |
---|
914 | if (1==0 || Yi-1<0 || Yj+1>YA2_Sac-1) |
---|
915 | Yting[5]=0; |
---|
916 | else |
---|
917 | Yting[5]=YS2_psi( Yi-1, Yj+1, YTemps); |
---|
918 | Yting[6]=YS1_diab( 0, Yj, YTemps); |
---|
919 | Yting[7]=YS2_diab( 0, Yj, YTemps); |
---|
920 | Yting[8]=YS1_gama( Yi); |
---|
921 | Yting[9]=YS2_gama( Yi); |
---|
922 | memset(Yjac, 0, 20*sizeof(double)); |
---|
923 | Yres(Yi, Yj)->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9] ); |
---|
924 | Yvsmatt (YNBS_res, YNBI_res, YMAX_JAC_NBI, &YG1Y_res, Yjac[0], Ytbeta); |
---|
925 | if (1==0 || Yi-1<0 || Yj-1<0){} |
---|
926 | else |
---|
927 | YG1_psi( Yi-1, Yj-1, YTemps) += Ytbeta[0]; |
---|
928 | if (1==0 || Yi-1<0 || Yj-1<0){} |
---|
929 | else |
---|
930 | YG2_psi( Yi-1, Yj-1, YTemps) += Ytbeta[1]; |
---|
931 | if (1==0 || Yi-1<0){} |
---|
932 | else |
---|
933 | YG1_psi( Yi-1, Yj, YTemps) += Ytbeta[2]; |
---|
934 | if (1==0 || Yi-1<0){} |
---|
935 | else |
---|
936 | YG2_psi( Yi-1, Yj, YTemps) += Ytbeta[3]; |
---|
937 | if (1==0 || Yi-1<0 || Yj+1>YA2_Sac-1){} |
---|
938 | else |
---|
939 | YG1_psi( Yi-1, Yj+1, YTemps) += Ytbeta[4]; |
---|
940 | if (1==0 || Yi-1<0 || Yj+1>YA2_Sac-1){} |
---|
941 | else |
---|
942 | YG2_psi( Yi-1, Yj+1, YTemps) += Ytbeta[5]; |
---|
943 | YG1_diab( 0, Yj, YTemps) += Ytbeta[6]; |
---|
944 | YG2_diab( 0, Yj, YTemps) += Ytbeta[7]; |
---|
945 | YG1_gama( Yi) += Ytbeta[8]; |
---|
946 | YG2_gama( Yi) += Ytbeta[9]; |
---|
947 | |
---|
948 | } |
---|
949 | |
---|
950 | } |
---|
951 | #pragma omp parallel for |
---|
952 | for(YY=YA1_Sac-1; YY>=0; --YY){ |
---|
953 | Yi=YY; |
---|
954 | { |
---|
955 | for(Yj=YA2_Sac-1; Yj>=0; --Yj) |
---|
956 | { |
---|
957 | Yting[0]=YS1_diac( Yi, Yj, YTemps); |
---|
958 | Yting[1]=YS2_diac( Yi, Yj, YTemps); |
---|
959 | Yting[2]=YS1_gag( Yi, Yj, YTemps); |
---|
960 | Yting[3]=YS2_gag( Yi, Yj, YTemps); |
---|
961 | memset(Yjac, 0, 20*sizeof(double)); |
---|
962 | Ybet(Yi, Yj)->backward( Yting[0], Yting[1], Yting[2], Yting[3] ); |
---|
963 | Yvsmatt (YNBS_bet, YNBI_bet, YMAX_JAC_NBI, &YG1Y_bet, Yjac[0], Ytbeta); |
---|
964 | YG1_diac( Yi, Yj, YTemps) += Ytbeta[0]; |
---|
965 | YG2_diac( Yi, Yj, YTemps) += Ytbeta[1]; |
---|
966 | YG1_gag( Yi, Yj, YTemps) += Ytbeta[2]; |
---|
967 | YG2_gag( Yi, Yj, YTemps) += Ytbeta[3]; |
---|
968 | if (1==0 || Yj-1<0) |
---|
969 | Yting[0]=0; |
---|
970 | else |
---|
971 | Yting[0]=YS1_bet( Yi, Yj-1, YTemps); |
---|
972 | if (1==0 || Yj-1<0) |
---|
973 | Yting[1]=0; |
---|
974 | else |
---|
975 | Yting[1]=YS2_bet( Yi, Yj-1, YTemps); |
---|
976 | memset(Yjac, 0, 20*sizeof(double)); |
---|
977 | Ygag(Yi, Yj)->backward( Yting[0], Yting[1] ); |
---|
978 | Yvsmatt (YNBS_gag, YNBI_gag, YMAX_JAC_NBI, &YG1Y_gag, Yjac[0], Ytbeta); |
---|
979 | if (1==0 || Yj-1<0){} |
---|
980 | else |
---|
981 | YG1_bet( Yi, Yj-1, YTemps) += Ytbeta[0]; |
---|
982 | if (1==0 || Yj-1<0){} |
---|
983 | else |
---|
984 | YG2_bet( Yi, Yj-1, YTemps) += Ytbeta[1]; |
---|
985 | Yting[0]=YS1_nj( Yi, Yj); |
---|
986 | memset(Yjac, 0, 20*sizeof(double)); |
---|
987 | Ydiac(Yi, Yj)->backward( Yting[0] ); |
---|
988 | Yvsmatt (YNBS_diac, YNBI_diac, YMAX_JAC_NBI, &YG1Y_diac, Yjac[0], Ytbeta); |
---|
989 | YG1_nj( Yi, Yj) += Ytbeta[0]; |
---|
990 | Yting[0]=YS1_nj( Yi, Yj); |
---|
991 | memset(Yjac, 0, 20*sizeof(double)); |
---|
992 | Ydiab(Yi, Yj)->backward( Yting[0] ); |
---|
993 | Yvsmatt (YNBS_diab, YNBI_diab, YMAX_JAC_NBI, &YG1Y_diab, Yjac[0], Ytbeta); |
---|
994 | YG1_nj( Yi, Yj) += Ytbeta[0]; |
---|
995 | Yting[0]=YS1_ssd( Yi, Yj); |
---|
996 | memset(Yjac, 0, 10*sizeof(double)); |
---|
997 | Ynj(Yi, Yj)->backward( Yting[0] ); |
---|
998 | Yvsmatt (YNBS_nj, YNBI_nj, YMAX_JAC_NBI, &YG1Y_nj, Yjac[0], Ytbeta); |
---|
999 | YG1_ssd( Yi, Yj) += Ytbeta[0]; |
---|
1000 | |
---|
1001 | } |
---|
1002 | |
---|
1003 | } |
---|
1004 | } |
---|
1005 | end=my_gettimeofday(); |
---|
1006 | |
---|
1007 | printf("\n\n################BACKWARD_SPACE_SAC#########################################"); |
---|
1008 | // printf("\nTime begin: %f", begin); |
---|
1009 | // printf("\nTime end: %f", end); |
---|
1010 | printf("\nTimeBackwardDifference %f", (end - begin)); |
---|
1011 | printf("\n############################################################################\n\n"); |
---|
1012 | |
---|
1013 | return(0); |
---|
1014 | } |
---|
1015 | |
---|
1016 | int Yforward_space_Olap() |
---|
1017 | { |
---|
1018 | YA1=2049; YA2=0; YA3=0; |
---|
1019 | Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ |
---|
1020 | #pragma omp parallel for |
---|
1021 | for(YY=0; YY<YA1_Olap; ++YY){ |
---|
1022 | Yi=YY; |
---|
1023 | { |
---|
1024 | if (1==0 || Yi-1<0) |
---|
1025 | Yting[0]=0; |
---|
1026 | else |
---|
1027 | Yting[0]=YW1_gama( Yi-1); |
---|
1028 | if (1==0 || Yi-1<0) |
---|
1029 | Yting[1]=0; |
---|
1030 | else |
---|
1031 | Yting[1]=YW2_gama( Yi-1); |
---|
1032 | Yting[2]=YW1_gama( Yi); |
---|
1033 | Yting[3]=YW2_gama( Yi); |
---|
1034 | if (1==0 || Yi+1>YA1_Olap-1) |
---|
1035 | Yting[4]=0; |
---|
1036 | else |
---|
1037 | Yting[4]=YW1_gama( Yi+1); |
---|
1038 | if (1==0 || Yi+1>YA1_Olap-1) |
---|
1039 | Yting[5]=0; |
---|
1040 | else |
---|
1041 | Yting[5]=YW2_gama( Yi+1); |
---|
1042 | Ylap(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5] ); |
---|
1043 | |
---|
1044 | } |
---|
1045 | } |
---|
1046 | |
---|
1047 | return(0); |
---|
1048 | } |
---|
1049 | |
---|
1050 | int Ybackward_space_Olap() |
---|
1051 | { |
---|
1052 | YA1=2049; YA2=0; YA3=0; |
---|
1053 | Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ |
---|
1054 | #pragma omp parallel for |
---|
1055 | for(YY=YA1_Olap-1; YY>=0; --YY){ |
---|
1056 | Yi=YY; |
---|
1057 | { |
---|
1058 | if (1==0 || Yi-1<0) |
---|
1059 | Yting[0]=0; |
---|
1060 | else |
---|
1061 | Yting[0]=YW1_gama( Yi-1); |
---|
1062 | if (1==0 || Yi-1<0) |
---|
1063 | Yting[1]=0; |
---|
1064 | else |
---|
1065 | Yting[1]=YW2_gama( Yi-1); |
---|
1066 | Yting[2]=YW1_gama( Yi); |
---|
1067 | Yting[3]=YW2_gama( Yi); |
---|
1068 | if (1==0 || Yi+1>YA1_Olap-1) |
---|
1069 | Yting[4]=0; |
---|
1070 | else |
---|
1071 | Yting[4]=YW1_gama( Yi+1); |
---|
1072 | if (1==0 || Yi+1>YA1_Olap-1) |
---|
1073 | Yting[5]=0; |
---|
1074 | else |
---|
1075 | Yting[5]=YW2_gama( Yi+1); |
---|
1076 | memset(Yjac, 0, 20*sizeof(double)); |
---|
1077 | Ylap(Yi)->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5] ); |
---|
1078 | Yvsmatt (YNBS_lap, YNBI_lap, YMAX_JAC_NBI, &YG1Y_lap, Yjac[0], Ytbeta); |
---|
1079 | if (1==0 || Yi-1<0){} |
---|
1080 | else |
---|
1081 | #pragma omp atomic |
---|
1082 | YG1_gama( Yi-1) += Ytbeta[0]; |
---|
1083 | if (1==0 || Yi-1<0){} |
---|
1084 | else |
---|
1085 | #pragma omp atomic |
---|
1086 | YG2_gama( Yi-1) += Ytbeta[1]; |
---|
1087 | YG1_gama( Yi) += Ytbeta[2]; |
---|
1088 | YG2_gama( Yi) += Ytbeta[3]; |
---|
1089 | if (1==0 || Yi+1>YA1_Olap-1){} |
---|
1090 | else |
---|
1091 | #pragma omp atomic |
---|
1092 | YG1_gama( Yi+1) += Ytbeta[4]; |
---|
1093 | if (1==0 || Yi+1>YA1_Olap-1){} |
---|
1094 | else |
---|
1095 | #pragma omp atomic |
---|
1096 | YG2_gama( Yi+1) += Ytbeta[5]; |
---|
1097 | |
---|
1098 | } |
---|
1099 | } |
---|
1100 | |
---|
1101 | return(0); |
---|
1102 | } |
---|
1103 | |
---|
1104 | int Yforward_traj_Tlu(int nbp) |
---|
1105 | { |
---|
1106 | Ycurward=FORWARD; |
---|
1107 | Yforward_space_Sac(); |
---|
1108 | return(0); |
---|
1109 | } |
---|
1110 | |
---|
1111 | int Ybackward_traj_Tlu(int nbp) |
---|
1112 | { |
---|
1113 | Ycurward=BACKWARD; |
---|
1114 | Ybackward_space_Sac(); |
---|
1115 | return(0); |
---|
1116 | } |
---|
1117 | |
---|
1118 | int Yforward_order() |
---|
1119 | { |
---|
1120 | Yforward_traj_Tlu(0); |
---|
1121 | return(0); |
---|
1122 | } |
---|
1123 | |
---|
1124 | int Ybackward_order() |
---|
1125 | { |
---|
1126 | Ybackward_traj_Tlu(0); |
---|
1127 | return(0); |
---|
1128 | } |
---|
1129 | |
---|
1130 | void Yforward_operator (char type) |
---|
1131 | { |
---|
1132 | if ((YTabOpera[Yid_Olap].type==type || type=='*') && YTabOpera[Yid_Olap].isactiv) Yforward_space_Olap(); |
---|
1133 | } |
---|
1134 | void Ybackward_operator (char type) |
---|
1135 | { |
---|
1136 | if ((YTabOpera[Yid_Olap].type==type || type=='*') && YTabOpera[Yid_Olap].isactiv) Ybackward_space_Olap(); |
---|
1137 | } |
---|
1138 | |
---|
1139 | // € € € € € € € € LES FONCTIONS UTILISATEUR ... : |
---|
1140 | int Yuser_call (int argc, char *argv[]) |
---|
1141 | { |
---|
1142 | int codret=1; |
---|
1143 | if (strcmp(argv[0], "xdisplay") == 0) |
---|
1144 | xdisplay(); |
---|
1145 | else if (strcmp(argv[0], "xset_init") == 0) |
---|
1146 | xset_init(); |
---|
1147 | else if (strcmp(argv[0], "xnorme") == 0) |
---|
1148 | xnorme(); |
---|
1149 | else if (strcmp(argv[0], "xgama0") == 0) |
---|
1150 | xgama0(argc, argv); |
---|
1151 | else if (strcmp(argv[0], "xset_deltazr") == 0) |
---|
1152 | xset_deltazr(argc, argv); |
---|
1153 | else if (strcmp(argv[0], "xset_c0") == 0) |
---|
1154 | xset_c0(argc, argv); |
---|
1155 | else if (strcmp(argv[0], "xset_freq") == 0) |
---|
1156 | xset_freq(argc, argv); |
---|
1157 | else if (strcmp(argv[0], "xset_tab_freq") == 0) |
---|
1158 | xset_tab_freq(argc, argv); |
---|
1159 | else if (strcmp(argv[0], "xset_zs") == 0) |
---|
1160 | xset_zs(argc, argv); |
---|
1161 | else if (strcmp(argv[0], "xset_fac") == 0) |
---|
1162 | xset_fac(argc, argv); |
---|
1163 | else if (strcmp(argv[0], "xset_gama") == 0) |
---|
1164 | xset_gama(argc, argv); |
---|
1165 | else if (strcmp(argv[0], "xcoef_OBS") == 0) |
---|
1166 | xcoef_OBS(argc, argv); |
---|
1167 | else codret=0; |
---|
1168 | return(codret); |
---|
1169 | } |
---|
1170 | |
---|
1171 | //-------------- end Yao generation ----------------- |
---|