/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N S R E L A T I V E S A L A D E R I V A T I O N F O R M E L L E */
/* D E S V A G U E S 1 D E J E E N E R : */
/* */
/* */
/* Author of '$xrs/vagues.11$I' : */
/* */
/* Jean-Francois Colonna (LACTAMME, 20200319164619). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N D E S T R O I S F O N C T I O N S ' F ' : */
/* */
/*************************************************************************************************************************************/
/* ATTENTION, il est imperatif que les fonctions derivables formellement soient definies */
/* dans un fichier a part afin qu'elles ne soient pas l'objet d'une double definition. En */
/* effet, on trouve dans 'v $xcc/cpp$Z' : */
/* */
/* $CA $module$w */
/* | $xcp/cpp$X ... -c$PASSE_D -e$PASSE_5 */
/* > $fichierR */
/* */
/* Ainsi, si par exemple la definition de 'Fx(u,v)' etait faite localement dans le */
/* fichier '$xrf/recursif.11$K', cette definition apparaitrait deux fois dans le fichier */
/* '$module$w' : une premiere fois en tete, provenant de '$PASSE_D' ou l'on ne trouve que */
/* les definitions du type '-define ...', puis une deuxieme fois a la suite, la ou se trouve */
/* concatene au fichier '$module$W' des '-define ...' le fichier '$fichierA' a compiler... */
/* Les definitions suivantes de {Fx,Fy,Fz} viennent despectivement de : */
/* */
/* omega = v + i.u */
/* */
/* puis : */
/* */
/* X --0--> sin(omega)/omega */
/* | */
/* --> developpement en serie */
/* | */
/* --> extraction de la partie reelle */
/* | */
/* --> integration par rapport a 'v'. */
/* */
/* */
/* Y --0--> cos(omega)/omega */
/* | */
/* --> developpement en serie */
/* | */
/* --> extraction de la partie reelle */
/* | */
/* --> integration par rapport a 'v'. */
/* */
/* */
/* Voici de plus les developpements en serie de 'cos(x)' et de 'sin(x)' : */
/* */
/* 0 2 4 6 */
/* x x x x */
/* cos(x) = ---- - ---- + ---- - ---- + ... */
/* 0! 2! 4! 6! */
/* */
/* */
/* 1 3 5 7 */
/* x x x x */
/* sin(x) = ---- - ---- + ---- - ---- + ... */
/* 1! 3! 5! 7! */
/* */
/* */
/* Voici enfin le binome de Newton utilise pour calculer les puissances de 'x=omega=v+i.u' : */
/* */
/* m=n */
/* ----- */
/* \ */
/* n \ m n-m m */
/* (a+b) = / C .a .b */
/* / n */
/* ----- */
/* m=0 */
/* */
-define _0 \
-_-_-_- ZERO
-define _1 \
-_-_-_- UN
-define _2 \
-_-_-_- DEUX
-define _3 \
-_-_-_- TROIS
-define _4 \
-_-_-_- QUATRE
-define _5 \
-_-_-_- CINQ
-define _6 \
-_-_-_- SIX
-define _7 \
-_-_-_- SEPT
-define PLUS____ \
-_-_-_- NEUT(FU)
-define MOINS___ \
-_-_-_- NEGA(FU)
/* Afin d'homogeneiser les tabulations... */
-define EXPi(u,exposant) \
-_-_-_- MUL2(PUIX(Carre_de_i__Complexe,MOIT(exposant)),PUIX(u,exposant))
/* Afin de calculer la valeur de 'i' eleve a une puissance paire que l'on divise par 2 */
/* (via le 'MOIT(...)') afin de prendre en compte qu'en fait ce que l'on calcule est : */
/* */
/* exposant */
/* i */
/* */
/* soit encore : */
/* exposant */
/* ---------- */
/* 2 */
/* 2 */
/* i */
/* */
/* lorsque l'exposant est pair, ce qui est le cas ici... */
-define Fx_VaguesDeJeener_1(u,v) \
-_-_-_- MUL2(PUIX(NEGA(FU),MUL2(parametre_v,parametre_u)) \
-_-_-_- ,LIZ4(PLUS____,DIVI(LIZ1(parametre_a,MUL3(COnm(_0,_0),p_PUIX(v,_0),EXPi(u,_0)) \
-_-_-_- ) \
-_-_-_- ,FLOT(FACT(_1)) \
-_-_-_- ) \
-_-_-_- ,MOINS___,DIVI(LIZ2(parametre_b,MUL3(COnm(_2,_0),p_PUIX(v,_2),EXPi(u,_0)) \
-_-_-_- ,parametre_c,MUL3(COnm(_2,_2),p_PUIX(v,_0),EXPi(u,_2)) \
-_-_-_- ) \
-_-_-_- ,FLOT(FACT(_3)) \
-_-_-_- ) \
-_-_-_- ,PLUS____,DIVI(LIZ3(parametre_d,MUL3(COnm(_4,_0),p_PUIX(v,_4),EXPi(u,_0)) \
-_-_-_- ,parametre_e,MUL3(COnm(_4,_2),p_PUIX(v,_2),EXPi(u,_2)) \
-_-_-_- ,parametre_f,MUL3(COnm(_4,_4),p_PUIX(v,_0),EXPi(u,_4)) \
-_-_-_- ) \
-_-_-_- ,FLOT(FACT(_5)) \
-_-_-_- ) \
-_-_-_- ,MOINS___,DIVI(LIZ4(parametre_g,MUL3(COnm(_6,_0),p_PUIX(v,_6),EXPi(u,_0)) \
-_-_-_- ,parametre_h,MUL3(COnm(_6,_2),p_PUIX(v,_4),EXPi(u,_2)) \
-_-_-_- ,parametre_i,MUL3(COnm(_6,_4),p_PUIX(v,_2),EXPi(u,_4)) \
-_-_-_- ,parametre_j,MUL3(COnm(_6,_6),p_PUIX(v,_0),EXPi(u,_6)) \
-_-_-_- ) \
-_-_-_- ,FLOT(FACT(_7)) \
-_-_-_- ) \
-_-_-_- ) \
-_-_-_- )
/* Definition de la fonction F (u,v). */
/* x */
/* */
/* On notera le '(-1)^parametre_u' qui semble ne servir a rien, mais en fait il permet */
/* d'assembler cote a cote plusieurs elements ('v $xrs/vagues.11$K DoIn.parametre_u.')... */
/* */
/* Le 20200326095643, 'parametre_u' a ete "complete" par 'parametre_v' qui permet, s'il a */
/* une valeur nulle, d'inhiber l'effet d'inversion de 'parametre_u'... */
-define Fy_VaguesDeJeener_1(u,v) \
-_-_-_- LIZ4(PLUS____,DIVI(LIZ1(parametre_k,MOIT(LOGX(ADD2(CModule_2D(v,u),parametre_l))) \
-_-_-_- ) \
-_-_-_- ,FLOT(FACT(_0)) \
-_-_-_- ) \
-_-_-_- ,MOINS___,DIVI(LIZ1(parametre_m,MUL3(COnm(_1,_0),p_PUIX(v,_1),EXPi(u,_0)) \
-_-_-_- ) \
-_-_-_- ,FLOT(FACT(_2)) \
-_-_-_- ) \
-_-_-_- ,PLUS____,DIVI(LIZ2(parametre_n,MUL3(COnm(_3,_0),p_PUIX(v,_3),EXPi(u,_0)) \
-_-_-_- ,parametre_p,MUL3(COnm(_3,_2),p_PUIX(v,_1),EXPi(u,_2)) \
-_-_-_- ) \
-_-_-_- ,FLOT(FACT(_4)) \
-_-_-_- ) \
-_-_-_- ,MOINS___,DIVI(LIZ3(parametre_q,MUL3(COnm(_5,_0),p_PUIX(v,_5),EXPi(u,_0)) \
-_-_-_- ,parametre_r,MUL3(COnm(_5,_2),p_PUIX(v,_3),EXPi(u,_2)) \
-_-_-_- ,parametre_s,MUL3(COnm(_5,_4),p_PUIX(v,_1),EXPi(u,_4)) \
-_-_-_- ) \
-_-_-_- ,FLOT(FACT(_6)) \
-_-_-_- ) \
-_-_-_- )
/* Definition de la fonction F (u,v). */
/* y */
/* */
/* Le 'MOIT(LOGX(...))' vient de l'integration en 'v' de la Partie Reelle de : */
/* */
/* 1 v - i.u */
/* --------- = --------- */
/* v + i.u 2 2 */
/* v + u */
/* */
/* soit : */
/* */
/* v */
/* --------- */
/* 2 2 */
/* v + u */
/* */
/* le changement de variable 'w=v^2 + u^2' donnant par integration en 'w' ('u^2' etant */
/* alors une constante) avec 'dw=2.v.dv' : */
/* */
/* 1 2 2 */
/* ---.log(v + u ) */
/* 2 */
/* */
-define Fz_VaguesDeJeener_1(u,v) \
-_-_-_- LIZ2(parametre_t,Theta_2D(u,v) \
-_-_-_- ,parametre_u,PI \
-_-_-_- )
/* Definition de la fonction F (u,v). */
/* z */
/* */
/* On notera les correspondances suivantes dans un plan (d'apres 'omega = v + i.u') : */
/* */
/* v --> coordonnee X */
/* u --> coordonnee Y */
/* */
/* Or c'est 'atan(v,u)' que l'on calcule ici et non pas 'atan(u,v)'. En effet, voici les */
/* definitions utilisees : */
/* */
/* Theta_2D(x,y) */
/* | */
/* ----> Angle1_2D(x,y) */
/* Angle1_2D(X1,X2) */
/* | */
/* ----> gaAngle1_2D(FX1origine,FX2origine,X1,X2) */
/* | */
/* ----> gAngle1_2D(ATAN,O1,O2,X1,X2) */
/* | */
/* ----> arc_tangente(SOUS(X2,O2),SOUS(X1,O1)) */
/* */
/* /\ /\ */
/* || || */
/* | ---------- | */
/* ------------ */
/* */
/* ATTENTION : 'X1' et 'X2' sont permutes */
/* */
/* (dans 'v $ximD/definit.1$DEF Theta_2D') soit donc : */
/* */
/* Theta_2D(x,y)=ATAN(y,x) */
/* */
/* et donc : */
/* */
/* Theta_2D(u,v)=ATAN(v,u) */
/* */
/* Mais la definition de 'Fz_VaguesDeJeener_1(...)' est finalement arbitraire... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* I N I T I A L I S A T I O N S R E L A T I V E S A L A P S E U D O - P R O J E C T I O N : */
/* */
/*************************************************************************************************************************************/
-define Pxyz_VaguesDeJeener_1 \
-_-_-_- Bblock \
-_-_-_- BLOC(VIDE;); \
-_-_-_- Eblock
/* Initialisations specifiques a cette surface destinees a permettre la reinjection des */
/* trois pseudo-projections {Projection_de_Fx,Projection_de_Fy,Projection_de_Fz} dans */
/* 'v $xrs/project2D.11$K'... */