1 | #include <sys/time.h> |
---|
2 | double 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*/ |
---|
31 | void 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 */ |
---|
40 | void 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*/ |
---|
48 | void 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*/ |
---|
57 | void 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*/ |
---|
66 | void 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 */ |
---|
75 | void 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*/ |
---|
83 | void 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*/ |
---|
91 | void 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*/ |
---|
99 | void 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*/ |
---|
102 | int 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*/ |
---|
117 | void 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*/ |
---|
124 | void 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*/ |
---|
130 | void 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 */ |
---|
137 | void 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*/ |
---|
145 | void 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*/ |
---|
153 | void 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*/ |
---|
161 | void 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*/ |
---|
164 | void 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 */ |
---|
170 | void 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*/ |
---|
178 | void 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*/ |
---|
186 | void 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*/ |
---|
194 | void 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*/ |
---|
197 | void 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 */ |
---|
203 | void 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*/ |
---|
211 | void 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*/ |
---|
219 | void 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*/ |
---|
227 | void 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*/ |
---|
230 | void 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 */ |
---|
236 | void 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*/ |
---|
244 | void 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*/ |
---|
252 | void 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*/ |
---|
260 | void 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*/ |
---|
263 | void 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 */ |
---|
269 | void 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*/ |
---|
277 | void 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*/ |
---|
285 | void 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*/ |
---|
293 | void 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*/ |
---|
296 | void 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 | } |
---|
302 | void Ycreate_all () |
---|
303 | { |
---|
304 | Ycreate_Hfil (); |
---|
305 | Ycreate_Ufil (); |
---|
306 | Ycreate_Vfil (); |
---|
307 | Ycreate_Hphy (); |
---|
308 | Ycreate_Uphy (); |
---|
309 | Ycreate_Vphy (); |
---|
310 | } |
---|
311 | void 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 | } |
---|
317 | void 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 | } |
---|
323 | void 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 | } |
---|
328 | void Yadjust_all () |
---|
329 | { |
---|
330 | Yadjust_Hfil (); |
---|
331 | } |
---|
332 | void Yrazgrad_all () |
---|
333 | { |
---|
334 | Yrazgrad_Hfil (); |
---|
335 | Yrazgrad_Ufil (); |
---|
336 | Yrazgrad_Vfil (); |
---|
337 | Yrazgrad_Hphy (); |
---|
338 | Yrazgrad_Uphy (); |
---|
339 | Yrazgrad_Vphy (); |
---|
340 | } |
---|
341 | void Yrazgrad_only (int itraj) |
---|
342 | { |
---|
343 | if (itraj==Yid_Toce) |
---|
344 | {} |
---|
345 | } |
---|
346 | int 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 | } |
---|
363 | void Ysetwish_mod (int imod, YREAL val) |
---|
364 | { if(1==0); |
---|
365 | else if (imod==0) Ysetwish_Hfil(val); |
---|
366 | } |
---|
367 | void 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 | } |
---|
377 | void YgradCTOtab_target (YREAL tab[]) |
---|
378 | { //Y3windice = 0; |
---|
379 | YgradCTOtab_Hfil (YTabMod[Yid_Hfil].deb_target, YTabMod[Yid_Hfil].end_target, tab); |
---|
380 | } |
---|
381 | void YtabTOgrad_target (YREAL tab[]) |
---|
382 | { //Y3windice = 0; |
---|
383 | YtabTOgrad_Hfil (YTabMod[Yid_Hfil].deb_target, YTabMod[Yid_Hfil].end_target, tab); |
---|
384 | } |
---|
385 | void Y3getstate_all (float x[]) |
---|
386 | { Y3windice = 0; |
---|
387 | Y3getstate_Hfil (x); |
---|
388 | } |
---|
389 | void Y3valstate_all () |
---|
390 | { Y3windice = 0; |
---|
391 | Y3valstate_Hfil (); |
---|
392 | } |
---|
393 | void Y3valgrad_all (float g[]) |
---|
394 | { Y3windice = 0; |
---|
395 | Y3valgrad_Hfil (g); |
---|
396 | } |
---|
397 | int 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; |
---|
415 | Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ |
---|
416 | beginForward = my_gettimeofday(); |
---|
417 | #pragma omp parallel for |
---|
418 | for(YY=0; YY<YA1_Soce; ++YY){ |
---|
419 | Yi=YY; |
---|
420 | for(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 | } |
---|
489 | endForward=my_gettimeofday(); |
---|
490 | |
---|
491 | return(0); |
---|
492 | } |
---|
493 | |
---|
494 | int Ybackward_space_Soce() |
---|
495 | { |
---|
496 | YA1=50; YA2=50; YA3=0; |
---|
497 | Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ |
---|
498 | beginBackward=my_gettimeofday(); |
---|
499 | #pragma omp parallel for |
---|
500 | for(YY=YA1_Soce-1; YY>=0; --YY){ |
---|
501 | Yi=YY; |
---|
502 | for(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 | |
---|
669 | int Yforward_traj_Toce(int nbp) |
---|
670 | { |
---|
671 | Ycurward=FORWARD; |
---|
672 | Yforward_space_Soce(); |
---|
673 | return(0); |
---|
674 | } |
---|
675 | |
---|
676 | int Ybackward_traj_Toce(int nbp) |
---|
677 | { |
---|
678 | Ycurward=BACKWARD; |
---|
679 | Ybackward_space_Soce(); |
---|
680 | return(0); |
---|
681 | } |
---|
682 | |
---|
683 | int Yforward_order() |
---|
684 | { |
---|
685 | Yforward_traj_Toce(0); |
---|
686 | return(0); |
---|
687 | } |
---|
688 | |
---|
689 | int Ybackward_order() |
---|
690 | { |
---|
691 | Ybackward_traj_Toce(0); |
---|
692 | return(0); |
---|
693 | } |
---|
694 | |
---|
695 | void Yforward_operator (char type) |
---|
696 | { |
---|
697 | } |
---|
698 | void Ybackward_operator (char type) |
---|
699 | { |
---|
700 | } |
---|
701 | |
---|
702 | // € € € € € € € € LES FONCTIONS UTILISATEUR ... : |
---|
703 | int 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 ----------------- |
---|