/*************************************************************************************************************************************/
/* */
/* 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 : */
/* */
/* */
/* Author of '$xrf/recursif.11$I' : */
/* */
/* Jean-Francois Colonna (LACTAMME, 1993??????????). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 'RAYON(h,theta)' 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... */
/* Nota : le modele presentement utilise pourrait etre complique en multipliant le vecteur */
/* des trois fonction ci-apres par une matrice de rotation d'Euler de la facon suivante : */
/* */
/* / \ / \ */
/* | F (Euler1,Euler2,Euler3,h,theta) | | F (h,theta) | */
/* | x | | x | */
/* | | | | */
/* | F (Euler1,Euler2,Euler3,h,theta) | = M(Euler1,Euler2,Euler3).| F (h,theta) | */
/* | y | | y | */
/* | | | | */
/* | F (Euler1,Euler2,Euler3,h,theta) | | F (h,theta) | */
/* | z | | z | */
/* \ / \ / */
/* */
/* avec : */
/* */
/* Euler1 = constante (angle de nutation 'theta'), */
/* Euler2 = f(theta) (angle de precession 'psi'), */
/* Euler3 = PI/2 (angle de rotation pure 'phi'). */
/* */
/* Mais ATTENTION a ne pas confondre les deux angles 'theta' : d'une part l'angle 'theta' */
/* des coordonnees polaires (planes) ci-dessous, et d'autre part l'angle de nutation 'theta' */
/* de la matrice de rotation d'Euler (appele donc ci-dessus 'Euler1')... */
-define RAYON(h,theta) \
-_-_-_- MUL3(h \
-_-_-_- ,r0 \
-_-_-_- ,BARY(FACTEUR_MAXIMAL_RAYON \
-_-_-_- ,facteur_minimal_rayon \
-_-_-_- ,NORM(theta,theta0_courant,AXPB(nombre_d_iterations,dtheta,theta0_courant)) \
-_-_-_- ) \
-_-_-_- )
/* Definition du rayon variable (en fonction de 'theta'). */
-define Fx(h,theta) \
-_-_-_- MUL2(kx \
-_-_-_- ,Xcartesienne_2D(RAYON(h,theta) \
-_-_-_- ,MUL2(tx,theta) \
-_-_-_- ) \
-_-_-_- )
/* Definition de la fonction F (h,theta). */
/* x */
-define Fy(h,theta) \
-_-_-_- MUL2(ky \
-_-_-_- ,Ycartesienne_2D(RAYON(h,theta) \
-_-_-_- ,MUL2(ty,theta) \
-_-_-_- ) \
-_-_-_- )
/* Definition de la fonction F (h,theta). */
/* y */
-define Fz(h,theta) \
-_-_-_- MUL3(kz \
-_-_-_- ,h \
-_-_-_- ,theta \
-_-_-_- )
/* Definition de la fonction F (h,theta). */
/* z */