/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C A L C U L   D E   L ' H Y P E R - H Y P E R - V O L U M E   P R O P R E M E N T   D I T  :                               */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrs/hyper_hyper_volumes.12$I' :                                                                                */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 20230225112950).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C A L C U L   D E   L ' H Y P E R - H Y P E R - V O L U M E                                                                */
/*        V I A   L E S   C O O R D O N N E E S   C U R V I L I G N E S  :                                                           */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.1A.I"

#include  xrv/champs_5.19.I"
                                        /* Pour eviter le message :                                                                  */
                                        /*                                                                                           */
                                        /*                  Static function is not referenced.                                       */
                                        /*                                                                                           */

#include  xrk/attractor.19.I"
                                        /* Validations et definition de l'espace physique.                                           */

#define   w1_NORMALISEE                                                                                                                 \
                    NORM(w1,minimum_de_w1,maximum_de_w1)
#define   w2_NORMALISEE                                                                                                                 \
                    NORM(w2,minimum_de_w2,maximum_de_w2)
#define   w3_NORMALISEE                                                                                                                 \
                    NORM(w3,minimum_de_w3,maximum_de_w3)
#define   w4_NORMALISEE                                                                                                                 \
                    NORM(w4,minimum_de_w4,maximum_de_w4)
#define   w5_NORMALISEE                                                                                                                 \
                    NORM(w5,minimum_de_w5,maximum_de_w5)
#define   w6_NORMALISEE                                                                                                                 \
                    NORM(w6,minimum_de_w6,maximum_de_w6)
#define   w7_NORMALISEE                                                                                                                 \
                    NORM(w7,minimum_de_w7,maximum_de_w7)
#define   w8_NORMALISEE                                                                                                                 \
                    NORM(w8,minimum_de_w8,maximum_de_w8)
                                        /* Coordonnees {w1,w2,w3,w4,w5,w6,w7,w8} dans [0,1]...                                       */

#define   PERMUTATION_EVENTUELLE_DES_COORDONNEES_ET_DES_DIFFERENTIELLES                                                                 \
                    Bblock                                                                                                              \
                    Test(IL_FAUT(permuter_les_coordonnees_et_les_differentielles))                                                      \
                         Bblock                                                                                                         \
                         fSWAP(cx,dcx);                                                                                                 \
                         fSWAP(cy,dcy);                                                                                                 \
                         fSWAP(cz,dcz);                                                                                                 \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                    Eblock                                                                                                              \
                                        /* Permutation eventuelle des coordonnees et des differentielles.                            */

#define   GENERATION_DU_POINT_w1w2w3w4w5w6w7w8_COURANT(Fx,Fy,Fz,calcul_point_courant,sequence_de_generation)                            \
                    Bblock                                                                                                              \
                    DEFV(Float,INIT(w1_effectif,w1));                                                                                   \
                    DEFV(Float,INIT(d_w1_effectif,d_w1));                                                                               \
                                                                                                                                        \
                    DEFV(Float,INIT(w2_effectif,w2));                                                                                   \
                    DEFV(Float,INIT(d_w2_effectif,d_w2));                                                                               \
                                                                                                                                        \
                    DEFV(Float,INIT(w3_effectif,w3));                                                                                   \
                    DEFV(Float,INIT(d_w3_effectif,d_w3));                                                                               \
                                                                                                                                        \
                    DEFV(Float,INIT(w4_effectif,w4));                                                                                   \
                    DEFV(Float,INIT(d_w4_effectif,d_w4));                                                                               \
                                                                                                                                        \
                    DEFV(Float,INIT(w5_effectif,w5));                                                                                   \
                    DEFV(Float,INIT(d_w5_effectif,d_w5));                                                                               \
                                                                                                                                        \
                    DEFV(Float,INIT(w6_effectif,w6));                                                                                   \
                    DEFV(Float,INIT(d_w6_effectif,d_w6));                                                                               \
                                                                                                                                        \
                    DEFV(Float,INIT(w7_effectif,w7));                                                                                   \
                    DEFV(Float,INIT(d_w7_effectif,d_w7));                                                                               \
                                                                                                                                        \
                    DEFV(Float,INIT(w8_effectif,w8));                                                                                   \
                    DEFV(Float,INIT(d_w8_effectif,d_w8));                                                                               \
                                                                                                                                        \
                    EGAL(w1_effectif                                                                                                    \
                        ,COND(IL_NE_FAUT_PAS(gestion_torique_de_w1)                                                                     \
                             ,NEUT(w1_effectif)                                                                                         \
                             ,MODF(w1_effectif,minimum_de_w1_effectif,maximum_de_w1_effectif)                                           \
                              )                                                                                                         \
                         );                                                                                                             \
                                                                                                                                        \
                    EGAL(w2_effectif                                                                                                    \
                        ,COND(IL_NE_FAUT_PAS(gestion_torique_de_w2)                                                                     \
                             ,NEUT(w2_effectif)                                                                                         \
                             ,MODF(w2_effectif,minimum_de_w2_effectif,maximum_de_w2_effectif)                                           \
                              )                                                                                                         \
                         );                                                                                                             \
                                                                                                                                        \
                    EGAL(w3_effectif                                                                                                    \
                        ,COND(IL_NE_FAUT_PAS(gestion_torique_de_w3)                                                                     \
                             ,NEUT(w3_effectif)                                                                                         \
                             ,MODF(w3_effectif,minimum_de_w3_effectif,maximum_de_w3_effectif)                                           \
                              )                                                                                                         \
                         );                                                                                                             \
                                                                                                                                        \
                    EGAL(w4_effectif                                                                                                    \
                        ,COND(IL_NE_FAUT_PAS(gestion_torique_de_w4)                                                                     \
                             ,NEUT(w4_effectif)                                                                                         \
                             ,MODF(w4_effectif,minimum_de_w4_effectif,maximum_de_w4_effectif)                                           \
                              )                                                                                                         \
                         );                                                                                                             \
                                                                                                                                        \
                    EGAL(w5_effectif                                                                                                    \
                        ,COND(IL_NE_FAUT_PAS(gestion_torique_de_w5)                                                                     \
                             ,NEUT(w5_effectif)                                                                                         \
                             ,MODF(w5_effectif,minimum_de_w5_effectif,maximum_de_w5_effectif)                                           \
                              )                                                                                                         \
                         );                                                                                                             \
                                                                                                                                        \
                    EGAL(w6_effectif                                                                                                    \
                        ,COND(IL_NE_FAUT_PAS(gestion_torique_de_w6)                                                                     \
                             ,NEUT(w6_effectif)                                                                                         \
                             ,MODF(w6_effectif,minimum_de_w6_effectif,maximum_de_w6_effectif)                                           \
                              )                                                                                                         \
                         );                                                                                                             \
                                                                                                                                        \
                    EGAL(w7_effectif                                                                                                    \
                        ,COND(IL_NE_FAUT_PAS(gestion_torique_de_w7)                                                                     \
                             ,NEUT(w7_effectif)                                                                                         \
                             ,MODF(w7_effectif,minimum_de_w7_effectif,maximum_de_w7_effectif)                                           \
                              )                                                                                                         \
                         );                                                                                                             \
                                                                                                                                        \
                    EGAL(w8_effectif                                                                                                    \
                        ,COND(IL_NE_FAUT_PAS(gestion_torique_de_w8)                                                                     \
                             ,NEUT(w8_effectif)                                                                                         \
                             ,MODF(w8_effectif,minimum_de_w8_effectif,maximum_de_w8_effectif)                                           \
                              )                                                                                                         \
                         );                                                                                                             \
                                                                                                                                        \
                    Test(I8ET(IFINff(w1_effectif,minimum_de_w1_effectif,maximum_de_w1_effectif)                                         \
                             ,IFINff(w2_effectif,minimum_de_w2_effectif,maximum_de_w2_effectif)                                         \
                             ,IFINff(w3_effectif,minimum_de_w3_effectif,maximum_de_w3_effectif)                                         \
                             ,IFINff(w4_effectif,minimum_de_w4_effectif,maximum_de_w4_effectif)                                         \
                             ,IFINff(w5_effectif,minimum_de_w5_effectif,maximum_de_w5_effectif)                                         \
                             ,IFINff(w6_effectif,minimum_de_w6_effectif,maximum_de_w6_effectif)                                         \
                             ,IFINff(w7_effectif,minimum_de_w7_effectif,maximum_de_w7_effectif)                                         \
                             ,IFINff(w8_effectif,minimum_de_w8_effectif,maximum_de_w8_effectif)                                         \
                              )                                                                                                         \
                         )                                                                                                              \
                         Bblock                                                                                                         \
                         Test(I9OU(I8ET(DIVISIBLE(echantillonnage_courant_de_w1,echantillonnage_de_w1)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w2,echantillonnage_de_w2)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w3,echantillonnage_de_w3)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w4,echantillonnage_de_w4)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w5,echantillonnage_de_w5)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w6,echantillonnage_de_w6)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w7,echantillonnage_de_w7)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w8,echantillonnage_de_w8)                                  \
                                        )                                                                                               \
                                  ,I8ET(NON_DIVISIBLE(echantillonnage_courant_de_w1,echantillonnage_de_w1)                              \
                                       ,DIVISIBLE(echantillonnage_courant_de_w2,echantillonnage_de_w2)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w3,echantillonnage_de_w3)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w4,echantillonnage_de_w4)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w5,echantillonnage_de_w5)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w6,echantillonnage_de_w6)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w7,echantillonnage_de_w7)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w8,echantillonnage_de_w8)                                  \
                                        )                                                                                               \
                                  ,I8ET(DIVISIBLE(echantillonnage_courant_de_w1,echantillonnage_de_w1)                                  \
                                       ,NON_DIVISIBLE(echantillonnage_courant_de_w2,echantillonnage_de_w2)                              \
                                       ,DIVISIBLE(echantillonnage_courant_de_w3,echantillonnage_de_w3)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w4,echantillonnage_de_w4)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w5,echantillonnage_de_w5)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w6,echantillonnage_de_w6)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w7,echantillonnage_de_w7)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w8,echantillonnage_de_w8)                                  \
                                        )                                                                                               \
                                  ,I8ET(DIVISIBLE(echantillonnage_courant_de_w1,echantillonnage_de_w1)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w2,echantillonnage_de_w2)                                  \
                                       ,NON_DIVISIBLE(echantillonnage_courant_de_w3,echantillonnage_de_w3)                              \
                                       ,DIVISIBLE(echantillonnage_courant_de_w4,echantillonnage_de_w4)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w5,echantillonnage_de_w5)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w6,echantillonnage_de_w6)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w7,echantillonnage_de_w7)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w8,echantillonnage_de_w8)                                  \
                                        )                                                                                               \
                                  ,I8ET(DIVISIBLE(echantillonnage_courant_de_w1,echantillonnage_de_w1)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w2,echantillonnage_de_w2)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w3,echantillonnage_de_w3)                                  \
                                       ,NON_DIVISIBLE(echantillonnage_courant_de_w4,echantillonnage_de_w4)                              \
                                       ,DIVISIBLE(echantillonnage_courant_de_w5,echantillonnage_de_w5)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w6,echantillonnage_de_w6)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w7,echantillonnage_de_w7)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w8,echantillonnage_de_w8)                                  \
                                        )                                                                                               \
                                  ,I8ET(DIVISIBLE(echantillonnage_courant_de_w1,echantillonnage_de_w1)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w2,echantillonnage_de_w2)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w3,echantillonnage_de_w3)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w4,echantillonnage_de_w4)                                  \
                                       ,NON_DIVISIBLE(echantillonnage_courant_de_w5,echantillonnage_de_w5)                              \
                                       ,DIVISIBLE(echantillonnage_courant_de_w6,echantillonnage_de_w6)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w7,echantillonnage_de_w7)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w8,echantillonnage_de_w8)                                  \
                                        )                                                                                               \
                                  ,I8ET(DIVISIBLE(echantillonnage_courant_de_w1,echantillonnage_de_w1)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w2,echantillonnage_de_w2)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w3,echantillonnage_de_w3)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w4,echantillonnage_de_w4)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w5,echantillonnage_de_w5)                                  \
                                       ,NON_DIVISIBLE(echantillonnage_courant_de_w6,echantillonnage_de_w6)                              \
                                       ,DIVISIBLE(echantillonnage_courant_de_w7,echantillonnage_de_w7)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w8,echantillonnage_de_w8)                                  \
                                        )                                                                                               \
                                  ,I8ET(DIVISIBLE(echantillonnage_courant_de_w1,echantillonnage_de_w1)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w2,echantillonnage_de_w2)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w3,echantillonnage_de_w3)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w4,echantillonnage_de_w4)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w5,echantillonnage_de_w5)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w6,echantillonnage_de_w6)                                  \
                                       ,NON_DIVISIBLE(echantillonnage_courant_de_w7,echantillonnage_de_w7)                              \
                                       ,DIVISIBLE(echantillonnage_courant_de_w8,echantillonnage_de_w8)                                  \
                                        )                                                                                               \
                                  ,I8ET(DIVISIBLE(echantillonnage_courant_de_w1,echantillonnage_de_w1)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w2,echantillonnage_de_w2)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w3,echantillonnage_de_w3)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w4,echantillonnage_de_w4)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w5,echantillonnage_de_w5)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w6,echantillonnage_de_w6)                                  \
                                       ,DIVISIBLE(echantillonnage_courant_de_w7,echantillonnage_de_w7)                                  \
                                       ,NON_DIVISIBLE(echantillonnage_courant_de_w8,echantillonnage_de_w8)                              \
                                        )                                                                                               \
                                   )                                                                                                    \
                              )                                                                                                         \
                              Bblock                                                                                                    \
                              EGAL(cx                                                                                                   \
                                  ,Fx(w1_effectif,w2_effectif,w3_effectif,w4_effectif                                                   \
                                     ,w5_effectif,w6_effectif,w7_effectif,w8_effectif                                                   \
                                      )                                                                                                 \
                                   );                                                                                                   \
                              EGAL(cy                                                                                                   \
                                  ,Fy(w1_effectif,w2_effectif,w3_effectif,w4_effectif                                                   \
                                     ,w5_effectif,w6_effectif,w7_effectif,w8_effectif                                                   \
                                      )                                                                                                 \
                                   );                                                                                                   \
                              EGAL(cz                                                                                                   \
                                  ,Fz(w1_effectif,w2_effectif,w3_effectif,w4_effectif                                                   \
                                     ,w5_effectif,w6_effectif,w7_effectif,w8_effectif                                                   \
                                      )                                                                                                 \
                                   );                                                                                                   \
                                        /* Generation du point courant de l'hyper-hyper-volume...                                    */ \
                                                                                                                                        \
                              BLOC(sequence_de_generation);                                                                             \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                    Eblock

#define   index_definition_arbitraire                                                                                                   \
                    index_de_definition_arbitraire_des_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8                                              \
                                        /* Afin de raccourcir certaines des lignes qui suivent...                                    */

#define   gGENER_HYPER_HYPER_VOLUME(Fx,Fy,Fz,calcul_point_courant,sequence_de_generation)                                               \
                    Bblock                                                                                                              \
                    DEFV(Float,INIT(differentielle_ROUGE,FLOT__UNDEF));                                                                 \
                    DEFV(Float,INIT(differentielle_VERTE,FLOT__UNDEF));                                                                 \
                    DEFV(Float,INIT(differentielle_BLEUE,FLOT__UNDEF));                                                                 \
                    DEFV(Logical,INIT(utiliser_les_differentielles_ROUGE_VERTE_BLEUE,FAUX));                                            \
                                                                                                                                        \
                    DEFV(Float,INIT(minimum_de_w1_effectif,minimum_de_w1));                                                             \
                    DEFV(Float,INIT(maximum_de_w1_effectif,maximum_de_w1));                                                             \
                                                                                                                                        \
                    DEFV(Float,INIT(minimum_de_w2_effectif,minimum_de_w2));                                                             \
                    DEFV(Float,INIT(maximum_de_w2_effectif,maximum_de_w2));                                                             \
                                                                                                                                        \
                    DEFV(Float,INIT(minimum_de_w3_effectif,minimum_de_w3));                                                             \
                    DEFV(Float,INIT(maximum_de_w3_effectif,maximum_de_w3));                                                             \
                                                                                                                                        \
                    DEFV(Float,INIT(minimum_de_w4_effectif,minimum_de_w4));                                                             \
                    DEFV(Float,INIT(maximum_de_w4_effectif,maximum_de_w4));                                                             \
                                                                                                                                        \
                    DEFV(Float,INIT(minimum_de_w5_effectif,minimum_de_w5));                                                             \
                    DEFV(Float,INIT(maximum_de_w5_effectif,maximum_de_w5));                                                             \
                                                                                                                                        \
                    DEFV(Float,INIT(minimum_de_w6_effectif,minimum_de_w6));                                                             \
                    DEFV(Float,INIT(maximum_de_w6_effectif,maximum_de_w6));                                                             \
                                                                                                                                        \
                    DEFV(Float,INIT(minimum_de_w7_effectif,minimum_de_w7));                                                             \
                    DEFV(Float,INIT(maximum_de_w7_effectif,maximum_de_w7));                                                             \
                                                                                                                                        \
                    DEFV(Float,INIT(minimum_de_w8_effectif,minimum_de_w8));                                                             \
                    DEFV(Float,INIT(maximum_de_w8_effectif,maximum_de_w8));                                                             \
                                                                                                                                        \
                    DEFV(Float,INIT(pas_de_w1_effectif,DIVI(pas_de_w1,diviseur_du_pas_de_w1)));                                         \
                    DEFV(Float,INIT(pas_de_w2_effectif,DIVI(pas_de_w2,diviseur_du_pas_de_w2)));                                         \
                    DEFV(Float,INIT(pas_de_w3_effectif,DIVI(pas_de_w3,diviseur_du_pas_de_w3)));                                         \
                    DEFV(Float,INIT(pas_de_w4_effectif,DIVI(pas_de_w4,diviseur_du_pas_de_w4)));                                         \
                    DEFV(Float,INIT(pas_de_w5_effectif,DIVI(pas_de_w5,diviseur_du_pas_de_w5)));                                         \
                    DEFV(Float,INIT(pas_de_w6_effectif,DIVI(pas_de_w6,diviseur_du_pas_de_w6)));                                         \
                    DEFV(Float,INIT(pas_de_w7_effectif,DIVI(pas_de_w7,diviseur_du_pas_de_w7)));                                         \
                    DEFV(Float,INIT(pas_de_w8_effectif,DIVI(pas_de_w8,diviseur_du_pas_de_w8)));                                         \
                                                                                                                                        \
                    DEFV(Int,INIT(echantillonnage_courant_de_w1,translation_de_l_echantillonnage_de_w1));                               \
                                        /* Afin de gerer l'echantillonnage de 'w1'.                                                  */ \
                                                                                                                                        \
                    DEFV(Float,INIT(pas_w1_de_differentiation,FLOT__UNDEF));                                                            \
                    DEFV(Float,INIT(pas_w2_de_differentiation,FLOT__UNDEF));                                                            \
                    DEFV(Float,INIT(pas_w3_de_differentiation,FLOT__UNDEF));                                                            \
                    DEFV(Float,INIT(pas_w4_de_differentiation,FLOT__UNDEF));                                                            \
                    DEFV(Float,INIT(pas_w5_de_differentiation,FLOT__UNDEF));                                                            \
                    DEFV(Float,INIT(pas_w6_de_differentiation,FLOT__UNDEF));                                                            \
                    DEFV(Float,INIT(pas_w7_de_differentiation,FLOT__UNDEF));                                                            \
                    DEFV(Float,INIT(pas_w8_de_differentiation,FLOT__UNDEF));                                                            \
                                                                                                                                        \
                    EGAL(pas_w1_de_differentiation                                                                                      \
                        ,DIVI(COND(EST_VRAI(le_pas_de_w1_de_differentiation_est_homothetique),pas_de_w1_effectif,pas_de_w1)             \
                             ,diviseur_de_differentiation_de_w1                                                                         \
                              )                                                                                                         \
                         );                                                                                                             \
                    EGAL(pas_w2_de_differentiation                                                                                      \
                        ,DIVI(COND(EST_VRAI(le_pas_de_w2_de_differentiation_est_homothetique),pas_de_w2_effectif,pas_de_w2)             \
                             ,diviseur_de_differentiation_de_w2                                                                         \
                              )                                                                                                         \
                         );                                                                                                             \
                    EGAL(pas_w3_de_differentiation                                                                                      \
                        ,DIVI(COND(EST_VRAI(le_pas_de_w3_de_differentiation_est_homothetique),pas_de_w3_effectif,pas_de_w3)             \
                             ,diviseur_de_differentiation_de_w3                                                                         \
                              )                                                                                                         \
                         );                                                                                                             \
                    EGAL(pas_w4_de_differentiation                                                                                      \
                        ,DIVI(COND(EST_VRAI(le_pas_de_w4_de_differentiation_est_homothetique),pas_de_w4_effectif,pas_de_w4)             \
                             ,diviseur_de_differentiation_de_w4                                                                         \
                              )                                                                                                         \
                         );                                                                                                             \
                    EGAL(pas_w5_de_differentiation                                                                                      \
                        ,DIVI(COND(EST_VRAI(le_pas_de_w5_de_differentiation_est_homothetique),pas_de_w5_effectif,pas_de_w5)             \
                             ,diviseur_de_differentiation_de_w5                                                                         \
                              )                                                                                                         \
                         );                                                                                                             \
                    EGAL(pas_w6_de_differentiation                                                                                      \
                        ,DIVI(COND(EST_VRAI(le_pas_de_w6_de_differentiation_est_homothetique),pas_de_w6_effectif,pas_de_w6)             \
                             ,diviseur_de_differentiation_de_w6                                                                         \
                              )                                                                                                         \
                         );                                                                                                             \
                    EGAL(pas_w7_de_differentiation                                                                                      \
                        ,DIVI(COND(EST_VRAI(le_pas_de_w7_de_differentiation_est_homothetique),pas_de_w7_effectif,pas_de_w7)             \
                             ,diviseur_de_differentiation_de_w7                                                                         \
                              )                                                                                                         \
                         );                                                                                                             \
                    EGAL(pas_w8_de_differentiation                                                                                      \
                        ,DIVI(COND(EST_VRAI(le_pas_de_w8_de_differentiation_est_homothetique),pas_de_w8_effectif,pas_de_w8)             \
                             ,diviseur_de_differentiation_de_w8                                                                         \
                              )                                                                                                         \
                         );                                                                                                             \
                                                                                                                                        \
                    Test(IL_FAUT(definir_arbitrairement_les_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8))                                       \
                         Bblock                                                                                                         \
                         DEFV(Int,INIT(echantillonnage_courant_de_w1,translation_de_l_echantillonnage_de_w1));                          \
                         DEFV(Int,INIT(echantillonnage_courant_de_w2,translation_de_l_echantillonnage_de_w2));                          \
                         DEFV(Int,INIT(echantillonnage_courant_de_w3,translation_de_l_echantillonnage_de_w3));                          \
                         DEFV(Int,INIT(echantillonnage_courant_de_w4,translation_de_l_echantillonnage_de_w4));                          \
                         DEFV(Int,INIT(echantillonnage_courant_de_w5,translation_de_l_echantillonnage_de_w5));                          \
                         DEFV(Int,INIT(echantillonnage_courant_de_w6,translation_de_l_echantillonnage_de_w6));                          \
                         DEFV(Int,INIT(echantillonnage_courant_de_w7,translation_de_l_echantillonnage_de_w7));                          \
                         DEFV(Int,INIT(echantillonnage_courant_de_w8,translation_de_l_echantillonnage_de_w8));                          \
                                        /* Ne servent qu'a permettre 'GENERATION_DU_POINT_w1w2w3w4w5w6w7w8_COURANT(...)' ci-apres... */ \
                                                                                                                                        \
                         DEFV(Logical,INIT(recuperer_les_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8,VRAI));                                    \
                                                                                                                                        \
                         Tant(IL_FAUT(recuperer_les_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8))                                               \
                              Bblock                                                                                                    \
                              DEFV(Float,INIT(w1,ELEMENT_DU_FICHIER_COORDONNEES_w1(index_definition_arbitraire)));                      \
                              DEFV(Float,INIT(w2,ELEMENT_DU_FICHIER_COORDONNEES_w2(index_definition_arbitraire)));                      \
                              DEFV(Float,INIT(w3,ELEMENT_DU_FICHIER_COORDONNEES_w3(index_definition_arbitraire)));                      \
                              DEFV(Float,INIT(w4,ELEMENT_DU_FICHIER_COORDONNEES_w4(index_definition_arbitraire)));                      \
                              DEFV(Float,INIT(w5,ELEMENT_DU_FICHIER_COORDONNEES_w5(index_definition_arbitraire)));                      \
                              DEFV(Float,INIT(w6,ELEMENT_DU_FICHIER_COORDONNEES_w6(index_definition_arbitraire)));                      \
                              DEFV(Float,INIT(w7,ELEMENT_DU_FICHIER_COORDONNEES_w7(index_definition_arbitraire)));                      \
                              DEFV(Float,INIT(w8,ELEMENT_DU_FICHIER_COORDONNEES_w8(index_definition_arbitraire)));                      \
                                                                                                                                        \
                              Test(I8ET(IFNE(w1,separateur_de_definition_arbitraire_des_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8)            \
                                       ,IFNE(w2,separateur_de_definition_arbitraire_des_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8)            \
                                       ,IFNE(w3,separateur_de_definition_arbitraire_des_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8)            \
                                       ,IFNE(w4,separateur_de_definition_arbitraire_des_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8)            \
                                       ,IFNE(w5,separateur_de_definition_arbitraire_des_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8)            \
                                       ,IFNE(w6,separateur_de_definition_arbitraire_des_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8)            \
                                       ,IFNE(w7,separateur_de_definition_arbitraire_des_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8)            \
                                       ,IFNE(w8,separateur_de_definition_arbitraire_des_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8)            \
                                        )                                                                                               \
                                   )                                                                                                    \
                                   Bblock                                                                                               \
                                   Test(I3ET(IFNE_chaine(fichier_des_coordonnees_ROUGE,NOM_PIPE_Local)                                  \
                                            ,IFNE_chaine(fichier_des_coordonnees_VERTE,NOM_PIPE_Local)                                  \
                                            ,IFNE_chaine(fichier_des_coordonnees_BLEUE,NOM_PIPE_Local)                                  \
                                             )                                                                                          \
                                        )                                                                                               \
                                        Bblock                                                                                          \
                                        EGAL(differentielle_ROUGE,ELEMENT_DU_FICHIER_COORDONNEES_ROUGE(index_definition_arbitraire));   \
                                        EGAL(differentielle_VERTE,ELEMENT_DU_FICHIER_COORDONNEES_VERTE(index_definition_arbitraire));   \
                                        EGAL(differentielle_BLEUE,ELEMENT_DU_FICHIER_COORDONNEES_BLEUE(index_definition_arbitraire));   \
                                        /* Les initialisations de 'GENER_HYPER_HYPER_VOLUME_AVEC_DIF...(...)'                        */ \
                                        /* sont donc ici "oubliees"...                                                               */ \
                                                                                                                                        \
                                        EGAL(utiliser_les_differentielles_ROUGE_VERTE_BLEUE,VRAI);                                      \
                                        /* Afin de pouvoir definir {differentielle_x,differentielle_y,differentielle_z}              */ \
                                        /* dans 'GENER_HYPER_HYPER_VOLUME_AVEC_DIFFERENCES____(...)'                                 */ \
                                        Eblock                                                                                          \
                                   ATes                                                                                                 \
                                        Bblock                                                                                          \
                                        Eblock                                                                                          \
                                   ETes                                                                                                 \
                                                                                                                                        \
                                   Test(IFNE_chaine(fichier_des_coordonnees_RAYON,NOM_PIPE_Local))                                      \
                                        Bblock                                                                                          \
                                        EGAL(rayon_de_visualisation,ELEMENT_DU_FICHIER_COORDONNEES_RAYON(index_definition_arbitraire)); \
                                        /* Introduit le 20240517140240...                                                            */ \
                                        Eblock                                                                                          \
                                   ATes                                                                                                 \
                                        Bblock                                                                                          \
                                        Eblock                                                                                          \
                                   ETes                                                                                                 \
                                                                                                                                        \
                                   Test(IFNE_chaine(fichier_des_coordonnees_MASSE,NOM_PIPE_Local))                                      \
                                        Bblock                                                                                          \
                                        EGAL(masse_de_la_sphere_courante                                                                \
                                            ,ELEMENT_DU_FICHIER_COORDONNEES_MASSE(index_definition_arbitraire)                          \
                                             );                                                                                         \
                                        /* Introduit le 20240519090604...                                                            */ \
                                        Eblock                                                                                          \
                                   ATes                                                                                                 \
                                        Bblock                                                                                          \
                                        Eblock                                                                                          \
                                   ETes                                                                                                 \
                                                                                                                                        \
                                   GENERATION_DU_POINT_w1w2w3w4w5w6w7w8_COURANT(Fx,Fy,Fz                                                \
                                                                               ,calcul_point_courant                                    \
                                                                               ,sequence_de_generation                                  \
                                                                                );                                                      \
                                   Eblock                                                                                               \
                              ATes                                                                                                      \
                                   Bblock                                                                                               \
                                   EGAL(recuperer_les_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8,FAUX);                                        \
                                   Eblock                                                                                               \
                              ETes                                                                                                      \
                                                                                                                                        \
                              INCR(index_definition_arbitraire,pas_de_parcours_d_un_fichier);                                           \
                                                                                                                                        \
                              Test(IFGT(index_definition_arbitraire,DERNIER_ELEMENT_D_UN_FICHIER))                                      \
                                   Bblock                                                                                               \
                                   EGAL(index_definition_arbitraire,PREMIER_ELEMENT_D_UN_FICHIER);                                      \
                                   EGAL(recuperer_les_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8,FAUX);                                        \
                                   Eblock                                                                                               \
                              ATes                                                                                                      \
                                   Bblock                                                                                               \
                                   Eblock                                                                                               \
                              ETes                                                                                                      \
                              Eblock                                                                                                    \
                         ETan                                                                                                           \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         FDoIn(w1,minimum_de_w1_effectif,maximum_de_w1_effectif,pas_de_w1_effectif)                                     \
                              Bblock                                                                                                    \
                              DEFV(Int,INIT(echantillonnage_courant_de_w2                                                               \
                                           ,translation_de_l_echantillonnage_de_w2                                                      \
                                            )                                                                                           \
                                   );                                                                                                   \
                                        /* Afin de gerer l'echantillonnage de 'w2'.                                                  */ \
                                                                                                                                        \
                              FDoIn(w2,minimum_de_w2_effectif,maximum_de_w2_effectif,pas_de_w2_effectif)                                \
                                   Bblock                                                                                               \
                                   DEFV(Int,INIT(echantillonnage_courant_de_w3                                                          \
                                                ,translation_de_l_echantillonnage_de_w3                                                 \
                                                 )                                                                                      \
                                        );                                                                                              \
                                        /* Afin de gerer l'echantillonnage de 'w3'.                                                  */ \
                                                                                                                                        \
                                   FDoIn(w3,minimum_de_w3_effectif,maximum_de_w3_effectif,pas_de_w3_effectif)                           \
                                        Bblock                                                                                          \
                                        DEFV(Int,INIT(echantillonnage_courant_de_w4                                                     \
                                                     ,translation_de_l_echantillonnage_de_w4                                            \
                                                      )                                                                                 \
                                             );                                                                                         \
                                        /* Afin de gerer l'echantillonnage de 'w4'.                                                  */ \
                                                                                                                                        \
                                        FDoIn(w4,minimum_de_w4_effectif,maximum_de_w4_effectif,pas_de_w4_effectif)                      \
                                             Bblock                                                                                     \
                                             DEFV(Int,INIT(echantillonnage_courant_de_w5                                                \
                                                          ,translation_de_l_echantillonnage_de_w5                                       \
                                                           )                                                                            \
                                                  );                                                                                    \
                                        /* Afin de gerer l'echantillonnage de 'w5'.                                                  */ \
                                                                                                                                        \
                                             FDoIn(w5,minimum_de_w5_effectif,maximum_de_w5_effectif,pas_de_w5_effectif)                 \
                                                  Bblock                                                                                \
                                                  DEFV(Int,INIT(echantillonnage_courant_de_w6                                           \
                                                               ,translation_de_l_echantillonnage_de_w6                                  \
                                                                )                                                                       \
                                                       );                                                                               \
                                        /* Afin de gerer l'echantillonnage de 'w6'.                                                  */ \
                                                                                                                                        \
                                                  FDoIn(w6,minimum_de_w6_effectif,maximum_de_w6_effectif,pas_de_w6_effectif)            \
                                                       Bblock                                                                           \
                                                       DEFV(Int,INIT(echantillonnage_courant_de_w7                                      \
                                                                    ,translation_de_l_echantillonnage_de_w7                             \
                                                                     )                                                                  \
                                                            );                                                                          \
                                        /* Afin de gerer l'echantillonnage de 'w7'.                                                  */ \
                                                                                                                                        \
                                                       FDoIn(w7,minimum_de_w7_effectif,maximum_de_w7_effectif,pas_de_w7_effectif)       \
                                                            Bblock                                                                      \
                                                            DEFV(Int,INIT(echantillonnage_courant_de_w8                                 \
                                                                         ,translation_de_l_echantillonnage_de_w8                        \
                                                                          )                                                             \
                                                                 );                                                                     \
                                        /* Afin de gerer l'echantillonnage de 'w8'.                                                  */ \
                                                                                                                                        \
                                                            FDoIn(w8,minimum_de_w8_effectif,maximum_de_w8_effectif,pas_de_w8_effectif)  \
                                                                 Bblock                                                                 \
                                                                 GENERATION_DU_POINT_w1w2w3w4w5w6w7w8_COURANT(Fx,Fy,Fz                  \
                                                                                                             ,calcul_point_courant      \
                                                                                                             ,sequence_de_generation    \
                                                                                                              );                        \
                                                                                                                                        \
                                                                 INCR(echantillonnage_courant_de_w8,I);                                 \
                                        /* Gestion de l'echantillonnage de 'w8'.                                                     */ \
                                                                 Eblock                                                                 \
                                                            EFDoI                                                                       \
                                                                                                                                        \
                                                            INCR(echantillonnage_courant_de_w7,I);                                      \
                                        /* Gestion de l'echantillonnage de 'w7'.                                                     */ \
                                                            Eblock                                                                      \
                                                       EFDoI                                                                            \
                                                                                                                                        \
                                                       INCR(echantillonnage_courant_de_w6,I);                                           \
                                        /* Gestion de l'echantillonnage de 'w6'.                                                     */ \
                                                       Eblock                                                                           \
                                                  EFDoI                                                                                 \
                                                                                                                                        \
                                                  INCR(echantillonnage_courant_de_w5,I);                                                \
                                        /* Gestion de l'echantillonnage de 'w5'.                                                     */ \
                                                  Eblock                                                                                \
                                             EFDoI                                                                                      \
                                                                                                                                        \
                                             INCR(echantillonnage_courant_de_w4,I);                                                     \
                                        /* Gestion de l'echantillonnage de 'w4'.                                                     */ \
                                             Eblock                                                                                     \
                                        EFDoI                                                                                           \
                                                                                                                                        \
                                        INCR(echantillonnage_courant_de_w3,I);                                                          \
                                        /* Gestion de l'echantillonnage de 'w3'.                                                     */ \
                                        Eblock                                                                                          \
                                   EFDoI                                                                                                \
                                                                                                                                        \
                                   INCR(echantillonnage_courant_de_w2,I);                                                               \
                                        /* Gestion de l'echantillonnage de 'w2'.                                                     */ \
                                   Eblock                                                                                               \
                              EFDoI                                                                                                     \
                                                                                                                                        \
                              INCR(echantillonnage_courant_de_w1,I);                                                                    \
                                        /* Gestion de l'echantillonnage de 'w1'.                                                     */ \
                              Eblock                                                                                                    \
                         EFDoI                                                                                                          \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Eblock                                                                                                              \
                                        /* Calcul et visualisation generale de l'hyper-hyper-volume pour un instant donne.           */

#define   LISTER_EVENTUELLEMENT_LES_COORDONNEES_w1_w2_w3_w4_w5_w6_w7_w8_DES_POINTS                                                      \
                    Bblock                                                                                                              \
                    Test(IFET(IL_FAUT(lister_la_liste_des_points)                                                                       \
                             ,IL_FAUT(lister_les_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8_des_points)                                        \
                              )                                                                                                         \
                         )                                                                                                              \
                         Bblock                                                                                                         \
                         Test(IFET(IZGT(rayon_de_visualisation)                                                                         \
                                  ,IFOU(EST_VRAI(les_trois_les_differentielles_peuvent_etre_nulles)                                     \
                                       ,IFET(EST_FAUX(les_trois_les_differentielles_peuvent_etre_nulles)                                \
                                            ,IFOU(IL_NE_FAUT_PAS(renormaliser_arbitrairement_derivees)                                  \
                                                 ,IFET(IL_FAUT(renormaliser_arbitrairement_derivees)                                    \
                                                      ,I3OU(IZNE(dcx)                                                                   \
                                                           ,IZNE(dcy)                                                                   \
                                                           ,IZNE(dcz)                                                                   \
                                                            )                                                                           \
                                                       )                                                                                \
                                                  )                                                                                     \
                                             )                                                                                          \
                                        )                                                                                               \
                                   )                                                                                                    \
                              )                                                                                                         \
                              Bblock                                                                                                    \
                              CAL2(Prin8(" W1=%+.^^^ W2=%+.^^^ W3=%+.^^^ W4=%+.^^^ W5=%+.^^^ W6=%+.^^^ W7=%+.^^^ W8=%+.^^^   "          \
                                        ,w1_effectif                                                                                    \
                                        ,w2_effectif                                                                                    \
                                        ,w3_effectif                                                                                    \
                                        ,w4_effectif                                                                                    \
                                        ,w5_effectif                                                                                    \
                                        ,w6_effectif                                                                                    \
                                        ,w7_effectif                                                                                    \
                                        ,w8_effectif                                                                                    \
                                         )                                                                                              \
                                   );                                                                                                   \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                    Eblock                                                                                                              \
                                        /* Listage des coordonnees {w1,w2,w3,w4,w5,w6,w7,w8} des points...                           */

#define   GENER_HYPER_HYPER_VOLUME_SANS_DIFFERENTIATION(Fx,Fy,Fz,calcul_point_courant)                                                  \
                    Bblock                                                                                                              \
                    DEFV(Float,INIT(d_w1,FLOT__UNDEF));                                                                                 \
                    DEFV(Float,INIT(d_w2,FLOT__UNDEF));                                                                                 \
                    DEFV(Float,INIT(d_w3,FLOT__UNDEF));                                                                                 \
                    DEFV(Float,INIT(d_w4,FLOT__UNDEF));                                                                                 \
                    DEFV(Float,INIT(d_w5,FLOT__UNDEF));                                                                                 \
                    DEFV(Float,INIT(d_w6,FLOT__UNDEF));                                                                                 \
                    DEFV(Float,INIT(d_w7,FLOT__UNDEF));                                                                                 \
                    DEFV(Float,INIT(d_w8,FLOT__UNDEF));                                                                                 \
                                                                                                                                        \
                    gGENER_HYPER_HYPER_VOLUME                                                                                           \
                        (Fx,Fy,Fz                                                                                                       \
                        ,calcul_point_courant                                                                                           \
                        ,BLOC(Bblock                                                                                                    \
                              RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES;                                                    \
                                        /* On notera que cette recherche n'est pas conditionnee par 'editer_les_extrema', car les    */ \
                                        /* extrema pourraient etre utilises pour la visualisation...                                 */ \
                                                                                                                                        \
                              BLOC(calcul_point_courant);                                                                               \
                                        /* Calculs eventuels d'informations specifiques au point courant...                          */ \
                                                                                                                                        \
                              PERMUTATION_EVENTUELLE_DES_COORDONNEES_ET_DES_DIFFERENTIELLES;                                            \
                                                                                                                                        \
                              LISTER_EVENTUELLEMENT_LES_COORDONNEES_w1_w2_w3_w4_w5_w6_w7_w8_DES_POINTS;                                 \
                                                                                                                                        \
                              CALS(memorisation_1_point_06(SOUS(cx,Xcentre_ESPACE)                                                      \
                                                          ,SOUS(cy,Ycentre_ESPACE)                                                      \
                                                          ,SOUS(cz,Zcentre_ESPACE)                                                      \
                                                          ,dcx                                                                          \
                                                          ,dcy                                                                          \
                                                          ,dcz                                                                          \
                                                           )                                                                            \
                                   );                                                                                                   \
                                        /* Memorisation du point courant.                                                            */ \
                                                                                                                                        \
                              Eblock                                                                                                    \
                              )                                                                                                         \
                         )                                                                                                              \
                    Eblock                                                                                                              \
                                        /* Calcul et visualisation de l'hyper-hyper-volume pour un instant donne sans                */
                                        /* differentiation.                                                                          */

#define   GENER_HYPER_HYPER_VOLUME_AVEC_DIFFERENCES____(Fx,Fy,Fz,calcul_point_courant)                                                  \
                    Bblock                                                                                                              \
                    DEFV(Float,INIT(d_w1,FLOT__UNDEF));                                                                                 \
                    DEFV(Float,INIT(d_w2,FLOT__UNDEF));                                                                                 \
                    DEFV(Float,INIT(d_w3,FLOT__UNDEF));                                                                                 \
                    DEFV(Float,INIT(d_w4,FLOT__UNDEF));                                                                                 \
                    DEFV(Float,INIT(d_w5,FLOT__UNDEF));                                                                                 \
                    DEFV(Float,INIT(d_w6,FLOT__UNDEF));                                                                                 \
                    DEFV(Float,INIT(d_w7,FLOT__UNDEF));                                                                                 \
                    DEFV(Float,INIT(d_w8,FLOT__UNDEF));                                                                                 \
                                                                                                                                        \
                    gGENER_HYPER_HYPER_VOLUME                                                                                           \
                        (Fx,Fy,Fz                                                                                                       \
                        ,calcul_point_courant                                                                                           \
                        ,BLOC(Bblock                                                                                                    \
                              DEFV(Float,INIT(differentielle_x,FLOT__UNDEF));                                                           \
                              DEFV(Float,INIT(differentielle_y,FLOT__UNDEF));                                                           \
                              DEFV(Float,INIT(differentielle_z,FLOT__UNDEF));                                                           \
                                        /* Definition des trois differentielles.                                                     */ \
                                                                                                                                        \
                              Test(IL_FAUT(utiliser_les_differentielles_ROUGE_VERTE_BLEUE))                                             \
                                   Bblock                                                                                               \
                                   EGAL(differentielle_x,differentielle_ROUGE);                                                         \
                                   EGAL(differentielle_y,differentielle_VERTE);                                                         \
                                   EGAL(differentielle_z,differentielle_BLEUE);                                                         \
                                                                                                                                        \
                                   EGAL(utiliser_les_differentielles_ROUGE_VERTE_BLEUE,FAUX);                                           \
                                        /* Ne sert a rien, mais c'est plus sur...                                                    */ \
                                   Eblock                                                                                               \
                              ATes                                                                                                      \
                                   Bblock                                                                                               \
                                   EGAL(differentielle_x                                                                                \
                                       ,DERIVATION_PARTIELLE(Fx(SOUS(w1_effectif                                                        \
                                                                    ,MUL2(facteur_x_de_pas_de_w1,pas_w1_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,SOUS(w2_effectif                                                        \
                                                                    ,MUL2(facteur_x_de_pas_de_w2,pas_w2_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,SOUS(w3_effectif                                                        \
                                                                    ,MUL2(facteur_x_de_pas_de_w3,pas_w3_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,SOUS(w4_effectif                                                        \
                                                                    ,MUL2(facteur_x_de_pas_de_w4,pas_w4_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,SOUS(w5_effectif                                                        \
                                                                    ,MUL2(facteur_x_de_pas_de_w5,pas_w5_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,SOUS(w6_effectif                                                        \
                                                                    ,MUL2(facteur_x_de_pas_de_w6,pas_w6_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,SOUS(w7_effectif                                                        \
                                                                    ,MUL2(facteur_x_de_pas_de_w7,pas_w7_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,SOUS(w8_effectif                                                        \
                                                                    ,MUL2(facteur_x_de_pas_de_w8,pas_w8_de_differentiation)             \
                                                                     )                                                                  \
                                                                )                                                                       \
                                                            ,Fx(ADD2(w1_effectif                                                        \
                                                                    ,MUL2(facteur_x_de_pas_de_w1,pas_w1_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,ADD2(w2_effectif                                                        \
                                                                    ,MUL2(facteur_x_de_pas_de_w2,pas_w2_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,ADD2(w3_effectif                                                        \
                                                                    ,MUL2(facteur_x_de_pas_de_w3,pas_w3_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,ADD2(w4_effectif                                                        \
                                                                    ,MUL2(facteur_x_de_pas_de_w4,pas_w4_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,ADD2(w5_effectif                                                        \
                                                                    ,MUL2(facteur_x_de_pas_de_w5,pas_w5_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,ADD2(w6_effectif                                                        \
                                                                    ,MUL2(facteur_x_de_pas_de_w6,pas_w6_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,ADD2(w7_effectif                                                        \
                                                                    ,MUL2(facteur_x_de_pas_de_w7,pas_w7_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,ADD2(w8_effectif                                                        \
                                                                    ,MUL2(facteur_x_de_pas_de_w8,pas_w8_de_differentiation)             \
                                                                     )                                                                  \
                                                                )                                                                       \
                                                            ,DOUB(GpytF8D(MUL2(facteur_x_de_pas_de_w1,pas_w1_de_differentiation)        \
                                                                         ,MUL2(facteur_x_de_pas_de_w2,pas_w2_de_differentiation)        \
                                                                         ,MUL2(facteur_x_de_pas_de_w3,pas_w3_de_differentiation)        \
                                                                         ,MUL2(facteur_x_de_pas_de_w4,pas_w4_de_differentiation)        \
                                                                         ,MUL2(facteur_x_de_pas_de_w5,pas_w5_de_differentiation)        \
                                                                         ,MUL2(facteur_x_de_pas_de_w6,pas_w6_de_differentiation)        \
                                                                         ,MUL2(facteur_x_de_pas_de_w7,pas_w7_de_differentiation)        \
                                                                         ,MUL2(facteur_x_de_pas_de_w8,pas_w8_de_differentiation)        \
                                                                          )                                                             \
                                                                  )                                                                     \
                                                             )                                                                          \
                                        );                                                                                              \
                                   EGAL(differentielle_y                                                                                \
                                       ,DERIVATION_PARTIELLE(Fy(SOUS(w1_effectif                                                        \
                                                                    ,MUL2(facteur_y_de_pas_de_w1,pas_w1_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,SOUS(w2_effectif                                                        \
                                                                    ,MUL2(facteur_y_de_pas_de_w2,pas_w2_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,SOUS(w3_effectif                                                        \
                                                                    ,MUL2(facteur_y_de_pas_de_w3,pas_w3_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,SOUS(w4_effectif                                                        \
                                                                    ,MUL2(facteur_y_de_pas_de_w4,pas_w4_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,SOUS(w5_effectif                                                        \
                                                                    ,MUL2(facteur_y_de_pas_de_w5,pas_w5_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,SOUS(w6_effectif                                                        \
                                                                    ,MUL2(facteur_y_de_pas_de_w6,pas_w6_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,SOUS(w7_effectif                                                        \
                                                                    ,MUL2(facteur_y_de_pas_de_w7,pas_w7_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,SOUS(w8_effectif                                                        \
                                                                    ,MUL2(facteur_y_de_pas_de_w8,pas_w8_de_differentiation)             \
                                                                     )                                                                  \
                                                                )                                                                       \
                                                            ,Fy(ADD2(w1_effectif                                                        \
                                                                    ,MUL2(facteur_y_de_pas_de_w1,pas_w1_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,ADD2(w2_effectif                                                        \
                                                                    ,MUL2(facteur_y_de_pas_de_w2,pas_w2_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,ADD2(w3_effectif                                                        \
                                                                    ,MUL2(facteur_y_de_pas_de_w3,pas_w3_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,ADD2(w4_effectif                                                        \
                                                                    ,MUL2(facteur_y_de_pas_de_w4,pas_w4_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,ADD2(w5_effectif                                                        \
                                                                    ,MUL2(facteur_y_de_pas_de_w5,pas_w5_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,ADD2(w6_effectif                                                        \
                                                                    ,MUL2(facteur_y_de_pas_de_w6,pas_w6_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,ADD2(w7_effectif                                                        \
                                                                    ,MUL2(facteur_y_de_pas_de_w7,pas_w7_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,ADD2(w8_effectif                                                        \
                                                                    ,MUL2(facteur_y_de_pas_de_w8,pas_w8_de_differentiation)             \
                                                                     )                                                                  \
                                                                )                                                                       \
                                                            ,DOUB(GpytF8D(MUL2(facteur_y_de_pas_de_w1,pas_w1_de_differentiation)        \
                                                                         ,MUL2(facteur_y_de_pas_de_w2,pas_w2_de_differentiation)        \
                                                                         ,MUL2(facteur_y_de_pas_de_w3,pas_w3_de_differentiation)        \
                                                                         ,MUL2(facteur_y_de_pas_de_w4,pas_w4_de_differentiation)        \
                                                                         ,MUL2(facteur_y_de_pas_de_w5,pas_w5_de_differentiation)        \
                                                                         ,MUL2(facteur_y_de_pas_de_w6,pas_w6_de_differentiation)        \
                                                                         ,MUL2(facteur_y_de_pas_de_w7,pas_w7_de_differentiation)        \
                                                                         ,MUL2(facteur_y_de_pas_de_w8,pas_w8_de_differentiation)        \
                                                                          )                                                             \
                                                                  )                                                                     \
                                                             )                                                                          \
                                        );                                                                                              \
                                   EGAL(differentielle_z                                                                                \
                                       ,DERIVATION_PARTIELLE(Fz(SOUS(w1_effectif                                                        \
                                                                    ,MUL2(facteur_z_de_pas_de_w1,pas_w1_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,SOUS(w2_effectif                                                        \
                                                                    ,MUL2(facteur_z_de_pas_de_w2,pas_w2_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,SOUS(w3_effectif                                                        \
                                                                    ,MUL2(facteur_z_de_pas_de_w3,pas_w3_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,SOUS(w4_effectif                                                        \
                                                                    ,MUL2(facteur_z_de_pas_de_w4,pas_w4_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,SOUS(w5_effectif                                                        \
                                                                    ,MUL2(facteur_z_de_pas_de_w5,pas_w5_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,SOUS(w6_effectif                                                        \
                                                                    ,MUL2(facteur_z_de_pas_de_w6,pas_w6_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,SOUS(w7_effectif                                                        \
                                                                    ,MUL2(facteur_z_de_pas_de_w7,pas_w7_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,SOUS(w8_effectif                                                        \
                                                                    ,MUL2(facteur_z_de_pas_de_w8,pas_w8_de_differentiation)             \
                                                                     )                                                                  \
                                                                )                                                                       \
                                                            ,Fz(ADD2(w1_effectif                                                        \
                                                                    ,MUL2(facteur_z_de_pas_de_w1,pas_w1_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,ADD2(w2_effectif                                                        \
                                                                    ,MUL2(facteur_z_de_pas_de_w2,pas_w2_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,ADD2(w3_effectif                                                        \
                                                                    ,MUL2(facteur_z_de_pas_de_w3,pas_w3_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,ADD2(w4_effectif                                                        \
                                                                    ,MUL2(facteur_z_de_pas_de_w4,pas_w4_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,ADD2(w5_effectif                                                        \
                                                                    ,MUL2(facteur_z_de_pas_de_w5,pas_w5_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,ADD2(w6_effectif                                                        \
                                                                    ,MUL2(facteur_z_de_pas_de_w6,pas_w6_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,ADD2(w7_effectif                                                        \
                                                                    ,MUL2(facteur_z_de_pas_de_w7,pas_w7_de_differentiation)             \
                                                                     )                                                                  \
                                                               ,ADD2(w8_effectif                                                        \
                                                                    ,MUL2(facteur_z_de_pas_de_w8,pas_w8_de_differentiation)             \
                                                                     )                                                                  \
                                                                )                                                                       \
                                                            ,DOUB(GpytF8D(MUL2(facteur_z_de_pas_de_w1,pas_w1_de_differentiation)        \
                                                                         ,MUL2(facteur_z_de_pas_de_w2,pas_w2_de_differentiation)        \
                                                                         ,MUL2(facteur_z_de_pas_de_w3,pas_w3_de_differentiation)        \
                                                                         ,MUL2(facteur_z_de_pas_de_w4,pas_w4_de_differentiation)        \
                                                                         ,MUL2(facteur_z_de_pas_de_w5,pas_w5_de_differentiation)        \
                                                                         ,MUL2(facteur_z_de_pas_de_w6,pas_w6_de_differentiation)        \
                                                                         ,MUL2(facteur_z_de_pas_de_w7,pas_w7_de_differentiation)        \
                                                                         ,MUL2(facteur_z_de_pas_de_w8,pas_w8_de_differentiation)        \
                                                                          )                                                             \
                                                                  )                                                                     \
                                                             )                                                                          \
                                        );                                                                                              \
                                   Eblock                                                                                               \
                              ETes                                                                                                      \
                                                                                                                                        \
                              EGAL(dcx                                                                                                  \
                                  ,LIZ14(ponderation_de__x_____dans_dx,cx                                                               \
                                        ,ponderation_de__y_____dans_dx,cy                                                               \
                                        ,ponderation_de__z_____dans_dx,cz                                                               \
                                        ,ponderation_de__w1_____dans_dx,w1                                                              \
                                        ,ponderation_de__w2_____dans_dx,w2                                                              \
                                        ,ponderation_de__w3_____dans_dx,w3                                                              \
                                        ,ponderation_de__w4_____dans_dx,w4                                                              \
                                        ,ponderation_de__w5_____dans_dx,w5                                                              \
                                        ,ponderation_de__w6_____dans_dx,w6                                                              \
                                        ,ponderation_de__w7_____dans_dx,w7                                                              \
                                        ,ponderation_de__w8_____dans_dx,w8                                                              \
                                        ,ponderation_de_dx_____dans_dx,differentielle_x                                                 \
                                        ,ponderation_de_dy_____dans_dx,differentielle_y                                                 \
                                        ,ponderation_de_dz_____dans_dx,differentielle_z                                                 \
                                         )                                                                                              \
                                   );                                                                                                   \
                              EGAL(dcy                                                                                                  \
                                  ,LIZ14(ponderation_de__x_____dans_dy,cx                                                               \
                                        ,ponderation_de__y_____dans_dy,cy                                                               \
                                        ,ponderation_de__z_____dans_dy,cz                                                               \
                                        ,ponderation_de__w1_____dans_dy,w1                                                              \
                                        ,ponderation_de__w2_____dans_dy,w2                                                              \
                                        ,ponderation_de__w3_____dans_dy,w3                                                              \
                                        ,ponderation_de__w4_____dans_dy,w4                                                              \
                                        ,ponderation_de__w5_____dans_dy,w5                                                              \
                                        ,ponderation_de__w6_____dans_dy,w6                                                              \
                                        ,ponderation_de__w7_____dans_dy,w7                                                              \
                                        ,ponderation_de__w8_____dans_dy,w8                                                              \
                                        ,ponderation_de_dx_____dans_dy,differentielle_x                                                 \
                                        ,ponderation_de_dy_____dans_dy,differentielle_y                                                 \
                                        ,ponderation_de_dz_____dans_dy,differentielle_z                                                 \
                                         )                                                                                              \
                                   );                                                                                                   \
                              EGAL(dcz                                                                                                  \
                                  ,LIZ14(ponderation_de__x_____dans_dz,cx                                                               \
                                        ,ponderation_de__y_____dans_dz,cy                                                               \
                                        ,ponderation_de__z_____dans_dz,cz                                                               \
                                        ,ponderation_de__w1_____dans_dz,w1                                                              \
                                        ,ponderation_de__w2_____dans_dz,w2                                                              \
                                        ,ponderation_de__w3_____dans_dz,w3                                                              \
                                        ,ponderation_de__w4_____dans_dz,w4                                                              \
                                        ,ponderation_de__w5_____dans_dz,w5                                                              \
                                        ,ponderation_de__w6_____dans_dz,w6                                                              \
                                        ,ponderation_de__w7_____dans_dz,w7                                                              \
                                        ,ponderation_de__w8_____dans_dz,w8                                                              \
                                        ,ponderation_de_dx_____dans_dz,differentielle_x                                                 \
                                        ,ponderation_de_dy_____dans_dz,differentielle_y                                                 \
                                        ,ponderation_de_dz_____dans_dz,differentielle_z                                                 \
                                         )                                                                                              \
                                   );                                                                                                   \
                                        /* Calcul des couleurs utiles...                                                             */ \
                                                                                                                                        \
                              RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES;                                                    \
                                        /* On notera que cette recherche n'est pas conditionnee par 'editer_les_extrema', car les    */ \
                                        /* extrema pourraient etre utilises pour la visualisation...                                 */ \
                                                                                                                                        \
                              BLOC(calcul_point_courant);                                                                               \
                                        /* Calculs eventuels d'informations specifiques au point courant...                          */ \
                                                                                                                                        \
                              PERMUTATION_EVENTUELLE_DES_COORDONNEES_ET_DES_DIFFERENTIELLES;                                            \
                                                                                                                                        \
                              LISTER_EVENTUELLEMENT_LES_COORDONNEES_w1_w2_w3_w4_w5_w6_w7_w8_DES_POINTS;                                 \
                                                                                                                                        \
                              CALS(memorisation_1_point_06(SOUS(cx,Xcentre_ESPACE)                                                      \
                                                          ,SOUS(cy,Ycentre_ESPACE)                                                      \
                                                          ,SOUS(cz,Zcentre_ESPACE)                                                      \
                                                          ,dcx                                                                          \
                                                          ,dcy                                                                          \
                                                          ,dcz                                                                          \
                                                           )                                                                            \
                                   );                                                                                                   \
                                        /* Memorisation du point courant.                                                            */ \
                              Eblock                                                                                                    \
                              )                                                                                                         \
                         )                                                                                                              \
                    Eblock                                                                                                              \
                                        /* Calcul et visualisation de l'hyper-hyper-volume pour un instant donne avec                */ \
                                        /* differentiation numerique.                                                                */

#define   VISUALISATION_GENERALE_DE_L_HYPER_HYPER_VOLUME(calcul_des_parametres,calcul_de_l_hyper_hyper_volume,Fx,Fy,Fz,Pxyz)            \
                    Bblock                                                                                                              \
                    RE_INITIALISATION_DE_L_HORLOGE;                                                                                     \
                                        /* Depuis que le 19990512152305 a ete mis en place un :                                      */ \
                                        /*                                                                                           */ \
                                        /*        INCREMENTATION_DE_L_HORLOGE(dct);                                                  */ \
                                        /*                                                                                           */ \
                                        /* apres chaque image, l'initialisation de l'horloge ne doit plus etre faite pour chaque     */ \
                                        /* image, mais une seul fois, au tout debut...                                               */ \
                                                                                                                                        \
                    Komp(numero_de_la_periode_courante_de_la_simulation,nombre_de_periodes_de_la_simulation)                            \
                         Bblock                                                                                                         \
                         INITIALISATIONS_RELATIVES_A_CHAQUE_NOUVELLE_IMAGE(numero_de_la_periode_courante);                              \
                                        /* Initialisations necessaires avant le calcul et la generation de chaque nouvelle image.    */ \
                                                                                                                                        \
                         BLOC(calcul_des_parametres);                                                                                   \
                                        /* Calcul des parametres evoluant au cours de la simulation...                               */ \
                                                                                                                                        \
                         BLOC(calcul_de_l_hyper_hyper_volume);                                                                          \
                                        /* Calcul de l'hyper-hyper-volume proprement dit...                                          */ \
                                                                                                                                        \
                         GENERATION_D_UNE_IMAGE_ET_PASSAGE_A_LA_SUIVANTE(BLOC(VIDE;));                                                  \
                                        /* Generation de l'image courante...                                                         */ \
                                                                                                                                        \
                         INCREMENTATION_DE_L_HORLOGE(dct);                                                                              \
                         Eblock                                                                                                         \
                    EKom                                                                                                                \
                                                                                                                                        \
                    EDITION_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES;                                                                \
                                        /* Edition facultative des extrema des coordonnees.                                          */ \
                    Eblock                                                                                                              \
                                        /* Calcul et visualisation de l'hyper-hyper-volume avec evolution temporelle...              */

#define   VISUALISATION_DE_L_HYPER_HYPER_VOLUME_SANS_DIFFERENTIATION(calcul_des_parametres,Fx,Fy,Fz,Pxyz,calcul_pc)                     \
                    Bblock                                                                                                              \
                    VISUALISATION_GENERALE_DE_L_HYPER_HYPER_VOLUME(BLOC(calcul_des_parametres)                                          \
                                                                  ,BLOC(Bblock                                                          \
                                                                        GENER_HYPER_HYPER_VOLUME_SANS_DIFFERENTIATION(Fx,Fy,Fz          \
                                                                                                                     ,BLOC(calcul_pc)   \
                                                                                                                      );                \
                                                                        Eblock                                                          \
                                                                        )                                                               \
                                                                  ,Fx,Fy,Fz                                                             \
                                                                  ,Pxyz                                                                 \
                                                                   );                                                                   \
                    Eblock                                                                                                              \
                                        /* Calcul sans differentiation et visualisation de l'hyper-hyper-volume avec evolution       */
                                        /* temporelle.                                                                               */
#define   VISUALISATION_DE_L_HYPER_HYPER_VOLUME_AVEC_DIFFERENCES____(calcul_des_parametres,Fx,Fy,Fz,Pxyz,calcul_pc)                     \
                    Bblock                                                                                                              \
                    VISUALISATION_GENERALE_DE_L_HYPER_HYPER_VOLUME(BLOC(calcul_des_parametres)                                          \
                                                                  ,BLOC(Bblock                                                          \
                                                                        GENER_HYPER_HYPER_VOLUME_AVEC_DIFFERENCES____(Fx,Fy,Fz          \
                                                                                                                     ,BLOC(calcul_pc)   \
                                                                                                                      );                \
                                                                        Eblock                                                          \
                                                                        )                                                               \
                                                                  ,Fx,Fy,Fz                                                             \
                                                                  ,Pxyz                                                                 \
                                                                   );                                                                   \
                    Eblock                                                                                                              \
                                        /* Calcul avec differentiation et visualisation de l'hyper-hyper-volume avec evolution       */
                                        /* temporelle.                                                                               */



Copyright © Jean-François COLONNA, 2023-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2023-2024.