//---------------------------------------------------- // project: floater_delta header generated by YAO version v.9 //---------------------------------------------------- // ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ LES FONCTIONS PREDEFINIES /*M1_TBTOGT */ void YtabTOgrad_r_float(int frompdt, int topdt, YREAL tab[]) { for (int Yw1=0; Yw1Ygrad[Ywt][Yws] = 0.0;}}} }/*M1_SETAT*/ void Ysetstate_r_float(double val) { for (int Yw1=0; Yw1Ystate[Ywt][Yws] = val;}}} }/*M1_YIOUT*/ void Yio_r_float(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) { Yiorwf ("r_float", Yws, Yw1, Yw2, Yw3, Ywt, &YS_r_float(Yws, Yw1, Ywt), val); }/*M00_GTEST */ int Ytestdf_r_float (int modop, int KeKo, float pdx, float ptol, int ynbi, int ynbs, char *nmmod, YREAL yinput[], YREAL ystate[], r_float *Modul) { int wk, wj, nbKo=0; YREAL wSj[YMAX_NBS],wdxk,wJjk,wyj,wDjk,wdifjk; YREAL svx; int resKo; char okko[2][3]={"ok", "KO"}; if (!Ydftestijkt(Yid_r_float)) return(0); memset (Yjac, 0, YMAX_JAC_NBI*YMAX_JAC_NBS*sizeof(YREAL)); /*M01_GTESTT*/ Modul->forward( Yting[0], Yting[1], Yting[2], Yting[3] ); for (wj=0; wjbackward( Yting[0], Yting[1], Yting[2], Yting[3] ); for (wk=0; wkforward( Yting[0], Yting[1], Yting[2], Yting[3] ); for (wj=0; wjptol; nbKo+=resKo; if(resKo || !KeKo) printf(" %7s | J[%2i,%2i] |% 12.6e |% 12.6e |% 12.6e : %s |% 12.6e | (%i %i %i %i)\n", nmmod, wj+1, wk+1, wJjk, wDjk, wdifjk, okko[resKo], svx, Yi+1, Yj+1, Yk+1, Yt+1); } yinput[wk] = svx; } return(nbKo); }/*M1_CREU*/ void Ycreate_r_float() { for (int Yw1=0; Yw1Ygrad[Ywt][Yws] = 0.0;}}} }/*M1_SETAT*/ void Ysetstate_ur(double val) { for (int Yw1=0; Yw1Ystate[Ywt][Yws] = val;}}} }/*M1_YIOUT*/ void Yio_ur(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) { Yiorwf ("ur", Yws, Yw1, Yw2, Yw3, Ywt, &YS_ur(Yws, Yw1, Ywt), val); }/*M00_GTEST */ int Ytestdf_ur (int modop, int KeKo, float pdx, float ptol, int ynbi, int ynbs, char *nmmod, YREAL yinput[], YREAL ystate[], ur *Modul) { int wk, wj, nbKo=0; YREAL wSj[YMAX_NBS],wdxk,wJjk,wyj,wDjk,wdifjk; YREAL svx; int resKo; char okko[2][3]={"ok", "KO"}; if (!Ydftestijkt(Yid_ur)) return(0); memset (Yjac, 0, YMAX_JAC_NBI*YMAX_JAC_NBS*sizeof(YREAL)); /*M01_GTESTT*/ Modul->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] ); for (wj=0; wjbackward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] ); for (wk=0; wkforward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] ); for (wj=0; wjptol; nbKo+=resKo; if(resKo || !KeKo) printf(" %7s | J[%2i,%2i] |% 12.6e |% 12.6e |% 12.6e : %s |% 12.6e | (%i %i %i %i)\n", nmmod, wj+1, wk+1, wJjk, wDjk, wdifjk, okko[resKo], svx, Yi+1, Yj+1, Yk+1, Yt+1); } yinput[wk] = svx; } return(nbKo); }/*M1_CREU*/ void Ycreate_ur() { for (int Yw1=0; Yw1Ygrad[Ywt][Yws] = 0.0;}}} }/*M1_SETAT*/ void Ysetstate_uinter(double val) { for (int Yw1=0; Yw1Ystate[Ywt][Yws] = val;}}} }/*M1_YIOUT*/ void Yio_uinter(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) { Yiorwf ("uinter", Yws, Yw1, Yw2, Yw3, Ywt, &YS_uinter(Yws, Yw1, Ywt), val); }/*M1_CREY*/ void Ycreate_uinter() { for (int Yw1=0; Yw1Ygrad[Ywt][Yws] = 0.0;}}} }/*M1_SETAT*/ void Ysetstate_xinter(double val) { for (int Yw1=0; Yw1Ystate[Ywt][Yws] = val;}}} }/*M1_YIOUT*/ void Yio_xinter(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) { Yiorwf ("xinter", Yws, Yw1, Yw2, Yw3, Ywt, &YS_xinter(Yws, Yw1, Ywt), val); }/*M1_CREY*/ void Ycreate_xinter() { for (int Yw1=0; Yw1Ygrad[Yws] = 0.0;}}} }/*M2_SETA*/ void Ysetstate_u(double val) { for (int Yw1=0; Yw1Ystate[Yws] = val;}}} }/*M2_YIOTU*/ void Yio_u(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) { Yiorwf ("u", Yws, Yw1, Yw2, Yw3, Ywt, &YS_u(Yws, Yw1, Yw2), val); }/*M2_CREY*/ void Ycreate_u() { for (int Yw1=0; Yw1Ygrad[Yws] = 0.0;}}} }/*M2_SETA*/ void Ysetstate_v(double val) { for (int Yw1=0; Yw1Ystate[Yws] = val;}}} }/*M2_YIOTU*/ void Yio_v(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) { Yiorwf ("v", Yws, Yw1, Yw2, Yw3, Ywt, &YS_v(Yws, Yw1, Yw2), val); }/*M2_CREY*/ void Ycreate_v() { for (int Yw1=0; Yw1Ygrad[Ywt][Yws] = 0.0;}}}}} }/*M3_SETAT*/ void Ysetstate_locate(double val) { for (int Yw1=0; Yw1Ystate[Ywt][Yws] = val;}}}}} }/*M3_YIOUT*/ void Yio_locate(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) { Yiorwf ("locate", Yws, Yw1, Yw2, Yw3, Ywt, &YS_locate(Yws, Yw1, Yw2, Yw3, Ywt), val); }/*M00_GTEST */ int Ytestdf_locate (int modop, int KeKo, float pdx, float ptol, int ynbi, int ynbs, char *nmmod, YREAL yinput[], YREAL ystate[], locate *Modul) { int wk, wj, nbKo=0; YREAL wSj[YMAX_NBS],wdxk,wJjk,wyj,wDjk,wdifjk; YREAL svx; int resKo; char okko[2][3]={"ok", "KO"}; if (!Ydftestijkt(Yid_locate)) return(0); memset (Yjac, 0, YMAX_JAC_NBI*YMAX_JAC_NBS*sizeof(YREAL)); /*M01_GTESTT*/ Modul->forward( Yting[0], Yting[1] ); for (wj=0; wjbackward( Yting[0], Yting[1] ); for (wk=0; wkforward( Yting[0], Yting[1] ); for (wj=0; wjptol; nbKo+=resKo; if(resKo || !KeKo) printf(" %7s | J[%2i,%2i] |% 12.6e |% 12.6e |% 12.6e : %s |% 12.6e | (%i %i %i %i)\n", nmmod, wj+1, wk+1, wJjk, wDjk, wdifjk, okko[resKo], svx, Yi+1, Yj+1, Yk+1, Yt+1); } yinput[wk] = svx; } return(nbKo); }/*M3_CREU*/ void Ycreate_locate() { for (int Yw1=0; Yw1Ygrad[Ywt][Yws] = 0.0;}}} }/*M1_SETAT*/ void Ysetstate_r_float_d(double val) { for (int Yw1=0; Yw1Ystate[Ywt][Yws] = val;}}} }/*M1_YIOUT*/ void Yio_r_float_d(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) { Yiorwf ("r_float_d", Yws, Yw1, Yw2, Yw3, Ywt, &YS_r_float_d(Yws, Yw1, Ywt), val); }/*M00_GTEST */ int Ytestdf_r_float_d (int modop, int KeKo, float pdx, float ptol, int ynbi, int ynbs, char *nmmod, YREAL yinput[], YREAL ystate[], r_float_d *Modul) { int wk, wj, nbKo=0; YREAL wSj[YMAX_NBS],wdxk,wJjk,wyj,wDjk,wdifjk; YREAL svx; int resKo; char okko[2][3]={"ok", "KO"}; if (!Ydftestijkt(Yid_r_float_d)) return(0); memset (Yjac, 0, YMAX_JAC_NBI*YMAX_JAC_NBS*sizeof(YREAL)); /*M01_GTESTT*/ Modul->forward( Yting[0], Yting[1], Yting[2], Yting[3] ); for (wj=0; wjbackward( Yting[0], Yting[1], Yting[2], Yting[3] ); for (wk=0; wkforward( Yting[0], Yting[1], Yting[2], Yting[3] ); for (wj=0; wjptol; nbKo+=resKo; if(resKo || !KeKo) printf(" %7s | J[%2i,%2i] |% 12.6e |% 12.6e |% 12.6e : %s |% 12.6e | (%i %i %i %i)\n", nmmod, wj+1, wk+1, wJjk, wDjk, wdifjk, okko[resKo], svx, Yi+1, Yj+1, Yk+1, Yt+1); } yinput[wk] = svx; } return(nbKo); }/*M1_CREU*/ void Ycreate_r_float_d() { for (int Yw1=0; Yw1Ygrad[Ywt][Yws] = 0.0;}}} }/*M1_SETAT*/ void Ysetstate_ur_d(double val) { for (int Yw1=0; Yw1Ystate[Ywt][Yws] = val;}}} }/*M1_YIOUT*/ void Yio_ur_d(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) { Yiorwf ("ur_d", Yws, Yw1, Yw2, Yw3, Ywt, &YS_ur_d(Yws, Yw1, Ywt), val); }/*M00_GTEST */ int Ytestdf_ur_d (int modop, int KeKo, float pdx, float ptol, int ynbi, int ynbs, char *nmmod, YREAL yinput[], YREAL ystate[], ur_d *Modul) { int wk, wj, nbKo=0; YREAL wSj[YMAX_NBS],wdxk,wJjk,wyj,wDjk,wdifjk; YREAL svx; int resKo; char okko[2][3]={"ok", "KO"}; if (!Ydftestijkt(Yid_ur_d)) return(0); memset (Yjac, 0, YMAX_JAC_NBI*YMAX_JAC_NBS*sizeof(YREAL)); /*M01_GTESTT*/ Modul->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] ); for (wj=0; wjbackward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] ); for (wk=0; wkforward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] ); for (wj=0; wjptol; nbKo+=resKo; if(resKo || !KeKo) printf(" %7s | J[%2i,%2i] |% 12.6e |% 12.6e |% 12.6e : %s |% 12.6e | (%i %i %i %i)\n", nmmod, wj+1, wk+1, wJjk, wDjk, wdifjk, okko[resKo], svx, Yi+1, Yj+1, Yk+1, Yt+1); } yinput[wk] = svx; } return(nbKo); }/*M1_CREU*/ void Ycreate_ur_d() { for (int Yw1=0; Yw1Ygrad[Ywt][Yws] = 0.0;}}} }/*M1_SETAT*/ void Ysetstate_uinter_d(double val) { for (int Yw1=0; Yw1Ystate[Ywt][Yws] = val;}}} }/*M1_YIOUT*/ void Yio_uinter_d(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) { Yiorwf ("uinter_d", Yws, Yw1, Yw2, Yw3, Ywt, &YS_uinter_d(Yws, Yw1, Ywt), val); }/*M1_CREY*/ void Ycreate_uinter_d() { for (int Yw1=0; Yw1Ystate[Yws]; ++Y3windice;}}} }/*M2_GSTA*/ void Y3getstate_u_d(float x[]) { for (int Yw1=0; Yw1Ystate[Yws] = x[Y3windice]; ++Y3windice;}}} }/*M2_VGRAD*/ void Y3valgrad_u_d(float g[]) { for (int Yw1=0; Yw1Ygrad[Yws]; ++Y3windice;}}} }/*M2_TBTOG */ void YtabTOgrad_u_d(YREAL tab[]) { for (int Yw1=0; Yw1Ygrad[Yws] = 0.0;}}} }/*M2_SETA*/ void Ysetstate_u_d(double val) { for (int Yw1=0; Yw1Ystate[Yws] = val;}}} }/*M2_YIOTU*/ void Yio_u_d(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) { Yiorwf ("u_d", Yws, Yw1, Yw2, Yw3, Ywt, &YS_u_d(Yws, Yw1, Yw2), val); }/*M0_OUTOB*/ int Youtoobs_u_d(YioKind yiokind, int Yws, int Ywt, int arbpdt) { Yaobs.time = arbpdt; Yaobs.imod = Yimod("u_d"); Yaobs.smod = Yws;/*M2_OUTOB*/ for (int Yw1=0; Yw1Yepsi[Yws] = val;}}} }/*M2_CREY*/ void Ycreate_u_d() { for (int Yw1=0; Yw1Ystate[Yws]; ++Y3windice;}}} }/*M2_GSTA*/ void Y3getstate_v_d(float x[]) { for (int Yw1=0; Yw1Ystate[Yws] = x[Y3windice]; ++Y3windice;}}} }/*M2_VGRAD*/ void Y3valgrad_v_d(float g[]) { for (int Yw1=0; Yw1Ygrad[Yws]; ++Y3windice;}}} }/*M2_TBTOG */ void YtabTOgrad_v_d(YREAL tab[]) { for (int Yw1=0; Yw1Ygrad[Yws] = 0.0;}}} }/*M2_SETA*/ void Ysetstate_v_d(double val) { for (int Yw1=0; Yw1Ystate[Yws] = val;}}} }/*M2_YIOTU*/ void Yio_v_d(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) { Yiorwf ("v_d", Yws, Yw1, Yw2, Yw3, Ywt, &YS_v_d(Yws, Yw1, Yw2), val); }/*M0_OUTOB*/ int Youtoobs_v_d(YioKind yiokind, int Yws, int Ywt, int arbpdt) { Yaobs.time = arbpdt; Yaobs.imod = Yimod("v_d"); Yaobs.smod = Yws;/*M2_OUTOB*/ for (int Yw1=0; Yw1Yepsi[Yws] = val;}}} }/*M2_CREY*/ void Ycreate_v_d() { for (int Yw1=0; Yw1Ygrad[Ywt][Yws] = 0.0;}}}}} }/*M3_SETAT*/ void Ysetstate_locate_d(double val) { for (int Yw1=0; Yw1Ystate[Ywt][Yws] = val;}}}}} }/*M3_YIOUT*/ void Yio_locate_d(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) { Yiorwf ("locate_d", Yws, Yw1, Yw2, Yw3, Ywt, &YS_locate_d(Yws, Yw1, Yw2, Yw3, Ywt), val); }/*M00_GTEST */ int Ytestdf_locate_d (int modop, int KeKo, float pdx, float ptol, int ynbi, int ynbs, char *nmmod, YREAL yinput[], YREAL ystate[], locate_d *Modul) { int wk, wj, nbKo=0; YREAL wSj[YMAX_NBS],wdxk,wJjk,wyj,wDjk,wdifjk; YREAL svx; int resKo; char okko[2][3]={"ok", "KO"}; if (!Ydftestijkt(Yid_locate_d)) return(0); memset (Yjac, 0, YMAX_JAC_NBI*YMAX_JAC_NBS*sizeof(YREAL)); /*M01_GTESTT*/ Modul->forward( Yting[0], Yting[1] ); for (wj=0; wjbackward( Yting[0], Yting[1] ); for (wk=0; wkforward( Yting[0], Yting[1] ); for (wj=0; wjptol; nbKo+=resKo; if(resKo || !KeKo) printf(" %7s | J[%2i,%2i] |% 12.6e |% 12.6e |% 12.6e : %s |% 12.6e | (%i %i %i %i)\n", nmmod, wj+1, wk+1, wJjk, wDjk, wdifjk, okko[resKo], svx, Yi+1, Yj+1, Yk+1, Yt+1); } yinput[wk] = svx; } return(nbKo); }/*M3_CREU*/ void Ycreate_locate_d() { for (int Yw1=0; Yw1Ygrad[Ywt][Yws] = 0.0;}}} }/*M1_SETAT*/ void Ysetstate_r_cout_d(double val) { for (int Yw1=0; Yw1Ystate[Ywt][Yws] = val;}}} }/*M1_YIOUT*/ void Yio_r_cout_d(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) { Yiorwf ("r_cout_d", Yws, Yw1, Yw2, Yw3, Ywt, &YS_r_cout_d(Yws, Yw1, Ywt), val); }/*M00_GTEST */ int Ytestdf_r_cout_d (int modop, int KeKo, float pdx, float ptol, int ynbi, int ynbs, char *nmmod, YREAL yinput[], YREAL ystate[], r_cout_d *Modul) { int wk, wj, nbKo=0; YREAL wSj[YMAX_NBS],wdxk,wJjk,wyj,wDjk,wdifjk; YREAL svx; int resKo; char okko[2][3]={"ok", "KO"}; if (!Ydftestijkt(Yid_r_cout_d)) return(0); memset (Yjac, 0, YMAX_JAC_NBI*YMAX_JAC_NBS*sizeof(YREAL)); /*M01_GTESTT*/ Modul->forward( Yting[0], Yting[1] ); for (wj=0; wjbackward( Yting[0], Yting[1] ); for (wk=0; wkforward( Yting[0], Yting[1] ); for (wj=0; wjptol; nbKo+=resKo; if(resKo || !KeKo) printf(" %7s | J[%2i,%2i] |% 12.6e |% 12.6e |% 12.6e : %s |% 12.6e | (%i %i %i %i)\n", nmmod, wj+1, wk+1, wJjk, wDjk, wdifjk, okko[resKo], svx, Yi+1, Yj+1, Yk+1, Yt+1); } yinput[wk] = svx; } return(nbKo); }/*M0_OUTOB*/ int Youtoobs_r_cout_d(YioKind yiokind, int Yws, int Ywt, int arbpdt) { Yaobs.time = arbpdt; Yaobs.imod = Yimod("r_cout_d"); Yaobs.smod = Yws;/*M1_OUTOBT*/ for (int Yw1=0; Yw1Ystate[0],Yr_float[Yi]); if ( !strcmp(nmmod, "ur") || All ) nbko += Ytestdf_ur(modop,KeKo,pdx,ptol,YNBI_ur,YNBS_ur,"ur",Yting,Yur[Yi]->Ystate[0],Yur[Yi]); if ( !strcmp(nmmod, "locate") || All ) nbko += Ytestdf_locate(modop,KeKo,pdx,ptol,YNBI_locate,YNBS_locate,"locate",Yting,Ylocate[Yi][Yj][Yk]->Ystate[0],Ylocate[Yi][Yj][Yk]); if ( !strcmp(nmmod, "r_float_d") || All ) nbko += Ytestdf_r_float_d(modop,KeKo,pdx,ptol,YNBI_r_float_d,YNBS_r_float_d,"r_float_d",Yting,Yr_float_d[Yi]->Ystate[0],Yr_float_d[Yi]); if ( !strcmp(nmmod, "ur_d") || All ) nbko += Ytestdf_ur_d(modop,KeKo,pdx,ptol,YNBI_ur_d,YNBS_ur_d,"ur_d",Yting,Yur_d[Yi]->Ystate[0],Yur_d[Yi]); if ( !strcmp(nmmod, "locate_d") || All ) nbko += Ytestdf_locate_d(modop,KeKo,pdx,ptol,YNBI_locate_d,YNBS_locate_d,"locate_d",Yting,Ylocate_d[Yi][Yj][Yk]->Ystate[0],Ylocate_d[Yi][Yj][Yk]); if ( !strcmp(nmmod, "r_cout_d") || All ) nbko += Ytestdf_r_cout_d(modop,KeKo,pdx,ptol,YNBI_r_cout_d,YNBS_r_cout_d,"r_cout_d",Yting,Yr_cout_d[Yi]->Ystate[0],Yr_cout_d[Yi]); return(nbko); } void YwishEQPstate_traj_tocov (int itraj, int pdt, double pfact) { if (1==0){} else if (itraj==Yid_T_float) { } else if (itraj==Yid_T_euler) { } else if (itraj==Yid_T_float_d) { } else if (itraj==Yid_T_euler_d) { } } int Yauto_call (int argc, char *argv[]) { int codret=0; int all=0; double val; if (1==0); else if ( !strcmp(argv[0], "setepsi") || !strcmp(argv[0], "SETEPSI") ||!strcmp(argv[0], "setepsi_all") || !strcmp(argv[0], "SETEPSI_ALL")) { if (!strcmp(argv[0], "setepsi_all") || !strcmp(argv[0], "SETEPSI_ALL")){all=1; val=atof(argv[1]);} else val=atof(argv[2]); if (!strcmp(argv[1], "u_d") || all) {Ysetepsi_u_d(val);codret=1;} if (!strcmp(argv[1], "v_d") || all) {Ysetepsi_v_d(val);codret=1;} } else codret=0; return(codret); } int Yforward_space_S_float() { YA1=1; YA2=0; YA3=0; Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ for(Yi=0; Yiforward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] ); Yting[0]=YS1_r_float( Yi, YTemps-1); Yting[1]=YS2_r_float( Yi, YTemps-1); Yting[2]=YS1_ur( Yi, YTemps); Yting[3]=YS2_ur( Yi, YTemps); Yr_float(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3] ); } return(0); } int Ylinward_space_S_float() { YA1=1; YA2=0; YA3=0; Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ for(Yi=0; Yibackward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] ); Yvsmat (YNBS_ur, YNBI_ur, YMAX_JAC_NBI, &YG1Y_ur, Yjac[0], Ytbeta); if (Ytestad_module) { memcpy(&YD1Y_ur, &YG1Y_ur, YNBS_ur*sizeof(YREAL)); } Yting[0]=YS1_r_float( Yi, YTemps-1); Yting[1]=YS2_r_float( Yi, YTemps-1); Yting[2]=YS1_ur( Yi, YTemps); Yting[3]=YS2_ur( Yi, YTemps); Ytbeta[0]=YG1_r_float( Yi, YTemps-1); Ytbeta[1]=YG2_r_float( Yi, YTemps-1); Ytbeta[2]=YG1_ur( Yi, YTemps); Ytbeta[3]=YG2_ur( Yi, YTemps); memset(Yjac, 0, 36*sizeof(double)); Yr_float(Yi)->backward( Yting[0], Yting[1], Yting[2], Yting[3] ); Yvsmat (YNBS_r_float, YNBI_r_float, YMAX_JAC_NBI, &YG1Y_r_float, Yjac[0], Ytbeta); if (Ytestad_module) { memcpy(&YD1Y_r_float, &YG1Y_r_float, YNBS_r_float*sizeof(YREAL)); } } return(0); } int Ydfward_space_S_float(int modop, char *nmmod, int All, int KeKo, int koleft, float pdx, float ptol, int yi, int yj, int yk) { int nbko=0; YA1=1; YA2=0; YA3=0; Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ for(Yi=0; Yi=yi && Yj>=yj && Yk>=yk) { nbko += Ytestdf_ur(modop,KeKo,pdx,ptol,YNBI_ur,YNBS_ur,"ur",Yting,Yur[Yi]->Ystate[0],Yur[Yi]); if (nbko>=koleft) return(nbko); } } Yur(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] ); Yting[0]=YS1_r_float( Yi, YTemps-1); Yting[1]=YS2_r_float( Yi, YTemps-1); Yting[2]=YS1_ur( Yi, YTemps); Yting[3]=YS2_ur( Yi, YTemps); if (!strcmp(nmmod, "r_float") || All) { if (Yi>=yi && Yj>=yj && Yk>=yk) { nbko += Ytestdf_r_float(modop,KeKo,pdx,ptol,YNBI_r_float,YNBS_r_float,"r_float",Yting,Yr_float[Yi]->Ystate[0],Yr_float[Yi]); if (nbko>=koleft) return(nbko); } } Yr_float(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3] ); } return(nbko); } int Ydfward_space_maille_S_float(int modop, char *nmmod, int All, int KeKo, float pdx, float ptol) { int nbko=0; Yting[0]=YS1_uinter( Yi, YTemps); Yting[1]=YS2_uinter( Yi, YTemps); Yting[2]=YS3_uinter( Yi, YTemps); Yting[3]=YS4_uinter( Yi, YTemps); Yting[4]=YS5_uinter( Yi, YTemps); Yting[5]=YS6_uinter( Yi, YTemps); Yting[6]=YS7_uinter( Yi, YTemps); Yting[7]=YS8_uinter( Yi, YTemps); Yting[8]=YS1_xinter( Yi, YTemps); Yting[9]=YS2_xinter( Yi, YTemps); Yting[10]=YS3_xinter( Yi, YTemps); Yting[11]=YS4_xinter( Yi, YTemps); Yting[12]=YS5_xinter( Yi, YTemps); Yting[13]=YS6_xinter( Yi, YTemps); Yting[14]=YS7_xinter( Yi, YTemps); Yting[15]=YS8_xinter( Yi, YTemps); Yting[16]=YS1_r_float( Yi, YTemps-1); Yting[17]=YS2_r_float( Yi, YTemps-1); if (!strcmp(nmmod, "ur") || All) { nbko += Ytestdf_ur(modop,KeKo,pdx,ptol,YNBI_ur,YNBS_ur,"ur",Yting,Yur[Yi]->Ystate[0],Yur[Yi]); } Yur(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] ); Yting[0]=YS1_r_float( Yi, YTemps-1); Yting[1]=YS2_r_float( Yi, YTemps-1); Yting[2]=YS1_ur( Yi, YTemps); Yting[3]=YS2_ur( Yi, YTemps); if (!strcmp(nmmod, "r_float") || All) { nbko += Ytestdf_r_float(modop,KeKo,pdx,ptol,YNBI_r_float,YNBS_r_float,"r_float",Yting,Yr_float[Yi]->Ystate[0],Yr_float[Yi]); } Yr_float(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3] ); return(nbko); } int Ybackward_space_S_float() { YA1=1; YA2=0; YA3=0; Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ for(Yi=YA1_S_float-1; Yi>=0; --Yi) { Yting[0]=YS1_r_float( Yi, YTemps-1); Yting[1]=YS2_r_float( Yi, YTemps-1); Yting[2]=YS1_ur( Yi, YTemps); Yting[3]=YS2_ur( Yi, YTemps); memset(Yjac, 0, 36*sizeof(double)); Yr_float(Yi)->backward( Yting[0], Yting[1], Yting[2], Yting[3] ); Yvsmatt (YNBS_r_float, YNBI_r_float, YMAX_JAC_NBI, &YG1Y_r_float, Yjac[0], Ytbeta); YG1_r_float( Yi, YTemps-1) += Ytbeta[0]; YG2_r_float( Yi, YTemps-1) += Ytbeta[1]; YG1_ur( Yi, YTemps) += Ytbeta[2]; YG2_ur( Yi, YTemps) += Ytbeta[3]; if (Ytestad_module) { Yting[0]=YD1_r_float( Yi, YTemps-1); Yting[1]=YD2_r_float( Yi, YTemps-1); Yting[2]=YD1_ur( Yi, YTemps); Yting[3]=YD2_ur( Yi, YTemps); YLTRes = Yprosca(&YD1Y_r_float, &YG1Y_r_float, YNBS_r_float); YAdRes = Yprosca(Yting, Ytbeta, YNBI_r_float); if (!Ytesterrad_mod("r_float", YLTRes,YAdRes)) return(0); } Yting[0]=YS1_uinter( Yi, YTemps); Yting[1]=YS2_uinter( Yi, YTemps); Yting[2]=YS3_uinter( Yi, YTemps); Yting[3]=YS4_uinter( Yi, YTemps); Yting[4]=YS5_uinter( Yi, YTemps); Yting[5]=YS6_uinter( Yi, YTemps); Yting[6]=YS7_uinter( Yi, YTemps); Yting[7]=YS8_uinter( Yi, YTemps); Yting[8]=YS1_xinter( Yi, YTemps); Yting[9]=YS2_xinter( Yi, YTemps); Yting[10]=YS3_xinter( Yi, YTemps); Yting[11]=YS4_xinter( Yi, YTemps); Yting[12]=YS5_xinter( Yi, YTemps); Yting[13]=YS6_xinter( Yi, YTemps); Yting[14]=YS7_xinter( Yi, YTemps); Yting[15]=YS8_xinter( Yi, YTemps); Yting[16]=YS1_r_float( Yi, YTemps-1); Yting[17]=YS2_r_float( Yi, YTemps-1); memset(Yjac, 0, 36*sizeof(double)); Yur(Yi)->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] ); Yvsmatt (YNBS_ur, YNBI_ur, YMAX_JAC_NBI, &YG1Y_ur, Yjac[0], Ytbeta); YG1_uinter( Yi, YTemps) += Ytbeta[0]; YG2_uinter( Yi, YTemps) += Ytbeta[1]; YG3_uinter( Yi, YTemps) += Ytbeta[2]; YG4_uinter( Yi, YTemps) += Ytbeta[3]; YG5_uinter( Yi, YTemps) += Ytbeta[4]; YG6_uinter( Yi, YTemps) += Ytbeta[5]; YG7_uinter( Yi, YTemps) += Ytbeta[6]; YG8_uinter( Yi, YTemps) += Ytbeta[7]; YG1_xinter( Yi, YTemps) += Ytbeta[8]; YG2_xinter( Yi, YTemps) += Ytbeta[9]; YG3_xinter( Yi, YTemps) += Ytbeta[10]; YG4_xinter( Yi, YTemps) += Ytbeta[11]; YG5_xinter( Yi, YTemps) += Ytbeta[12]; YG6_xinter( Yi, YTemps) += Ytbeta[13]; YG7_xinter( Yi, YTemps) += Ytbeta[14]; YG8_xinter( Yi, YTemps) += Ytbeta[15]; YG1_r_float( Yi, YTemps-1) += Ytbeta[16]; YG2_r_float( Yi, YTemps-1) += Ytbeta[17]; if (Ytestad_module) { Yting[0]=YD1_uinter( Yi, YTemps); Yting[1]=YD2_uinter( Yi, YTemps); Yting[2]=YD3_uinter( Yi, YTemps); Yting[3]=YD4_uinter( Yi, YTemps); Yting[4]=YD5_uinter( Yi, YTemps); Yting[5]=YD6_uinter( Yi, YTemps); Yting[6]=YD7_uinter( Yi, YTemps); Yting[7]=YD8_uinter( Yi, YTemps); Yting[8]=YD1_xinter( Yi, YTemps); Yting[9]=YD2_xinter( Yi, YTemps); Yting[10]=YD3_xinter( Yi, YTemps); Yting[11]=YD4_xinter( Yi, YTemps); Yting[12]=YD5_xinter( Yi, YTemps); Yting[13]=YD6_xinter( Yi, YTemps); Yting[14]=YD7_xinter( Yi, YTemps); Yting[15]=YD8_xinter( Yi, YTemps); Yting[16]=YD1_r_float( Yi, YTemps-1); Yting[17]=YD2_r_float( Yi, YTemps-1); YLTRes = Yprosca(&YD1Y_ur, &YG1Y_ur, YNBS_ur); YAdRes = Yprosca(Yting, Ytbeta, YNBI_ur); if (!Ytesterrad_mod("ur", YLTRes,YAdRes)) return(0); } } return(0); } int Yforward_space_S_eulerlocate() { YA1=1; YA2=87; YA3=58; Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ for(Yi=0; Yiforward( Yting[0], Yting[1] ); } return(0); } int Ylinward_space_S_eulerlocate() { YA1=1; YA2=87; YA3=58; Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ for(Yi=0; Yibackward( Yting[0], Yting[1] ); Yvsmat (YNBS_locate, YNBI_locate, YMAX_JAC_NBI, &YG1Y_locate, Yjac[0], Ytbeta); if (Ytestad_module) { memcpy(&YD1Y_locate, &YG1Y_locate, YNBS_locate*sizeof(YREAL)); } } return(0); } int Ydfward_space_S_eulerlocate(int modop, char *nmmod, int All, int KeKo, int koleft, float pdx, float ptol, int yi, int yj, int yk) { int nbko=0; YA1=1; YA2=87; YA3=58; Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ for(Yi=0; Yi=yi && Yj>=yj && Yk>=yk) { nbko += Ytestdf_locate(modop,KeKo,pdx,ptol,YNBI_locate,YNBS_locate,"locate",Yting,Ylocate[Yi][Yj][Yk]->Ystate[0],Ylocate[Yi][Yj][Yk]); if (nbko>=koleft) return(nbko); } } Ylocate(Yi, Yj, Yk)->forward( Yting[0], Yting[1] ); } return(nbko); } int Ydfward_space_maille_S_eulerlocate(int modop, char *nmmod, int All, int KeKo, float pdx, float ptol) { int nbko=0; Yting[0]=YS1_r_float( Yi, YTemps-1); Yting[1]=YS2_r_float( Yi, YTemps-1); if (!strcmp(nmmod, "locate") || All) { nbko += Ytestdf_locate(modop,KeKo,pdx,ptol,YNBI_locate,YNBS_locate,"locate",Yting,Ylocate[Yi][Yj][Yk]->Ystate[0],Ylocate[Yi][Yj][Yk]); } Ylocate(Yi, Yj, Yk)->forward( Yting[0], Yting[1] ); return(nbko); } int Ybackward_space_S_eulerlocate() { YA1=1; YA2=87; YA3=58; Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ for(Yi=YA1_S_eulerlocate-1; Yi>=0; --Yi) for(Yj=YA2_S_eulerlocate-1; Yj>=0; --Yj) for(Yk=YA3_S_eulerlocate-1; Yk>=0; --Yk) { Yting[0]=YS1_r_float( Yi, YTemps-1); Yting[1]=YS2_r_float( Yi, YTemps-1); memset(Yjac, 0, 18*sizeof(double)); Ylocate(Yi, Yj, Yk)->backward( Yting[0], Yting[1] ); Yvsmatt (YNBS_locate, YNBI_locate, YMAX_JAC_NBI, &YG1Y_locate, Yjac[0], Ytbeta); YG1_r_float( Yi, YTemps-1) += Ytbeta[0]; YG2_r_float( Yi, YTemps-1) += Ytbeta[1]; if (Ytestad_module) { Yting[0]=YD1_r_float( Yi, YTemps-1); Yting[1]=YD2_r_float( Yi, YTemps-1); YLTRes = Yprosca(&YD1Y_locate, &YG1Y_locate, YNBS_locate); YAdRes = Yprosca(Yting, Ytbeta, YNBI_locate); if (!Ytesterrad_mod("locate", YLTRes,YAdRes)) return(0); } } return(0); } int Yforward_traj_T_float(int nbp) { Ycurward=FORWARD; Yforward_space_S_eulerlocate(); Yforward_space_S_float(); return(0); } int Ylinward_traj_T_float(int nbp) { Ycurward=LINWARD; Ylinward_space_S_eulerlocate(); Ylinward_space_S_float(); return(0); } int Ydfward_traj_T_float(int modop, char *nmmod, int All, int KeKo, int koleft,float pdx, float ptol, int yi, int yj, int yk) { int nbko=0; if (!Ydftesttt(0)) return(0); nbko += Ydfward_space_S_eulerlocate(modop, nmmod, All, KeKo, koleft, pdx, ptol, yi, yj, yk); nbko += Ydfward_space_S_float(modop, nmmod, All, KeKo, koleft, pdx, ptol, yi, yj, yk); return(nbko); } int Ydfward_traj_maille_T_float(int modop, char *nmmod, int All, int KeKo, float pdx, float ptol) { int nbko=0; if (!Ydftesttt(0)) return(0); nbko += Ydfward_space_maille_S_eulerlocate(modop, nmmod, All, KeKo, pdx, ptol); nbko += Ydfward_space_maille_S_float(modop, nmmod, All, KeKo, pdx, ptol); return(nbko); } int Ybackward_traj_T_float(int nbp) { Ycurward=BACKWARD; Ybackward_space_S_float(); Ybackward_space_S_eulerlocate(); return(0); } int Yforward_space_S_float_d() { YA1=1; YA2=0; YA3=0; Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ for(Yi=0; Yiforward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] ); Yting[0]=YS1_r_float_d( Yi, YTemps-1); Yting[1]=YS2_r_float_d( Yi, YTemps-1); Yting[2]=YS1_ur_d( Yi, YTemps); Yting[3]=YS2_ur_d( Yi, YTemps); Yr_float_d(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3] ); Yting[0]=YS1_r_float_d( Yi, YTemps); Yting[1]=YS2_r_float_d( Yi, YTemps); Yr_cout_d(Yi)->forward( Yting[0], Yting[1] ); } return(0); } int Ylinward_space_S_float_d() { YA1=1; YA2=0; YA3=0; Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ for(Yi=0; Yibackward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] ); Yvsmat (YNBS_ur_d, YNBI_ur_d, YMAX_JAC_NBI, &YG1Y_ur_d, Yjac[0], Ytbeta); if (Ytestad_module) { memcpy(&YD1Y_ur_d, &YG1Y_ur_d, YNBS_ur_d*sizeof(YREAL)); } Yting[0]=YS1_r_float_d( Yi, YTemps-1); Yting[1]=YS2_r_float_d( Yi, YTemps-1); Yting[2]=YS1_ur_d( Yi, YTemps); Yting[3]=YS2_ur_d( Yi, YTemps); Ytbeta[0]=YG1_r_float_d( Yi, YTemps-1); Ytbeta[1]=YG2_r_float_d( Yi, YTemps-1); Ytbeta[2]=YG1_ur_d( Yi, YTemps); Ytbeta[3]=YG2_ur_d( Yi, YTemps); memset(Yjac, 0, 36*sizeof(double)); Yr_float_d(Yi)->backward( Yting[0], Yting[1], Yting[2], Yting[3] ); Yvsmat (YNBS_r_float_d, YNBI_r_float_d, YMAX_JAC_NBI, &YG1Y_r_float_d, Yjac[0], Ytbeta); if (Ytestad_module) { memcpy(&YD1Y_r_float_d, &YG1Y_r_float_d, YNBS_r_float_d*sizeof(YREAL)); } Yting[0]=YS1_r_float_d( Yi, YTemps); Yting[1]=YS2_r_float_d( Yi, YTemps); Ytbeta[0]=YG1_r_float_d( Yi, YTemps); Ytbeta[1]=YG2_r_float_d( Yi, YTemps); memset(Yjac, 0, 36*sizeof(double)); Yr_cout_d(Yi)->backward( Yting[0], Yting[1] ); Yvsmat (YNBS_r_cout_d, YNBI_r_cout_d, YMAX_JAC_NBI, &YG1Y_r_cout_d, Yjac[0], Ytbeta); if (Ytestad_module) { memcpy(&YD1Y_r_cout_d, &YG1Y_r_cout_d, YNBS_r_cout_d*sizeof(YREAL)); } } return(0); } int Ydfward_space_S_float_d(int modop, char *nmmod, int All, int KeKo, int koleft, float pdx, float ptol, int yi, int yj, int yk) { int nbko=0; YA1=1; YA2=0; YA3=0; Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ for(Yi=0; Yi=yi && Yj>=yj && Yk>=yk) { nbko += Ytestdf_ur_d(modop,KeKo,pdx,ptol,YNBI_ur_d,YNBS_ur_d,"ur_d",Yting,Yur_d[Yi]->Ystate[0],Yur_d[Yi]); if (nbko>=koleft) return(nbko); } } Yur_d(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] ); Yting[0]=YS1_r_float_d( Yi, YTemps-1); Yting[1]=YS2_r_float_d( Yi, YTemps-1); Yting[2]=YS1_ur_d( Yi, YTemps); Yting[3]=YS2_ur_d( Yi, YTemps); if (!strcmp(nmmod, "r_float_d") || All) { if (Yi>=yi && Yj>=yj && Yk>=yk) { nbko += Ytestdf_r_float_d(modop,KeKo,pdx,ptol,YNBI_r_float_d,YNBS_r_float_d,"r_float_d",Yting,Yr_float_d[Yi]->Ystate[0],Yr_float_d[Yi]); if (nbko>=koleft) return(nbko); } } Yr_float_d(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3] ); Yting[0]=YS1_r_float_d( Yi, YTemps); Yting[1]=YS2_r_float_d( Yi, YTemps); if (!strcmp(nmmod, "r_cout_d") || All) { if (Yi>=yi && Yj>=yj && Yk>=yk) { nbko += Ytestdf_r_cout_d(modop,KeKo,pdx,ptol,YNBI_r_cout_d,YNBS_r_cout_d,"r_cout_d",Yting,Yr_cout_d[Yi]->Ystate[0],Yr_cout_d[Yi]); if (nbko>=koleft) return(nbko); } } Yr_cout_d(Yi)->forward( Yting[0], Yting[1] ); } return(nbko); } int Ydfward_space_maille_S_float_d(int modop, char *nmmod, int All, int KeKo, float pdx, float ptol) { int nbko=0; Yting[0]=YS1_uinter_d( Yi, YTemps); Yting[1]=YS2_uinter_d( Yi, YTemps); Yting[2]=YS3_uinter_d( Yi, YTemps); Yting[3]=YS4_uinter_d( Yi, YTemps); Yting[4]=YS5_uinter_d( Yi, YTemps); Yting[5]=YS6_uinter_d( Yi, YTemps); Yting[6]=YS7_uinter_d( Yi, YTemps); Yting[7]=YS8_uinter_d( Yi, YTemps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[8]=YS1_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[9]=YS2_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[10]=YS3_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[11]=YS4_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[12]=YS5_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[13]=YS6_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[14]=YS7_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[15]=YS8_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps-1, YidTraj); Yting[16]=YS1_r_float( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps-1, YidTraj); Yting[17]=YS2_r_float( Yi, Ytps); if (!strcmp(nmmod, "ur_d") || All) { nbko += Ytestdf_ur_d(modop,KeKo,pdx,ptol,YNBI_ur_d,YNBS_ur_d,"ur_d",Yting,Yur_d[Yi]->Ystate[0],Yur_d[Yi]); } Yur_d(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] ); Yting[0]=YS1_r_float_d( Yi, YTemps-1); Yting[1]=YS2_r_float_d( Yi, YTemps-1); Yting[2]=YS1_ur_d( Yi, YTemps); Yting[3]=YS2_ur_d( Yi, YTemps); if (!strcmp(nmmod, "r_float_d") || All) { nbko += Ytestdf_r_float_d(modop,KeKo,pdx,ptol,YNBI_r_float_d,YNBS_r_float_d,"r_float_d",Yting,Yr_float_d[Yi]->Ystate[0],Yr_float_d[Yi]); } Yr_float_d(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3] ); Yting[0]=YS1_r_float_d( Yi, YTemps); Yting[1]=YS2_r_float_d( Yi, YTemps); if (!strcmp(nmmod, "r_cout_d") || All) { nbko += Ytestdf_r_cout_d(modop,KeKo,pdx,ptol,YNBI_r_cout_d,YNBS_r_cout_d,"r_cout_d",Yting,Yr_cout_d[Yi]->Ystate[0],Yr_cout_d[Yi]); } Yr_cout_d(Yi)->forward( Yting[0], Yting[1] ); return(nbko); } int Ybackward_space_S_float_d() { YA1=1; YA2=0; YA3=0; Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ for(Yi=YA1_S_float_d-1; Yi>=0; --Yi) { Yting[0]=YS1_r_float_d( Yi, YTemps); Yting[1]=YS2_r_float_d( Yi, YTemps); memset(Yjac, 0, 36*sizeof(double)); Yr_cout_d(Yi)->backward( Yting[0], Yting[1] ); Yvsmatt (YNBS_r_cout_d, YNBI_r_cout_d, YMAX_JAC_NBI, &YG1Y_r_cout_d, Yjac[0], Ytbeta); YG1_r_float_d( Yi, YTemps) += Ytbeta[0]; YG2_r_float_d( Yi, YTemps) += Ytbeta[1]; if (Ytestad_module) { Yting[0]=YD1_r_float_d( Yi, YTemps); Yting[1]=YD2_r_float_d( Yi, YTemps); YLTRes = Yprosca(&YD1Y_r_cout_d, &YG1Y_r_cout_d, YNBS_r_cout_d); YAdRes = Yprosca(Yting, Ytbeta, YNBI_r_cout_d); if (!Ytesterrad_mod("r_cout_d", YLTRes,YAdRes)) return(0); } Yting[0]=YS1_r_float_d( Yi, YTemps-1); Yting[1]=YS2_r_float_d( Yi, YTemps-1); Yting[2]=YS1_ur_d( Yi, YTemps); Yting[3]=YS2_ur_d( Yi, YTemps); memset(Yjac, 0, 36*sizeof(double)); Yr_float_d(Yi)->backward( Yting[0], Yting[1], Yting[2], Yting[3] ); Yvsmatt (YNBS_r_float_d, YNBI_r_float_d, YMAX_JAC_NBI, &YG1Y_r_float_d, Yjac[0], Ytbeta); YG1_r_float_d( Yi, YTemps-1) += Ytbeta[0]; YG2_r_float_d( Yi, YTemps-1) += Ytbeta[1]; YG1_ur_d( Yi, YTemps) += Ytbeta[2]; YG2_ur_d( Yi, YTemps) += Ytbeta[3]; if (Ytestad_module) { Yting[0]=YD1_r_float_d( Yi, YTemps-1); Yting[1]=YD2_r_float_d( Yi, YTemps-1); Yting[2]=YD1_ur_d( Yi, YTemps); Yting[3]=YD2_ur_d( Yi, YTemps); YLTRes = Yprosca(&YD1Y_r_float_d, &YG1Y_r_float_d, YNBS_r_float_d); YAdRes = Yprosca(Yting, Ytbeta, YNBI_r_float_d); if (!Ytesterrad_mod("r_float_d", YLTRes,YAdRes)) return(0); } Yting[0]=YS1_uinter_d( Yi, YTemps); Yting[1]=YS2_uinter_d( Yi, YTemps); Yting[2]=YS3_uinter_d( Yi, YTemps); Yting[3]=YS4_uinter_d( Yi, YTemps); Yting[4]=YS5_uinter_d( Yi, YTemps); Yting[5]=YS6_uinter_d( Yi, YTemps); Yting[6]=YS7_uinter_d( Yi, YTemps); Yting[7]=YS8_uinter_d( Yi, YTemps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[8]=YS1_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[9]=YS2_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[10]=YS3_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[11]=YS4_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[12]=YS5_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[13]=YS6_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[14]=YS7_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[15]=YS8_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps-1, YidTraj); Yting[16]=YS1_r_float( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps-1, YidTraj); Yting[17]=YS2_r_float( Yi, Ytps); memset(Yjac, 0, 36*sizeof(double)); Yur_d(Yi)->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] ); Yvsmatt (YNBS_ur_d, YNBI_ur_d, YMAX_JAC_NBI, &YG1Y_ur_d, Yjac[0], Ytbeta); YG1_uinter_d( Yi, YTemps) += Ytbeta[0]; YG2_uinter_d( Yi, YTemps) += Ytbeta[1]; YG3_uinter_d( Yi, YTemps) += Ytbeta[2]; YG4_uinter_d( Yi, YTemps) += Ytbeta[3]; YG5_uinter_d( Yi, YTemps) += Ytbeta[4]; YG6_uinter_d( Yi, YTemps) += Ytbeta[5]; YG7_uinter_d( Yi, YTemps) += Ytbeta[6]; YG8_uinter_d( Yi, YTemps) += Ytbeta[7]; Ytps = Ytttt_pdt(0, YTemps, YidTraj); YG1_xinter( Yi, Ytps) += Ytbeta[8]; Ytps = Ytttt_pdt(0, YTemps, YidTraj); YG2_xinter( Yi, Ytps) += Ytbeta[9]; Ytps = Ytttt_pdt(0, YTemps, YidTraj); YG3_xinter( Yi, Ytps) += Ytbeta[10]; Ytps = Ytttt_pdt(0, YTemps, YidTraj); YG4_xinter( Yi, Ytps) += Ytbeta[11]; Ytps = Ytttt_pdt(0, YTemps, YidTraj); YG5_xinter( Yi, Ytps) += Ytbeta[12]; Ytps = Ytttt_pdt(0, YTemps, YidTraj); YG6_xinter( Yi, Ytps) += Ytbeta[13]; Ytps = Ytttt_pdt(0, YTemps, YidTraj); YG7_xinter( Yi, Ytps) += Ytbeta[14]; Ytps = Ytttt_pdt(0, YTemps, YidTraj); YG8_xinter( Yi, Ytps) += Ytbeta[15]; Ytps = Ytttt_pdt(0, YTemps-1, YidTraj); YG1_r_float( Yi, Ytps) += Ytbeta[16]; Ytps = Ytttt_pdt(0, YTemps-1, YidTraj); YG2_r_float( Yi, Ytps) += Ytbeta[17]; if (Ytestad_module) { Yting[0]=YD1_uinter_d( Yi, YTemps); Yting[1]=YD2_uinter_d( Yi, YTemps); Yting[2]=YD3_uinter_d( Yi, YTemps); Yting[3]=YD4_uinter_d( Yi, YTemps); Yting[4]=YD5_uinter_d( Yi, YTemps); Yting[5]=YD6_uinter_d( Yi, YTemps); Yting[6]=YD7_uinter_d( Yi, YTemps); Yting[7]=YD8_uinter_d( Yi, YTemps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[8]=YD1_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[9]=YD2_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[10]=YD3_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[11]=YD4_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[12]=YD5_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[13]=YD6_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[14]=YD7_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps, YidTraj); Yting[15]=YD8_xinter( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps-1, YidTraj); Yting[16]=YD1_r_float( Yi, Ytps); Ytps = Ytttt_pdt(0, YTemps-1, YidTraj); Yting[17]=YD2_r_float( Yi, Ytps); YLTRes = Yprosca(&YD1Y_ur_d, &YG1Y_ur_d, YNBS_ur_d); YAdRes = Yprosca(Yting, Ytbeta, YNBI_ur_d); if (!Ytesterrad_mod("ur_d", YLTRes,YAdRes)) return(0); } } return(0); } int Yforward_space_S_eulerlocate_d() { YA1=1; YA2=87; YA3=58; Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ for(Yi=0; Yiforward( Yting[0], Yting[1] ); } return(0); } int Ylinward_space_S_eulerlocate_d() { YA1=1; YA2=87; YA3=58; Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ for(Yi=0; Yibackward( Yting[0], Yting[1] ); Yvsmat (YNBS_locate_d, YNBI_locate_d, YMAX_JAC_NBI, &YG1Y_locate_d, Yjac[0], Ytbeta); if (Ytestad_module) { memcpy(&YD1Y_locate_d, &YG1Y_locate_d, YNBS_locate_d*sizeof(YREAL)); } } return(0); } int Ydfward_space_S_eulerlocate_d(int modop, char *nmmod, int All, int KeKo, int koleft, float pdx, float ptol, int yi, int yj, int yk) { int nbko=0; YA1=1; YA2=87; YA3=58; Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ for(Yi=0; Yi=yi && Yj>=yj && Yk>=yk) { nbko += Ytestdf_locate_d(modop,KeKo,pdx,ptol,YNBI_locate_d,YNBS_locate_d,"locate_d",Yting,Ylocate_d[Yi][Yj][Yk]->Ystate[0],Ylocate_d[Yi][Yj][Yk]); if (nbko>=koleft) return(nbko); } } Ylocate_d(Yi, Yj, Yk)->forward( Yting[0], Yting[1] ); } return(nbko); } int Ydfward_space_maille_S_eulerlocate_d(int modop, char *nmmod, int All, int KeKo, float pdx, float ptol) { int nbko=0; Yting[0]=YS1_r_float_d( Yi, YTemps-1); Yting[1]=YS2_r_float_d( Yi, YTemps-1); if (!strcmp(nmmod, "locate_d") || All) { nbko += Ytestdf_locate_d(modop,KeKo,pdx,ptol,YNBI_locate_d,YNBS_locate_d,"locate_d",Yting,Ylocate_d[Yi][Yj][Yk]->Ystate[0],Ylocate_d[Yi][Yj][Yk]); } Ylocate_d(Yi, Yj, Yk)->forward( Yting[0], Yting[1] ); return(nbko); } int Ybackward_space_S_eulerlocate_d() { YA1=1; YA2=87; YA3=58; Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/ for(Yi=YA1_S_eulerlocate_d-1; Yi>=0; --Yi) for(Yj=YA2_S_eulerlocate_d-1; Yj>=0; --Yj) for(Yk=YA3_S_eulerlocate_d-1; Yk>=0; --Yk) { Yting[0]=YS1_r_float_d( Yi, YTemps-1); Yting[1]=YS2_r_float_d( Yi, YTemps-1); memset(Yjac, 0, 18*sizeof(double)); Ylocate_d(Yi, Yj, Yk)->backward( Yting[0], Yting[1] ); Yvsmatt (YNBS_locate_d, YNBI_locate_d, YMAX_JAC_NBI, &YG1Y_locate_d, Yjac[0], Ytbeta); YG1_r_float_d( Yi, YTemps-1) += Ytbeta[0]; YG2_r_float_d( Yi, YTemps-1) += Ytbeta[1]; if (Ytestad_module) { Yting[0]=YD1_r_float_d( Yi, YTemps-1); Yting[1]=YD2_r_float_d( Yi, YTemps-1); YLTRes = Yprosca(&YD1Y_locate_d, &YG1Y_locate_d, YNBS_locate_d); YAdRes = Yprosca(Yting, Ytbeta, YNBI_locate_d); if (!Ytesterrad_mod("locate_d", YLTRes,YAdRes)) return(0); } } return(0); } int Yforward_traj_T_float_d(int nbp) { Ycurward=FORWARD; Yforward_space_S_eulerlocate_d(); Yforward_space_S_float_d(); return(0); } int Ylinward_traj_T_float_d(int nbp) { Ycurward=LINWARD; Ylinward_space_S_eulerlocate_d(); Ylinward_space_S_float_d(); return(0); } int Ydfward_traj_T_float_d(int modop, char *nmmod, int All, int KeKo, int koleft,float pdx, float ptol, int yi, int yj, int yk) { int nbko=0; if (!Ydftesttt(2)) return(0); nbko += Ydfward_space_S_eulerlocate_d(modop, nmmod, All, KeKo, koleft, pdx, ptol, yi, yj, yk); nbko += Ydfward_space_S_float_d(modop, nmmod, All, KeKo, koleft, pdx, ptol, yi, yj, yk); return(nbko); } int Ydfward_traj_maille_T_float_d(int modop, char *nmmod, int All, int KeKo, float pdx, float ptol) { int nbko=0; if (!Ydftesttt(2)) return(0); nbko += Ydfward_space_maille_S_eulerlocate_d(modop, nmmod, All, KeKo, pdx, ptol); nbko += Ydfward_space_maille_S_float_d(modop, nmmod, All, KeKo, pdx, ptol); return(nbko); } int Ybackward_traj_T_float_d(int nbp) { Ycurward=BACKWARD; Ybackward_space_S_float_d(); Ybackward_space_S_eulerlocate_d(); return(0); } int Yforward_order() { Yforward_traj_T_float(0); Yforward_traj_T_float_d(0); return(0); } int Ylinward_order() { Ylinward_traj_T_float(0); Ylinward_traj_T_float_d(0); return(0); } int Ydfward_order(int modop, char *nmmod, int All, int KeKo, int koleft, float pdx, float ptol, int yi, int yj, int yk) { int nbko=0; nbko += Ydfward_traj_T_float(modop, nmmod, All, KeKo, koleft, pdx, ptol, yi, yj, yk); nbko += Ydfward_traj_T_float_d(modop, nmmod, All, KeKo, koleft, pdx, ptol, yi, yj, yk); return(nbko); } int Ydfward_order_maille(int modop, char *nmmod, int All, int KeKo, float pdx, float ptol) { int nbko=0; nbko += Ydfward_traj_maille_T_float(modop, nmmod, All, KeKo, pdx, ptol); nbko += Ydfward_traj_maille_T_float_d(modop, nmmod, All, KeKo, pdx, ptol); return(nbko); } int Ybackward_order() { Ybackward_traj_T_float_d(0); Ybackward_traj_T_float(0); return(0); } void Yforward_operator (char type) { } void Ylinward_operator (char type) { } void Ybackward_operator (char type) { } // ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ LES FONCTIONS UTILISATEUR ... : int Yuser_call (int argc, char *argv[]) { int codret=1; if (strcmp(argv[0], "update_uv") == 0) update_uv(); else if (strcmp(argv[0], "run_inc") == 0) run_inc(argc, argv); else codret=0; return(codret); } //-------------- end Yao generation -----------------