/*************************************************************************************************************************************/
/* */
/* 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 ' U N E S U R F A C E D E H O R N E R " L I N E A I R E " D U Q U A T R I E M E D E G R E : */
/* */
/* */
/* Author of '$xrs/Horner24.11$I' : */
/* */
/* Jean-Francois Colonna (LACTAMME, 20201120102800). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 ' : */
/* */
/* */
/* Definition de la surface ('v $xrs/Horner24.11$K') : */
/* */
/* La surface 'lineaire' de Horner */
/* est definie parametriquement */
/* en fonction des deux parametres 'u' */
/* (appele aussi 'distance polaire' ou */
/* 'theta' ou encore 'latitude') et 'v' */
/* (appele aussi 'longitude' ou 'phi') : */
/* */
/* F (u,v) = RX.HORNER_2_04(u,v,{pXij}) */
/* x */
/* */
/* F (u,v) = RY.HORNER_2_04(u,v,{pYij}) */
/* y */
/* */
/* F (u,v) = RZ.HORNER_2_04(u,v,{pZij}) */
/* z */
/* */
/* ('v $ximd/operator.1$FON HORNER_2_04') avec : */
/* */
/* {pXij} un ensemble de coefficients (i,j E {0,1,2,3,4}) */
/* {pYij} un ensemble de coefficients (i,j E {0,1,2,3,4}) */
/* {pZij} un ensemble de coefficients (i,j E {0,1,2,3,4}) */
/* */
/* et : */
/* */
/* avec : */
/* */
/* u E [ -1 , +1 ] */
/* */
/* v E [ -1 , +1 ] */
/* */
/* */
/*************************************************************************************************************************************/
/* 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 Fx_Horner24_1(u,v) \
MUL2(parametre_RX \
,HORNER_2_04(u,v \
,pX_a44,pX_a43,pX_a42,pX_a41,pX_a40 \
,pX_a34,pX_a33,pX_a32,pX_a31,pX_a30 \
,pX_a24,pX_a23,pX_a22,pX_a21,pX_a20 \
,pX_a14,pX_a13,pX_a12,pX_a11,pX_a10 \
,pX_a04,pX_a03,pX_a02,pX_a01,pX_a00 \
) \
)
/* Definition de la fonction F (u,v). */
/* x */
#define Fy_Horner24_1(u,v) \
MUL2(parametre_RY \
,HORNER_2_04(u,v \
,pY_a44,pY_a43,pY_a42,pY_a41,pY_a40 \
,pY_a34,pY_a33,pY_a32,pY_a31,pY_a30 \
,pY_a24,pY_a23,pY_a22,pY_a21,pY_a20 \
,pY_a14,pY_a13,pY_a12,pY_a11,pY_a10 \
,pY_a04,pY_a03,pY_a02,pY_a01,pY_a00 \
) \
)
/* Definition de la fonction F (u,v). */
/* y */
#define Fz_Horner24_1(u,v) \
MUL2(parametre_RZ \
,HORNER_2_04(u,v \
,pZ_a44,pZ_a43,pZ_a42,pZ_a41,pZ_a40 \
,pZ_a34,pZ_a33,pZ_a32,pZ_a31,pZ_a30 \
,pZ_a24,pZ_a23,pZ_a22,pZ_a21,pZ_a20 \
,pZ_a14,pZ_a13,pZ_a12,pZ_a11,pZ_a10 \
,pZ_a04,pZ_a03,pZ_a02,pZ_a01,pZ_a00 \
) \
)
/* 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_Horner24_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'... */