/*************************************************************************************************************************************/
/* */
/* 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 L A B O U T E I L L E D E K L E I N D I T E " V E R S I O N 2 " N O N S I M P L I F I E E : */
/* */
/* */
/* Author of '$xrs/bKlein.41$I' : */
/* */
/* Jean-Francois Colonna (LACTAMME, 20021119162241). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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... */
-define F_W_4(u,v) \
-_-_-_- AXPB(NEUT(parametre_b) \
-_-_-_- ,SINX(NEUT(u)) \
-_-_-_- ,NEUT(parametre_e) \
-_-_-_- )
/* Fonction W(u,v) : */
/* */
/* W(u,v) = W(u) \-/ v */
/* */
-define F_DX_4(u,v) \
-_-_-_- LIZ2(NEUT(parametre_a) \
-_-_-_- ,COSX(NEUT(u)) \
-_-_-_- ,NEGA(parametre_a) \
-_-_-_- ,COSX(MUL2(parametre_c,u)) \
-_-_-_- )
/* Fonction DX(u,v) : */
/* */
/* DX(u,v) = DX(u) \-/ v */
/* */
-define F_DY_4(u,v) \
-_-_-_- MUL2(NEGA(parametre_g) \
-_-_-_- ,SINX(NEUT(u)) \
-_-_-_- )
/* Fonction DY(u,v) : */
/* */
/* DY(u,v) = DY(u) \-/ v */
/* */
-define F_RXY_4(u,v) \
-_-_-_- GpytF2D(F_DX_4(u,v) \
-_-_-_- ,F_DY_4(u,v) \
-_-_-_- )
/* Fonction RXY(u,v) : */
/* */
/* RXY(u,v) = RXY(u) \-/ v */
/* */
/* ATTENTION, on notera que 'F_RXY_4(0,v)' est nul, or cette fonction figure en */
/* denominateur dans les definitions des fonctions 'Fx_BouteilleDeKlein_4(u,v)' et */
/* 'Fy_BouteilleDeKlein_4(u,v)'. Cela justifie alors le 'fDIVZI(...)' qui y est utilise, de */
/* meme que la valeur speciale de 'v $xrs/bKlein.44$I MINIMUM_DE_U'. */
-define Fx_BouteilleDeKlein_4(u,v) \
-_-_-_- ADD3(MUL2(NEUT(parametre_a),SINX(NEUT(u))) \
-_-_-_- ,MUL2(NEGA(parametre_b),SINX(MUL2(parametre_c,u))) \
-_-_-_- ,NEGA(fDIVZI(MUL3(F_DY_4(u,v),F_W_4(u,v),COSX(NEUT(v))) \
-_-_-_- ,F_RXY_4(u,v) \
-_-_-_- ,MEME_SIGNE_QUE(u,MUL2(F_W_4(u,v),COSX(NEUT(v)))) \
-_-_-_- ) \
-_-_-_- ) \
-_-_-_- )
/* Definition de la fonction F (u,v). */
/* x */
/* */
/* On notera que la limite, quand u --> 0, du quotient 'fDIVZI(...)' est 'E.cos(NEUT(v))' */
/* en valeur absolue... */
-define Fy_BouteilleDeKlein_4(u,v) \
-_-_-_- ADD2(MUL2(parametre_g,COSX(NEUT(u))) \
-_-_-_- ,NEUT(fDIVZI(MUL3(F_DX_4(u,v),F_W_4(u,v),COSX(NEUT(v))) \
-_-_-_- ,F_RXY_4(u,v) \
-_-_-_- ,FZERO \
-_-_-_- ) \
-_-_-_- ) \
-_-_-_- )
/* Definition de la fonction F (u,v). */
/* y */
/* */
/* On notera que la limite, quand u --> 0, du quotient 'fDIVZI(...)' est 0. */
/* */
/* Le 20030310094426, 'SINX(NEUT(u))' a ete remplace par 'COSX(NEUT(u))' car il semble */
/* que ce 'SINX(...)' n'etait pas correct. On notera au passage que 'F_DX_4(...)' et */
/* 'F_DY_4(...)' sont les derivees du "debut" des fonctions 'Fx_BouteilleDeKlein_4(...)' */
/* et 'Fy_BouteilleDeKlein_4(...)' respectivement, d'ou cette modification ; la version */
/* en 'SINX(...)' donnait un defaut tres visible sur 'v $xiirs/BKLN.42'... */
-define Fz_BouteilleDeKlein_4(u,v) \
-_-_-_- MUL2(F_W_4(u,v),SINX(NEUT(v)))
/* Definition de la fonction F (u,v). */
/* z */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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_BouteilleDeKlein_4 \
-_-_-_- 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' (introduit le 20050203092538)... */