/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        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   V A R I E T E   D E   H O R N E R   " C I R C U L A I R E "   D U   P R E M I E R   D E G R E  :               */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrs/Horner61.11$I' :                                                                                           */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 20201122113029).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        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 variete ('v $xrs/Horner61.11$K') :                                                                        */
/*                                                                                                                                   */
/*                    Elle est definie parametriquement                                                                              */
/*                  en fonction des trois parametres 'u',                                                                            */
/*                  'v' et 'W' :                                                                                                     */
/*                                                                                                                                   */
/*                                      F (u,v,w) = RX.HORNER_6_01(cos(u),sin(u),cos(v),sin(v),cos(w),sin(w),{pXijklm})              */
/*                                       x                                                                                           */
/*                                                                                                                                   */
/*                                      F (u,v,w) = RY.HORNER_6_01(cos(u),sin(u),cos(v),sin(v),cos(w),sin(w),{pYijklm})              */
/*                                       y                                                                                           */
/*                                                                                                                                   */
/*                                      F (u,v,w) = RZ.HORNER_6_01(cos(u),sin(u),cos(v),sin(v),cos(w),sin(w),{pZijklm})              */
/*                                       z                                                                                           */
/*                                                                                                                                   */
/*                  ('v $ximd/operator.1$FON HORNER_6_01') avec :                                                                    */
/*                                                                                                                                   */
/*                                      {pXijklm} un ensemble de coefficients (i,j,k,l,m E {0,1})                                    */
/*                                      {pYijklm} un ensemble de coefficients (i,j,k,l,m E {0,1})                                    */
/*                                      {pZijklm} un ensemble de coefficients (i,j,k,l,m E {0,1})                                    */
/*                                                                                                                                   */
/*                  et :                                                                                                             */
/*                                      u E [ 0 , 2.p ]                                                                              */
/*                                                                                                                                   */
/*                                      v E [ 0 , 2.p ]                                                                              */
/*                                                                                                                                   */
/*                                      w E [ 0 , 2.p ]                                                                              */
/*                                                                                                                                   */
/*                  (ou 'p' designe 'pi').                                                                                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
                                        /* 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,w)' 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_Horner61_1(u,v,w)                                                                                                          \
                    MUL2(parametre_RX                                                                                                   \
                        ,HORNER_6_01(COSX(u),SINX(u),COSX(v),SINX(v),COSX(w),SINX(w)                                                    \
                                    ,pX_a111111,pX_a111110,pX_a111101,pX_a111100,pX_a111011,pX_a111010,pX_a111001,pX_a111000            \
                                    ,pX_a110111,pX_a110110,pX_a110101,pX_a110100,pX_a110011,pX_a110010,pX_a110001,pX_a110000            \
                                    ,pX_a101111,pX_a101110,pX_a101101,pX_a101100,pX_a101011,pX_a101010,pX_a101001,pX_a101000            \
                                    ,pX_a100111,pX_a100110,pX_a100101,pX_a100100,pX_a100011,pX_a100010,pX_a100001,pX_a100000            \
                                    ,pX_a011111,pX_a011110,pX_a011101,pX_a011100,pX_a011011,pX_a011010,pX_a011001,pX_a011000            \
                                    ,pX_a010111,pX_a010110,pX_a010101,pX_a010100,pX_a010011,pX_a010010,pX_a010001,pX_a010000            \
                                    ,pX_a001111,pX_a001110,pX_a001101,pX_a001100,pX_a001011,pX_a001010,pX_a001001,pX_a001000            \
                                    ,pX_a000111,pX_a000110,pX_a000101,pX_a000100,pX_a000011,pX_a000010,pX_a000001,pX_a000000            \
                                     )                                                                                                  \
                         )
                                        /* Definition de la fonction F (u,v,w).                                                      */
                                        /*                            x                                                              */
#define   Fy_Horner61_1(u,v,w)                                                                                                          \
                    MUL2(parametre_RY                                                                                                   \
                        ,HORNER_6_01(COSX(u),SINX(u),COSX(v),SINX(v),COSX(w),SINX(w)                                                    \
                                    ,pY_a111111,pY_a111110,pY_a111101,pY_a111100,pY_a111011,pY_a111010,pY_a111001,pY_a111000            \
                                    ,pY_a110111,pY_a110110,pY_a110101,pY_a110100,pY_a110011,pY_a110010,pY_a110001,pY_a110000            \
                                    ,pY_a101111,pY_a101110,pY_a101101,pY_a101100,pY_a101011,pY_a101010,pY_a101001,pY_a101000            \
                                    ,pY_a100111,pY_a100110,pY_a100101,pY_a100100,pY_a100011,pY_a100010,pY_a100001,pY_a100000            \
                                    ,pY_a011111,pY_a011110,pY_a011101,pY_a011100,pY_a011011,pY_a011010,pY_a011001,pY_a011000            \
                                    ,pY_a010111,pY_a010110,pY_a010101,pY_a010100,pY_a010011,pY_a010010,pY_a010001,pY_a010000            \
                                    ,pY_a001111,pY_a001110,pY_a001101,pY_a001100,pY_a001011,pY_a001010,pY_a001001,pY_a001000            \
                                    ,pY_a000111,pY_a000110,pY_a000101,pY_a000100,pY_a000011,pY_a000010,pY_a000001,pY_a000000            \
                                     )                                                                                                  \
                         )
                                        /* Definition de la fonction F (u,v,w).                                                      */
                                        /*                            y                                                              */
#define   Fz_Horner61_1(u,v,w)                                                                                                          \
                    MUL2(parametre_RZ                                                                                                   \
                        ,HORNER_6_01(COSX(u),SINX(u),COSX(v),SINX(v),COSX(w),SINX(w)                                                    \
                                    ,pZ_a111111,pZ_a111110,pZ_a111101,pZ_a111100,pZ_a111011,pZ_a111010,pZ_a111001,pZ_a111000            \
                                    ,pZ_a110111,pZ_a110110,pZ_a110101,pZ_a110100,pZ_a110011,pZ_a110010,pZ_a110001,pZ_a110000            \
                                    ,pZ_a101111,pZ_a101110,pZ_a101101,pZ_a101100,pZ_a101011,pZ_a101010,pZ_a101001,pZ_a101000            \
                                    ,pZ_a100111,pZ_a100110,pZ_a100101,pZ_a100100,pZ_a100011,pZ_a100010,pZ_a100001,pZ_a100000            \
                                    ,pZ_a011111,pZ_a011110,pZ_a011101,pZ_a011100,pZ_a011011,pZ_a011010,pZ_a011001,pZ_a011000            \
                                    ,pZ_a010111,pZ_a010110,pZ_a010101,pZ_a010100,pZ_a010011,pZ_a010010,pZ_a010001,pZ_a010000            \
                                    ,pZ_a001111,pZ_a001110,pZ_a001101,pZ_a001100,pZ_a001011,pZ_a001010,pZ_a001001,pZ_a001000            \
                                    ,pZ_a000111,pZ_a000110,pZ_a000101,pZ_a000100,pZ_a000011,pZ_a000010,pZ_a000001,pZ_a000000            \
                                     )                                                                                                  \
                         )
                                        /* Definition de la fonction F (u,v,w).                                                      */
                                        /*                            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_Horner61_1                                                                                                               \
                    Bblock                                                                                                              \
                    BLOC(VIDE;);                                                                                                        \
                    Eblock
                                        /* Initialisations specifiques a cette variete destinees a permettre la reinjection des      */
                                        /* trois pseudo-projections {Projection_de_Fx,Projection_de_Fy,Projection_de_Fz} dans        */
                                        /* 'v $xrs/project2D.11$K'...                                                                */



Copyright © Jean-François Colonna, 2020-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2020-2021.