/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   D E S   V E R I F I C A T I O N S   D E   C O H E R E N C E  :                                     */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrq/nucleon.LY.1$I' :                                                                                          */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 1991??????????).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        Q U E L Q U E S   P E T I T E S   " C O R R E C T I O N S "   E V E N T U E L L E S  :                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#ifndef   RANDOMISER_LA_VISUALISATION_DES_PARTICULES
#    define    RANDOMISER_LA_VISUALISATION_DES_PARTICULES                                                                               \
                         LUNDEF
DEFV(Local,DEFV(Logical,INIT(randomiser_la_visualisation_des_particules,RANDOMISER_LA_VISUALISATION_DES_PARTICULES)));
                                        /* Inutilise, mais du au choix entre '$xrq/nucleon.LS.1$I' et '$xrq/nucleon.LS.2$I'.         */
#Aifndef  RANDOMISER_LA_VISUALISATION_DES_PARTICULES
#Eifndef  RANDOMISER_LA_VISUALISATION_DES_PARTICULES

#ifndef   RAYON_INTERIEUR_RELATIF_D_UNE_PARTICULE
#    define    RAYON_INTERIEUR_RELATIF_D_UNE_PARTICULE                                                                                  \
                         FLOT__UNDEF
DEFV(Local,DEFV(Float,INIT(rayon_interieur_relatif_d_une_particule,RAYON_INTERIEUR_RELATIF_D_UNE_PARTICULE)));
                                        /* Inutilise, mais du au choix entre '$xrq/nucleon.LS.1$I' et '$xrq/nucleon.LS.2$I'.         */
#Aifndef  RAYON_INTERIEUR_RELATIF_D_UNE_PARTICULE
#Eifndef  RAYON_INTERIEUR_RELATIF_D_UNE_PARTICULE

#ifndef   RAYON_EXTERIEUR_RELATIF_D_UNE_PARTICULE
#    define    RAYON_EXTERIEUR_RELATIF_D_UNE_PARTICULE                                                                                  \
                         FLOT__UNDEF
DEFV(Local,DEFV(Float,INIT(rayon_exterieur_relatif_d_une_particule,RAYON_EXTERIEUR_RELATIF_D_UNE_PARTICULE)));
                                        /* Inutilise, mais du au choix entre '$xrq/nucleon.LS.1$I' et '$xrq/nucleon.LS.2$I'.         */
#Aifndef  RAYON_EXTERIEUR_RELATIF_D_UNE_PARTICULE
#Eifndef  RAYON_EXTERIEUR_RELATIF_D_UNE_PARTICULE

#ifndef   SEUIL_DE_RANDOMISATION_DES_PARTICULES
#    define    SEUIL_DE_RANDOMISATION_DES_PARTICULES                                                                                    \
                         FLOT__UNDEF
DEFV(Local,DEFV(Float,INIT(seuil_de_randomisation_des_particules,SEUIL_DE_RANDOMISATION_DES_PARTICULES)));
                                        /* Inutilise, mais du au choix entre '$xrq/nucleon.LS.1$I' et '$xrq/nucleon.LS.2$I'.         */
#Aifndef  SEUIL_DE_RANDOMISATION_DES_PARTICULES
#Eifndef  SEUIL_DE_RANDOMISATION_DES_PARTICULES

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        Q U E L Q U E S   V E R I F I C A T I O N S   D E   C O H E R E N C E  :                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#if       (         (defined(SYSTEME_SG4D20G_IRIX))                                                                                     \
          ||        (defined(SYSTEME_SG4D25TG_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SG4D310VGX_IRIX))                                                                                  \
          ||        (defined(SYSTEME_SG4D35TG_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SG4D85GT_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND308_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND324_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND3GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND408_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND424_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND4GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND508_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND524_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND5GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND808_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND824_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND8GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGINDA08_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGINDA24_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGINDAGA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO200A1_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO200A2_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO200A4_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO25224_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO252VA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO252VN_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGPCM801_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGPCMA01_IRIX))                                                                                    \
           )
#    define    VERIFICATIONS_DES_FEUX                                                                                                   \
                         Bblock                                                                                                         \
                                        /* Etant donnees les nouvelles definitions des feux (voir 'v $xiii/files$DEF'), valider ces  */ \
                                        /* derniers n'a plus d'interet ; la sequence correspondante est donc supprimee...            */ \
                         Eblock
#Aif      (         (defined(SYSTEME_SG4D20G_IRIX))                                                                                     \
          ||        (defined(SYSTEME_SG4D25TG_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SG4D310VGX_IRIX))                                                                                  \
          ||        (defined(SYSTEME_SG4D35TG_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SG4D85GT_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND308_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND324_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND3GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND408_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND424_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND4GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND508_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND524_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND5GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND808_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND824_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND8GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGINDA08_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGINDA24_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGINDAGA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO200A1_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO200A2_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO200A4_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO25224_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO252VA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO252VN_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGPCM801_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGPCMA01_IRIX))                                                                                    \
           )
#    define    VERIFICATIONS_DES_FEUX                                                                                                   \
                         Bblock                                                                                                         \
                                        /* Etant donnees les nouvelles definitions des feux (voir 'v $xiii/files$DEF'), valider ces  */ \
                                        /* derniers n'a plus d'interet ; la sequence correspondante est donc supprimee...            */ \
                         Eblock
#Eif      (         (defined(SYSTEME_SG4D20G_IRIX))                                                                                     \
          ||        (defined(SYSTEME_SG4D25TG_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SG4D310VGX_IRIX))                                                                                  \
          ||        (defined(SYSTEME_SG4D35TG_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SG4D85GT_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND308_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND324_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND3GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND408_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND424_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND4GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND508_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND524_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND5GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND808_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND824_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND8GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGINDA08_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGINDA24_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGINDAGA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO200A1_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO200A2_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO200A4_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO25224_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO252VA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO252VN_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGPCM801_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGPCMA01_IRIX))                                                                                    \
           )

#ifdef    __VERSION__GENERATION_D_UN_NUCLEON
#    define    VERIFICATIONS_DES_VITESSES                                                                                               \
                         Bblock                                                                                                         \
                         Test(IFGE(longF3D(vitesse_initiale_du_quark_REEL_ROUGE),VITESSE_DE_LA_LUMIERE))                                \
                              Bblock                                                                                                    \
                              PRINT_ERREUR("la vitesse initiale du quark REEL ROUGE est [supra-]lumineuse");                            \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                                                                                                                                        \
                         Test(IFGE(longF3D(vitesse_initiale_du_quark_REEL_VERTE),VITESSE_DE_LA_LUMIERE))                                \
                              Bblock                                                                                                    \
                              PRINT_ERREUR("la vitesse initiale du quark REEL VERTE est [supra-]lumineuse");                            \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                                                                                                                                        \
                         Test(IFGE(longF3D(vitesse_initiale_du_quark_REEL_BLEUE),VITESSE_DE_LA_LUMIERE))                                \
                              Bblock                                                                                                    \
                              PRINT_ERREUR("la vitesse initiale du quark REEL BLEUE est [supra-]lumineuse");                            \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                         Eblock
#Aifdef   __VERSION__GENERATION_D_UN_NUCLEON
#Eifdef   __VERSION__GENERATION_D_UN_NUCLEON

#ifdef    __VERSION__GENERATION_D_UN_MESON
#    define    VERIFICATIONS_DES_VITESSES                                                                                               \
                         Bblock                                                                                                         \
                         Test(IFGE(longF3D(vitesse_initiale_du_quark_REEL),VITESSE_DE_LA_LUMIERE))                                      \
                              Bblock                                                                                                    \
                              PRINT_ERREUR("la vitesse initiale du quark REEL est [supra-]lumineuse");                                  \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                                                                                                                                        \
                         Test(IFGE(longF3D(vitesse_initiale_de_l_anti_quark_REEL),VITESSE_DE_LA_LUMIERE))                               \
                              Bblock                                                                                                    \
                              PRINT_ERREUR("la vitesse initiale de l'anti-quark REEL est [supra-]lumineuse");                           \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                         Eblock
#Aifdef   __VERSION__GENERATION_D_UN_MESON
#Eifdef   __VERSION__GENERATION_D_UN_MESON

#ifdef    __VERSION__GENERATION_D_UN_DI_ELECTRON
#    define    VERIFICATIONS_DES_VITESSES                                                                                               \
                         Bblock                                                                                                         \
                         Test(IFGE(longF3D(vitesse_initiale_de_l_electron_1_REEL),VITESSE_DE_LA_LUMIERE))                               \
                              Bblock                                                                                                    \
                              PRINT_ERREUR("la vitesse initiale de l'electron 1 REEL est [supra-]lumineuse");                           \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                                                                                                                                        \
                         Test(IFGE(longF3D(vitesse_initiale_de_l_electron_2_REEL),VITESSE_DE_LA_LUMIERE))                               \
                              Bblock                                                                                                    \
                              PRINT_ERREUR("la vitesse initiale de l'electron 2 REEL est [supra-]lumineuse");                           \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                         Test(IFGE(longF3D(vitesse_initiale_de_l_anti_electron_REEL),VITESSE_DE_LA_LUMIERE))                            \
                              Bblock                                                                                                    \
                              PRINT_ERREUR("la vitesse initiale de l'anti-electron REEL est [supra-]lumineuse");                        \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                                                                                                                                        \
                         Test(IFGE(longF3D(vitesse_initiale_du_neutrino_REEL),VITESSE_DE_LA_LUMIERE))                                   \
                              Bblock                                                                                                    \
                              PRINT_ERREUR("la vitesse initiale du neutrino REEL est [supra-]lumineuse");                               \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                         Eblock
#Aifdef   __VERSION__GENERATION_D_UN_DI_ELECTRON
#Eifdef   __VERSION__GENERATION_D_UN_DI_ELECTRON

#ifdef    __VERSION__GENERATION_DU_VIDE
#    define    VERIFICATIONS_DES_VITESSES                                                                                               \
                         Bblock                                                                                                         \
                         Eblock
#Aifdef   __VERSION__GENERATION_DU_VIDE
#Eifdef   __VERSION__GENERATION_DU_VIDE

#define   ___QUELQUES_VERIFICATIONS_AU_DEBUT_DE_LA_SIMULATION                                                                           \
                    Bblock                                                                                                              \
                                                                                                                                        \
                    VERIFICATIONS_DES_FEUX;                                                                                             \
                                                                                                                                        \
                    Test(IFOU(IFNE(pasX,PasX),IFNE(pasY,PasY)))                                                                         \
                         Bblock                                                                                                         \
                         PRINT_ERREUR("le sous-echantillonnage des images n'est pas possible");                                         \
                         EGAL(pasX,PasX);                                                                                               \
                         EGAL(pasY,PasY);                                                                                               \
                                        /* Et on corrige...                                                                          */ \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Test(IFOU(IFOU(IFNE(Xmin,Xmin_IMAGE),IFNE(Xmax,Xmax_IMAGE))                                                         \
                             ,IFOU(IFNE(Ymin,Ymin_IMAGE),IFNE(Ymax,Ymax_IMAGE))                                                         \
                              )                                                                                                         \
                         )                                                                                                              \
                         Bblock                                                                                                         \
                         PRINT_ERREUR("le format des images est incompatible avec le format de l'univers de la simulation");            \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Test(IFET(IL_FAUT(generer_les_trainees)                                                                             \
                             ,IFNE(numero_de_la_periode_courante,numero_de_la_premiere_periode_a_visualiser)                            \
                              )                                                                                                         \
                         )                                                                                                              \
                         Bblock                                                                                                         \
                         PRINT_ERREUR("il n'est pas possible de se repositionner et de calculer les trainees");                         \
                                        /* Malgre tout, on ne corrige pas, car en effet, cela peut servir quand meme...              */ \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Test(IFOU(IZLT(rayon_interieur_relatif_d_une_particule)                                                             \
                             ,IFGT(rayon_interieur_relatif_d_une_particule,rayon_exterieur_relatif_d_une_particule)                     \
                              )                                                                                                         \
                         )                                                                                                              \
                         Bblock                                                                                                         \
                         PRINT_ERREUR("les parametres de 'randomisation' sont incorrects");                                             \
                                        /* Malgre tout, on ne corrige pas, car en effet, cela peut servir quand meme...              */ \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Test(I3ET(IL_FAUT(generer_les_trainees)                                                                             \
                             ,IFEQ(mode_de_generation_des_trainees,CALCUL_STANDARD_DES_TRAINEES)                                        \
                             ,IFNE_a_peu_pres_relatif(facteur_d_attenuation_des_images                                                  \
                                                     ,COMP(facteur_d_attenuation_des_trainees)                                          \
                                                     ,FRA10(FRA10(FU))                                                                  \
                                                      )                                                                                 \
                              )                                                                                                         \
                         )                                                                                                              \
                         Bblock                                                                                                         \
                         PRINT_ATTENTION("les trainees risquent d'etre saturees");                                                      \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Test(IFEXff(nombre_de_points_du_noyau_de_convolution                                                                \
                               ,ABSENCE_DE_CONVOLUTION                                                                                  \
                               ,NOMBRE_MAXIMAL_DE_POINTS_DU_NOYAU_DE_CONVOLUTION                                                        \
                                )                                                                                                       \
                         )                                                                                                              \
                         Bblock                                                                                                         \
                         PRINT_ERREUR("le noyau de convolution est trop grand, il va etre corrige");                                    \
                         EGAL(nombre_de_points_du_noyau_de_convolution                                                                  \
                             ,MIN2(NOMBRE_MAXIMAL_DE_POINTS_DU_NOYAU_DE_CONVOLUTION                                                     \
                                  ,MAX2(ABSENCE_DE_CONVOLUTION                                                                          \
                                       ,nombre_de_points_du_noyau_de_convolution                                                        \
                                        )                                                                                               \
                                   )                                                                                                    \
                              );                                                                                                        \
                                        /* Lorsque le nombre de points du noyau de convolution est trop incorrect, on le corrige...  */ \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Test(I3OU(IFNE(NEGA(Xmin_ESPACE),Xmax_ESPACE)                                                                       \
                             ,IFNE(NEGA(Ymin_ESPACE),Ymax_ESPACE)                                                                       \
                             ,IFNE(NEGA(Zmin_ESPACE),Zmax_ESPACE)                                                                       \
                              )                                                                                                         \
                         )                                                                                                              \
                         Bblock                                                                                                         \
                         PRINT_ERREUR("la definition de l'espace doit etre symetrique par rapport a l'origine");                        \
                                        /* Cette validation est liee, en particulier, a la constante 'TRANSLATION_DE_CENTRAGE'.      */ \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    VERIFICATIONS_DES_VITESSES;                                                                                         \
                                                                                                                                        \
                    Test(IFLT(adolescence_d_une_particule                                                                               \
                             ,DIVI(voisinage_1_D1_D2                                                                                    \
                                  ,MIN2(VITESSE_MOYENNE_DES_QUARKS_ET_DES_ANTI_QUARKS                                                   \
                                       ,VITESSE_DES_GLUONS                                                                              \
                                        )                                                                                               \
                                   )                                                                                                    \
                              )                                                                                                         \
                         )                                                                                                              \
                         Bblock                                                                                                         \
                         PRINT_ATTENTION("des particules emises risquent d'etre immediatement reabsorbees");                            \
                                        /* Cette validation est liee aux tentatives d'evitement des reabsorbtions immediates de      */ \
                                        /* particules, immediatement apres une emission...                                           */ \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Test(IFLT(voisinage_1_D1_D2                                                                                         \
                             ,DISTANCE_PARCOURUE(MAX2(VITESSE_MOYENNE_DES_QUARKS_ET_DES_ANTI_QUARKS                                     \
                                                     ,VITESSE_DES_GLUONS                                                                \
                                                      )                                                                                 \
                                                ,PERIODE_COURANTE_DE_L_HORLOGE                                                          \
                                                 )                                                                                      \
                              )                                                                                                         \
                         )                                                                                                              \
                         Bblock                                                                                                         \
                         PRINT_ATTENTION("des collisions du type 'cible visee' risquent d'etre manquees");                              \
                                        /* En effet, lorsqu'une particule (gluon en general) va a la rencontre d'une particule       */ \
                                        /* cible a la suite de 'RECHERCHE_D_UNE_PARTICULE(...)', la collision prevue va avoir lieu   */ \
                                        /* a un instant 'Tc' tres precis, et il n'y a que peu de chances que 'Tc' corresponde a un   */ \
                                        /* un instant d'echantillonnage temporel de la simulation (c'est-a-dire qu'en general, 'Tc'  */ \
                                        /* n'est pas un multiple de la periode 'PERIODE_COURANTE_DE_L_HORLOGE'). Dans ces conditions */ \
                                        /* si 'voisinage_1_D1_D2' est trop petit, il y a de fortes chances que les deux particules   */ \
                                        /* "collisionnables" ne soient jamais vues suffisamment proches l'une de l'autre pour que la */ \
                                        /* collision soit reellement detectee par 'COLLISION(...)'.                                  */ \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Test(IFOU(IFGE(periode_1_de_modulation_de_la_luminance,periode_2_de_modulation_de_la_luminance)                     \
                             ,IFOU(IFGE(periode_2_de_modulation_de_la_luminance,periode_3_de_modulation_de_la_luminance)                \
                                  ,IFOU(IFGE(periode_3_de_modulation_de_la_luminance,periode_4_de_modulation_de_la_luminance)           \
                                       ,IFOU(IFGE(periode_4_de_modulation_de_la_luminance,periode_5_de_modulation_de_la_luminance)      \
                                            ,TOUJOURS_FAUX                                                                              \
                                             )                                                                                          \
                                        )                                                                                               \
                                   )                                                                                                    \
                              )                                                                                                         \
                         )                                                                                                              \
                         Bblock                                                                                                         \
                         PRINT_ERREUR("les periodes de modulation de luminance sont mal ordonnees (il faut : np1<np2<np3<np4<np5)");    \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Test(IFOU(IFGE(ASD1(periode_1_de_translation_de_l_origine,x)                                                        \
                                  ,ASD1(periode_2_de_translation_de_l_origine,x)                                                        \
                                   )                                                                                                    \
                             ,IFOU(IFGE(ASD1(periode_2_de_translation_de_l_origine,x)                                                   \
                                       ,ASD1(periode_3_de_translation_de_l_origine,x)                                                   \
                                        )                                                                                               \
                                  ,IFOU(IFGE(ASD1(periode_3_de_translation_de_l_origine,x)                                              \
                                            ,ASD1(periode_4_de_translation_de_l_origine,x)                                              \
                                             )                                                                                          \
                                       ,IFOU(IFGE(ASD1(periode_4_de_translation_de_l_origine,x)                                         \
                                                 ,ASD1(periode_5_de_translation_de_l_origine,x)                                         \
                                                  )                                                                                     \
                                            ,TOUJOURS_FAUX                                                                              \
                                             )                                                                                          \
                                        )                                                                                               \
                                   )                                                                                                    \
                              )                                                                                                         \
                         )                                                                                                              \
                         Bblock                                                                                                         \
                         PRINT_ERREUR("les periodes de translation 'X' de 'O' sont mal ordonnees (il faut : np1<np2<np3<np4<np5)");     \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Test(IFOU(IFGE(ASD1(periode_1_de_translation_de_l_origine,y)                                                        \
                                  ,ASD1(periode_2_de_translation_de_l_origine,y)                                                        \
                                   )                                                                                                    \
                             ,IFOU(IFGE(ASD1(periode_2_de_translation_de_l_origine,y)                                                   \
                                       ,ASD1(periode_3_de_translation_de_l_origine,y)                                                   \
                                        )                                                                                               \
                                  ,IFOU(IFGE(ASD1(periode_3_de_translation_de_l_origine,y)                                              \
                                            ,ASD1(periode_4_de_translation_de_l_origine,y)                                              \
                                             )                                                                                          \
                                       ,IFOU(IFGE(ASD1(periode_4_de_translation_de_l_origine,y)                                         \
                                                 ,ASD1(periode_5_de_translation_de_l_origine,y)                                         \
                                                  )                                                                                     \
                                            ,TOUJOURS_FAUX                                                                              \
                                             )                                                                                          \
                                        )                                                                                               \
                                   )                                                                                                    \
                              )                                                                                                         \
                         )                                                                                                              \
                         Bblock                                                                                                         \
                         PRINT_ERREUR("les periodes de translation 'Y' de 'O' sont mal ordonnees (il faut : np1<np2<np3<np4<np5)");     \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Test(IFOU(IFGE(ASD1(periode_1_de_translation_de_l_origine,z)                                                        \
                                  ,ASD1(periode_2_de_translation_de_l_origine,z)                                                        \
                                   )                                                                                                    \
                             ,IFOU(IFGE(ASD1(periode_2_de_translation_de_l_origine,z)                                                   \
                                       ,ASD1(periode_3_de_translation_de_l_origine,z)                                                   \
                                        )                                                                                               \
                                  ,IFOU(IFGE(ASD1(periode_3_de_translation_de_l_origine,z)                                              \
                                            ,ASD1(periode_4_de_translation_de_l_origine,z)                                              \
                                             )                                                                                          \
                                       ,IFOU(IFGE(ASD1(periode_4_de_translation_de_l_origine,z)                                         \
                                                 ,ASD1(periode_5_de_translation_de_l_origine,z)                                         \
                                                  )                                                                                     \
                                            ,TOUJOURS_FAUX                                                                              \
                                             )                                                                                          \
                                        )                                                                                               \
                                   )                                                                                                    \
                              )                                                                                                         \
                         )                                                                                                              \
                         Bblock                                                                                                         \
                         PRINT_ERREUR("les periodes de translation 'Z' de 'O' sont mal ordonnees (il faut : np1<np2<np3<np4<np5)");     \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Test(IFOU(IFGE(periode_1_du_zoom,periode_2_du_zoom)                                                                 \
                             ,IFOU(IFGE(periode_2_du_zoom,periode_3_du_zoom)                                                            \
                                  ,IFOU(IFGE(periode_3_du_zoom,periode_4_du_zoom)                                                       \
                                       ,IFOU(IFGE(periode_4_du_zoom,periode_5_du_zoom)                                                  \
                                            ,TOUJOURS_FAUX                                                                              \
                                             )                                                                                          \
                                        )                                                                                               \
                                   )                                                                                                    \
                              )                                                                                                         \
                         )                                                                                                              \
                         Bblock                                                                                                         \
                         PRINT_ERREUR("les periodes de zoom sont mal ordonnees (il faut : np1<np2<np3<np4<np5)");                       \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Test(IFOU(IFGE(periode_1_autour_de_OX,periode_2_autour_de_OX)                                                       \
                             ,IFOU(IFGE(periode_2_autour_de_OX,periode_3_autour_de_OX)                                                  \
                                  ,IFOU(IFGE(periode_3_autour_de_OX,periode_4_autour_de_OX)                                             \
                                       ,IFOU(IFGE(periode_4_autour_de_OX,periode_5_autour_de_OX)                                        \
                                            ,TOUJOURS_FAUX                                                                              \
                                             )                                                                                          \
                                        )                                                                                               \
                                   )                                                                                                    \
                              )                                                                                                         \
                         )                                                                                                              \
                         Bblock                                                                                                         \
                         PRINT_ERREUR("les periodes de rotation autour de 'OX' sont mal ordonnees (il faut : np1<np2<np3<np4<np5)");    \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Test(IFOU(IFGE(periode_1_autour_de_OY,periode_2_autour_de_OY)                                                       \
                             ,IFOU(IFGE(periode_2_autour_de_OY,periode_3_autour_de_OY)                                                  \
                                  ,IFOU(IFGE(periode_3_autour_de_OY,periode_4_autour_de_OY)                                             \
                                       ,IFOU(IFGE(periode_4_autour_de_OY,periode_5_autour_de_OY)                                        \
                                            ,TOUJOURS_FAUX                                                                              \
                                             )                                                                                          \
                                        )                                                                                               \
                                   )                                                                                                    \
                              )                                                                                                         \
                         )                                                                                                              \
                         Bblock                                                                                                         \
                         PRINT_ERREUR("les periodes de rotation autour de 'OY' sont mal ordonnees (il faut : np1<np2<np3<np4<np5)");    \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Test(IFOU(IFGE(periode_1_autour_de_OZ,periode_2_autour_de_OZ)                                                       \
                             ,IFOU(IFGE(periode_2_autour_de_OZ,periode_3_autour_de_OZ)                                                  \
                                  ,IFOU(IFGE(periode_3_autour_de_OZ,periode_4_autour_de_OZ)                                             \
                                       ,IFOU(IFGE(periode_4_autour_de_OZ,periode_5_autour_de_OZ)                                        \
                                            ,TOUJOURS_FAUX                                                                              \
                                             )                                                                                          \
                                        )                                                                                               \
                                   )                                                                                                    \
                              )                                                                                                         \
                         )                                                                                                              \
                         Bblock                                                                                                         \
                         PRINT_ERREUR("les periodes de rotation autour de 'OZ' sont mal ordonnees (il faut : np1<np2<np3<np4<np5)");    \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Eblock                                                                                                              \
                                        /* Quelques verifications sur la coherence des parametres au debut de la simulation...       */

BFonctionI

DEFV(LoF,GENERE__Fonction__OPT(QUELQUES_VERIFICATIONS_AU_DEBUT_DE_LA_SIMULATION,U,___QUELQUES_VERIFICATIONS_AU_DEBUT_DE_LA_SIMULATION))

EFonctionI

#define   ___QUELQUES_VERIFICATIONS_AU_COURS_DE_LA_SIMULATION                                                                           \
                    Bblock                                                                                                              \
                                                                                                                                        \
                    Test(IFNE(nombre_instantane_de_particules                                                                           \
                             ,ADD4(ADD2(nombre_instantane_de_quarks_REELs,nombre_instantane_d_anti_quarks_REELs)                        \
                                  ,ADD2(nombre_instantane_de_quarks_VIRTUELs,nombre_instantane_d_anti_quarks_VIRTUELs)                  \
                                  ,nombre_instantane_de_gluons_REELs                                                                    \
                                  ,nombre_instantane_de_gluons_VIRTUELs                                                                 \
                                   )                                                                                                    \
                              )                                                                                                         \
                         )                                                                                                              \
                         Bblock                                                                                                         \
                         PRINT_ERREUR("le nombre de particules est incoherent");                                                        \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Eblock                                                                                                              \
                                        /* Quelques verifications sur la coherence des variables au cours de la simulation...        */

BFonctionI

DEFV(LoF,GENERE__Fonction__OPT(QUELQUES_VERIFICATIONS_AU_COURS_DE_LA_SIMULATION,U,___QUELQUES_VERIFICATIONS_AU_COURS_DE_LA_SIMULATION))

EFonctionI



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