/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        T E S T   D E   L A   G E N E R A T I O N   D E S   C H A M P S   " T R E F L E "                                          */
/*        E T   " T R O I S - G A U S S I E N S "   T R A N S L A T A B L E S  :                                                     */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                         o                                                                                                         */
/*                                                      *        ..                                                                  */
/*                                            o          .. .   **   **                                                              */
/*                                   :  oo  **:::    **    *. .. * *.....  **                                                        */
/*                                  --::+ .##   ::**..**..#*.**..**...      **                                                       */
/*                                      o --*--*++.....*...**..*.* ..                                                                */
/*                          oo         --  .+..oo**..*.....#....*... **** .                                                          */
/*                     ++     :   +oo:..#oo:oo-+ ..**..** ***..****... ..*.. ..                                                      */
/*                      --   :  -#:   +o*:-#+::--++oo      .. ..**.****.#**                                                          */
/*                            oo#*oo-+..+::*+::o++           .* ...***.. *#                                                          */
/*                       ::#oo   ooo:::+:*-..                 ***..*****....*                                                        */
/*                       oo :  oo::ooo::                        .**...*o*.oo++*oo                                                    */
/*                    ::ooo : #:oo::::: o                     :..oo::.#::: -..  :                                                    */
/*                     oo:o :oo:ooo:o:::                    oo o  ::*+++**..    :                                                    */
/*                   oo  :o::ooo:::o:                           --.****--..                                                          */
/*                     ::ooo::o:::o ::                            +o*+..++                                                           */
/*                      o::::oo:ooo                           --::**:* --**                                                          */
/*                       ::  ::oooo::: oo                       ++--. --   ..                                                        */
/*                       oo  ooo::::ooo#      *               ---:..#ooo-*.o*  ::                                                    */
/*                     oo     ::ooo:ooo::o ..                 +--+:oo*o..-..                                                         */
/*                    :  ::: :ooooooooo::*:++                -++ -----oo+:::o- ::: o                                                 */
/*                   ..   oo :::oo:::::ooo#... **o*       ++--+- ++--++--*+:                                                         */
/*                  *   :: o  *   o++:::.*+-*:::.. -+++ + ++-++++---++++      ::                                                     */
/*                            ..  -   --+*+*++. :  ----+-+----+----++- +---                                                          */
/*                       -        - +      -- -o..-------+----+++#++++-- #++ oo ++                                                   */
/*                       +                  +o -+-+--+-++---++++++-#++   ++                                                          */
/*                                        ::*     ++-+--++++----++++ ---                                                             */
/*                                         -  .  **  -----+++++ -- ++  +   -*                                                        */
/*                                                 -  -+-+++#        --# +                                                           */
/*                                               o    +++++++  --       -                                                            */
/*                                               #     -----++  ++--                                                                 */
/*                                               ::         *               --++                                                     */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrq/trefle.90$K' :                                                                                             */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 1989??????????).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        I N T E R F A C E   ' listG '  :                                                                                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        :Debut_listG:                                                                                                              */
/*        :Fin_listG:                                                                                                                */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D I R E C T I V E S   S P E C I F I Q U E S   D E   C O M P I L A T I O N  :                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
@define   PRAGMA_CPP_____MODULE_NON_DERIVABLE

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F I C H I E R S   D ' I N C L U D E S  :                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  INCLUDES_BASE
#include  image_image_IMAGESF_EXT

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P A R A M E T R E S  :                                                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   ECHELLE_EN_X_DES_CHAMPS                                                                                                       \
                    FU
#define   ECHELLE_EN_Y_DES_CHAMPS                                                                                                       \
                    FU
                                        /* Echelle en {X,Y} des differents champs.                                                   */
#define   TRANSLATION_LE_LONG_DE_X_DES_CHAMPS                                                                                           \
                    FZERO
#define   TRANSLATION_LE_LONG_DE_Y_DES_CHAMPS                                                                                           \
                    FZERO
                                        /* Translation le long des axes des differents champs.                                       */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A C C E S   G E N E R A L   A U X   C H A M P S  :                                                                         */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   SCALING_OXY(xy)                                                                                                               \
                    MUL2(echelle_en_XY_des_champs,xy)                                                                                   \
                                        /* Mise a l'echelle et translation d'une longueur.                                           */
#define   SCALING_OX(x,translation)                                                                                                     \
                    _cDENORMALISE_OX(AXPB(INVE(echelle_en_XY_des_champs)                                                                \
                                         ,_____lNORMALISE_OX(SOUS(x,Xcentre))                                                           \
                                         ,NEGA(translation)                                                                             \
                                          )                                                                                             \
                                     )                                                                                                  \
                                        /* Mise a l'echelle et translation d'une abscisse en entier.                                 */
#define   SCALING_OY(y,translation)                                                                                                     \
                    _cDENORMALISE_OY(AXPB(INVE(echelle_en_XY_des_champs)                                                                \
                                         ,_____lNORMALISE_OY(SOUS(y,Ycentre))                                                           \
                                         ,NEGA(translation)                                                                             \
                                          )                                                                                             \
                                     )                                                                                                  \
                                        /* Mise a l'echelle et translation d'une ordonnee en entier.                                 */
#define   ACCES_AUX_CHAMPS(amplificateur_de_la_fonction,Fonction,translateur_de_la_fonction,x,y,translation_du_champ)                   \
                    ACCES_A_UN_CHAMP(amplificateur_de_la_fonction                                                                       \
                                    ,RIEN,Fonction                                                                                      \
                                    ,translateur_de_la_fonction                                                                         \
                                    ,SCALING_OX(x,translation_le_long_de_X_des_champs)                                                  \
                                    ,SCALING_OY(y,translation_le_long_de_Y_des_champs)                                                  \
                                    ,ASD1,translation_du_champ,echelle_du_proton                                                        \
                                     )                                                                                                  \
                                        /* Macro d'acces a un point donne {x,y} d'un champ suivant une translation definie par       */ \
                                        /* 'translation_du_champ'. La fonction definissant le champ est definie par 'Fonction'.      */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C H A M P   " T R E F L E "   D E   L O C A L I S A T I O N   D E   L A   M E R   D E   Q U A R K S  :                     */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                  ......................::::::::------++++++++++++++--------::::::                                                 */
/*                  ....................::::::::-----+++++++++++++++++++-------:::::                                                 */
/*                  .................:::::::::----+++++ooooooooooooo++++++------::::                                                 */
/*                  ............::::::::::::----++++oooooo******oooooo+++++-----::::                                                 */
/*                  ...:::::::::::::::::::-----+++ooo**************ooooo++++-----:::                                                 */
/*                  ::::::::::::::::::-------+++ooo****##########****oooo+++-----:::                                                 */
/*                  ::::::::::------------++++ooo***###############***ooo++++----:::                                                 */
/*                  ::::------------++++++++ooo***##################***ooo+++----:::                                                 */
/*                  ---------+++++++++ooooooo***####################***ooo+++---::::                                                 */
/*                  -----++++++ooooooo*******#########*****##########**oo+++----::::                                                 */
/*                  --++++++ooooo*****#############**oooooo**########**oo+++---:::::                                                 */
/*                  -+++++oooo****###############**o+----++oo*######**ooo++----:::::                                                 */
/*                  ++++oooo****############****oo+-:::::--+o*######**oo+++---::::::                                                 */
/*                  +++oooo***##########***o+++---:..  ..:-+o*#####**oo+++---::::::.                                                 */
/*                  ++oooo***##########**o++-::...      .:-o*######**oo++----::::::.                                                 */
/*                  ++oooo***##########*oo+--:..       .:-+o*######**oo++----::::::.                                                 */
/*                  ++oooo***##########**o++-::...      .:-o*######**oo++----::::::.                                                 */
/*                  +++oooo***##########***o+++---:..  ..:-+o*#####**oo+++---::::::.                                                 */
/*                  ++++oooo****############****oo+-:::::--+o*######**oo+++---::::::                                                 */
/*                  -+++++oooo****###############**o+----++oo*######**ooo++----:::::                                                 */
/*                  --++++++ooooo*****#############**oooooo**########**oo+++---:::::                                                 */
/*                  -----++++++ooooooo*******#########*****##########**oo+++----::::                                                 */
/*                  ---------+++++++++ooooooo***####################***ooo+++---::::                                                 */
/*                  ::::------------++++++++ooo***##################***ooo+++----:::                                                 */
/*                  ::::::::::------------++++ooo***###############***ooo++++----:::                                                 */
/*                  ::::::::::::::::::-------+++ooo****##########****oooo+++-----:::                                                 */
/*                  ...:::::::::::::::::::-----+++ooo**************ooooo++++-----:::                                                 */
/*                  ............::::::::::::----++++oooooo******oooooo+++++-----::::                                                 */
/*                  .................:::::::::----+++++ooooooooooooo++++++------::::                                                 */
/*                  ....................::::::::-----+++++++++++++++++++-------:::::                                                 */
/*                  ......................::::::::------++++++++++++++--------::::::                                                 */
/*                  ........................::::::::-------------------------:::::::                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   X_TRANSLATION_DU_TREFLE                                                                                                       \
                    FZERO
#define   X_ECHELLE_DU_TREFLE                                                                                                           \
                    FU
                                        /* Translation et echelle horizontale du champ,                                              */
#define   Y_TRANSLATION_DU_TREFLE                                                                                                       \
                    FZERO
#define   Y_ECHELLE_DU_TREFLE                                                                                                           \
                    FU
                                        /* Translation et echelle verticale du champ.                                                */

#ifdef    FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_01
#    define    COEFFICIENT                                                                                                              \
                         FDU                                                                                                            \
                                        /* Coefficient de ponderation 'Cs' de la fonction 'sinus'.                                   */
#    define    COEFFICIENT_LINEAIRE                                                                                                     \
                         COMP(COEFFICIENT)                                                                                              \
                                        /* Coefficient lineaire 'Ts' de l'expression en 'sinus(rho)' ; le 'COMP()' est la afin       */ \
                                        /* de garantir que la fonction 'F(X,Y)' est dans [0,1]...                                    */
#Aifdef   FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_01
#Eifdef   FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_01

#ifdef    FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02
#    define    COEFFICIENT                                                                                                              \
                         FU                                                                                                             \
                                        /* Coefficient de ponderation 'Cs' de la fonction "polynomiale".                             */
#    define    COEFFICIENT_LINEAIRE                                                                                                     \
                         EXP2(MOIT(COEFFICIENT))                                                                                        \
                                        /* Coefficient lineaire 'Ts' de la fonction "polynomiale" ; le 'EXP2(MOIT())' est la afin    */ \
                                        /* de garantir que la fonction 'F(X,Y)' est dans [0,1]...                                    */
#    define    COEFFICIENT_CONTINU                                                                                                      \
                         FRA5(FRA10(FU))                                                                                                \
                                        /* Composante continue 'Co' de la fonction "polynomiale" ; elle permet de mettre en place    */ \
                                        /* une mer de quarks plus ou moins dense, suivant sa valeur...                               */
#Aifdef   FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02
#Eifdef   FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02

#ifdef    FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_01
#    define    COEFFICIENT_RHO                                                                                                          \
                         GRO8(PI)                                                                                                       \
                                        /* Coefficient de ponderation 'Cr' du module 'rho'.                                          */
#    define    COEFFICIENT_PHASE_RHO                                                                                                    \
                         NEGA(PI_SUR_2)                                                                                                 \
                                        /* Coefficient de phase 'Pr' du module 'rho' (desole pour l'abus de langage, mais 'rho'      */
                                        /* est utilise comme un angle...).                                                           */
#Aifdef   FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_01
#Eifdef   FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_01

#ifdef    FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02
#    define    MOITIE_DE_L_EXPOSANT                                                                                                     \
                         QUATRE                                                                                                         \
                                        /* Moitie 'r' de l'exposant de 'R(X,Y)' ; plus cette valeur est elevee, plus les cotes       */ \
                                        /* du triangle sont etroits.                                                                 */
#    define    COEFFICIENT_RHO                                                                                                          \
                         GRO2(FRA1(PI))                                                                                                 \
                                        /* Coefficient de ponderation 'Cr' du module 'rho'.                                          */
#    define    COEFFICIENT_PHASE_RHO                                                                                                    \
                         FZERO                                                                                                          \
                                        /* Coefficient de phase 'Pr' du module 'rho' (desole pour l'abus de langage, mais 'rho'      */
                                        /* est utilise comme un angle...).                                                           */
#Aifdef   FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02
#Eifdef   FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02

#define   COEFFICIENT_COSINUS                                                                                                           \
                    FRA4(FU)                                                                                                            \
                                        /* Coefficient de ponderation 'Cc' de la fonction 'cosinus'.                                 */
#define   COEFFICIENT_LINEAIRE_COSINUS                                                                                                  \
                    FDEUX                                                                                                               \
                                        /* Coefficient lineaire 'Tc' de l'expression en 'cosinus(theta)'.                            */
#define   COEFFICIENT_THETA                                                                                                             \
                    GRO3(FU)                                                                                                            \
                                        /* Coefficient de ponderation 'Ct' de l'angle 'theta'.                                       */
#define   COEFFICIENT_PHASE_THETA                                                                                                       \
                    FZERO                                                                                                               \
                                        /* Coefficient de phase 'Pt' de l'angle 'theta'.                                             */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C H A M P   " T R O I S -  G A U S S I E N "   D E   C H O I X   D E S   C O U L E U R S  :                                */
/*                                                                                                                                   */
/*                                                 ....::::----------::::....                                                        */
/*                                                ...:::---++++++++++---:::...                                                       */
/*                                               ...:::--++oooooooooo++--:::...                                                      */
/*                                              ...:::--+ooo********ooo+--:::...                                                     */
/*                                              ...::--++o**       #**o++--::...                                                     */
/*                                              ...::--+oo** ROUGE #**oo+--::...                                                     */
/*                                              ...::--++o**       #**o++--::...                                                     */
/*                                              ...:::--+oo****##****oo++-:::...                                                     */
/*                        .......                ...:::--++oooo**oooo++--:::...                                                      */
/*                   .................            ...:::---++++++++++---:::...                                                       */
/*                  .....:::::::::......           ....::::----------::::....                                                        */
/*                  ..:::::-----:::::.....           .....::::::::::::.....                                                          */
/*                  :::------------::::....             ................                                                             */
/*                  ::---+++++++++---:::....                 ......                                                                  */
/*                  :---++       ++---::....                                                                                         */
/*                  :--+++ VERTE ++---:::...                                                                                         */
/*                  :---++       ++---::....                                                                                         */
/*                  ::---+++++++++---:::...                                                                                          */
/*                  :::------------::::....                                                                                          */
/*                  ..:::::-----:::::.....                                                                                           */
/*                  .....:::::::::......                   ..........                                                                */
/*                   .................                  ................                                                             */
/*                        .......                      ..................                                                            */
/*                                                    ......::::::::......                                                           */
/*                                                   .....::       :::.....                                                          */
/*                                                   .....:: BLEUE :::.....                                                          */
/*                                                   .....::       :::.....                                                          */
/*                                                    ......::::::::......                                                           */
/*                                                     ..................                                                            */
/*                                                      ................                                                             */
/*                                                         ..........                                                                */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   DEPHASAGE_DU_QUARK_ROUGE                                                                                                      \
                    NEGA(DIVI(COEFFICIENT_PHASE_THETA,COEFFICIENT_THETA))                                                               \
                                        /* Dephasage du premier quark (le 'ROUGE'), ce qui correspond a la solution la plus simple   */ \
                                        /* de l'equation :                                                                           */ \
                                        /*                                                                                           */ \
                                        /* "rho maximum", ce qui signifie que l'on cherche a se placer dans une direction ou         */ \
                                        /* le champ "trefle" s'loigne le plus de l'origine ; soit par definition du "trefle" :       */ \
                                        /*                                                                                           */ \
                                        /*                                           rho                                             */ \
                                        /*                  R(X,Y) = Cr.---------------------------- + Pr                            */ \
                                        /*                               Cc.cos(Ct.theta + Pt) + Tc                                  */ \
                                        /*                                                                                           */ \
                                        /*                         R(X,Y) - Pr                                                       */ \
                                        /*                  rho = ------------- . [Cc.cos(Ct.theta + Pt) + Tc]                       */ \
                                        /*                             Cr                                                            */ \
                                        /*                                                                                           */ \
                                        /* d'ou, pour que 'rho' soit maximal :                                                       */ \
                                        /*                                                                                           */ \
                                        /*                  cos(Ct.theta + Pt) = 1                                                   */ \
                                        /*                                                                                           */ \
                                        /* dont la solution la plus simple est :                                                     */ \
                                        /*                                                                                           */ \
                                        /*                             Pt                                                            */ \
                                        /*                  theta = - ----                                                           */ \
                                        /*                             Ct                                                            */ \
                                        /*                                                                                           */
#define   VOISINAGE_DU_QUARK_ROUGE                                                                                                      \
                    DIVI(PI,CENT)                                                                                                       \
                                        /* Afin de faire des recherches dans la direction du quark 'ROUGE'.                          */
#define   TIERS_DE_CERCLE                                                                                                               \
                    FRA3(CERCLE_TRIGONOMETRIQUE)                                                                                        \
                                        /* Un tiers du cercle trigonometrique.                                                       */
#define   SEUIL_DU_CHAMP_r                                                                                                              \
                    GRO2(FRA4(FU))                                                                                                      \
                                        /* Seuil au-dessus duquel, on decrete le 'ROUGE', et en-dessous, une couleur arbitraire.     */
#define   AMPLIFICATEUR_DE_LA_FONCTION_r                                                                                                \
                    FU                                                                                                                  \
                                        /* Amplificateur de la fonction pour le champ 'ROUGE',                                       */
#define   TRANSLATEUR_DE_LA_FONCTION_r                                                                                                  \
                    FZERO                                                                                                               \
                                        /* Translateur de la fonction pour le champ 'ROUGE'.                                         */
%define   X_TRANSLATION_r                                                                                                               \
                    ADD2(X_TRANSLATION_DU_TREFLE                                                                                        \
                        ,MUL2(echelle_de_translation                                                                                    \
                             ,COSX(ADD2(DEPHASAGE_DU_QUARK_ROUGE                                                                        \
                                       ,GRO0(TIERS_DE_CERCLE)                                                                           \
                                        )                                                                                               \
                                   )                                                                                                    \
                              )                                                                                                         \
                         )                                                                                                              \
                                        /* Translation horizontale du champ 'ROUGE',                                                 */
%define   Y_TRANSLATION_r                                                                                                               \
                    ADD2(Y_TRANSLATION_DU_TREFLE                                                                                        \
                        ,MUL2(echelle_de_translation                                                                                    \
                             ,SINX(ADD2(DEPHASAGE_DU_QUARK_ROUGE                                                                        \
                                       ,GRO0(TIERS_DE_CERCLE)                                                                           \
                                        )                                                                                               \
                                   )                                                                                                    \
                              )                                                                                                         \
                         )                                                                                                              \
                                        /* Translation verticale du champ 'ROUGE'.                                                   */
#define   GAUSS_r                                                                                                                       \
                    GRO1(GRO16(FU))                                                                                                     \
                                        /* Efficacite du gaussien du champ 'ROUGE',                                                  */
#define   GAUSS_X2_r                                                                                                                    \
                    FU                                                                                                                  \
                                        /* Ponderation de XxX du champ 'ROUGE',                                                      */
#define   GAUSS_Y2_r                                                                                                                    \
                    FU                                                                                                                  \
                                        /* Ponderation de YxY du champ 'ROUGE',                                                      */
#define   GAUSS_XY_r                                                                                                                    \
                    FZERO                                                                                                               \
                                        /* Ponderation de XxY du champ 'ROUGE'.                                                      */
#define   SEUIL_DU_CHAMP_v                                                                                                              \
                    GRO2(FRA4(FU))                                                                                                      \
                                        /* Seuil au-dessus duquel, on decrete le 'VERTE', et en-dessous, une couleur arbitraire.     */
#define   AMPLIFICATEUR_DE_LA_FONCTION_v                                                                                                \
                    FU                                                                                                                  \
                                        /* Amplificateur de la fonction pour le champ 'VERTE',                                       */
#define   TRANSLATEUR_DE_LA_FONCTION_v                                                                                                  \
                    FZERO                                                                                                               \
                                        /* Translateur de la fonction pour le champ 'VERTE'.                                         */
%define   X_TRANSLATION_v                                                                                                               \
                    ADD2(X_TRANSLATION_DU_TREFLE                                                                                        \
                        ,MUL2(echelle_de_translation                                                                                    \
                             ,COSX(ADD2(DEPHASAGE_DU_QUARK_ROUGE                                                                        \
                                       ,GRO1(TIERS_DE_CERCLE)                                                                           \
                                        )                                                                                               \
                                   )                                                                                                    \
                              )                                                                                                         \
                         )                                                                                                              \
                                        /* Translation horizontale du champ 'VERTE',                                                 */
%define   Y_TRANSLATION_v                                                                                                               \
                    ADD2(Y_TRANSLATION_DU_TREFLE                                                                                        \
                        ,MUL2(echelle_de_translation                                                                                    \
                             ,SINX(ADD2(DEPHASAGE_DU_QUARK_ROUGE                                                                        \
                                       ,GRO1(TIERS_DE_CERCLE)                                                                           \
                                        )                                                                                               \
                                   )                                                                                                    \
                              )                                                                                                         \
                         )                                                                                                              \
                                        /* Translation verticale du champ 'VERTE'.                                                   */
#define   GAUSS_v                                                                                                                       \
                    GRO1(GRO16(FU))                                                                                                     \
                                        /* Efficacite du gaussien du champ 'VERTE',                                                  */
#define   GAUSS_X2_v                                                                                                                    \
                    FU                                                                                                                  \
                                        /* Ponderation de XxX du champ 'VERTE',                                                      */
#define   GAUSS_Y2_v                                                                                                                    \
                    FU                                                                                                                  \
                                        /* Ponderation de YxY du champ 'VERTE',                                                      */
#define   GAUSS_XY_v                                                                                                                    \
                    FZERO                                                                                                               \
                                        /* Ponderation de XxY du champ 'VERTE'.                                                      */
#define   SEUIL_DU_CHAMP_b                                                                                                              \
                    GRO2(FRA4(FU))                                                                                                      \
                                        /* Seuil au-dessus duquel, on decrete le 'BLEUE', et en-dessous, une couleur arbitraire.     */
#define   AMPLIFICATEUR_DE_LA_FONCTION_b                                                                                                \
                    FU                                                                                                                  \
                                        /* Amplificateur de la fonction pour le champ 'BLEUE',                                       */
#define   TRANSLATEUR_DE_LA_FONCTION_b                                                                                                  \
                    FZERO                                                                                                               \
                                        /* Translateur de la fonction pour le champ 'BLEUE'.                                         */
%define   X_TRANSLATION_b                                                                                                               \
                    ADD2(X_TRANSLATION_DU_TREFLE                                                                                        \
                        ,MUL2(echelle_de_translation                                                                                    \
                             ,COSX(ADD2(DEPHASAGE_DU_QUARK_ROUGE                                                                        \
                                       ,GRO2(TIERS_DE_CERCLE)                                                                           \
                                        )                                                                                               \
                                   )                                                                                                    \
                              )                                                                                                         \
                         )                                                                                                              \
                                        /* Translation horizontale du champ 'BLEUE',                                                 */
%define   Y_TRANSLATION_b                                                                                                               \
                    ADD2(Y_TRANSLATION_DU_TREFLE                                                                                        \
                        ,MUL2(echelle_de_translation                                                                                    \
                             ,SINX(ADD2(DEPHASAGE_DU_QUARK_ROUGE                                                                        \
                                       ,GRO2(TIERS_DE_CERCLE)                                                                           \
                                        )                                                                                               \
                                   )                                                                                                    \
                              )                                                                                                         \
                         )                                                                                                              \
                                        /* Translation verticale du champ 'BLEUE'.                                                   */
#define   GAUSS_b                                                                                                                       \
                    GRO1(GRO16(FU))                                                                                                     \
                                        /* Efficacite du gaussien du champ 'BLEUE',                                                  */
#define   GAUSS_X2_b                                                                                                                    \
                    FU                                                                                                                  \
                                        /* Ponderation de XxX du champ 'BLEUE',                                                      */
#define   GAUSS_Y2_b                                                                                                                    \
                    FU                                                                                                                  \
                                        /* Ponderation de YxY du champ 'BLEUE',                                                      */
#define   GAUSS_XY_b                                                                                                                    \
                    FZERO                                                                                                               \
                                        /* Ponderation de XxY du champ 'BLEUE'.                                                      */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   D I S Q U E S   ( C O U L E U R S   E T   P O S I T I O N S )  :                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   NIVEAU_DES_COULEURS                                                                                                           \
                    BLANC                                                                                                               \
                                        /* Niveau de marquage maximum des disques flous 'COULEUR',                                   */
#define   RAYON_DES_DISQUES                                                                                                             \
                    HUIT                                                                                                                \
                                        /* Rayon des disques representatifs des points.                                              */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        M A C R O S   U T I L E S  :                                                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   POSITIONNEMENT_D_UN_QUARK_DU_PROTON(contexte,COULEUR)                                                                         \
                                        /* Positionnement de l'un des trois quarks COULEUR={R,V,B} du proton.                        */ \
                    Bblock                                                                                                              \
                    SET_CURSOR(_____cNORMALISE_OX(X_du_maximum_du_champ`COULEUR)                                                        \
                              ,_____cNORMALISE_OY(Y_du_maximum_du_champ`COULEUR)                                                        \
                              ,_____cNORMALISE_OZ(Zmax)                                                                                 \
                               );                                                                                                       \
                                        /* Mise en place du curseur graphique sur le quark courant 'COULEUR'.                        */ \
                    WCG(contexte);                                                                                                      \
                                        /* Et sauvegarde du contexte graphique...                                                    */ \
                    Eblock
#define   GENERATION_D_UN_CHAMP_RVB(champ,COULEUR,x,y)                                                                                  \
                                        /* Generation d'un des trois champs COULEUR={R,V,B} au point {x,y}.                          */ \
                    Bblock                                                                                                              \
                    EGAL(Fgaussien_____coefficient,Fgaussien_____coefficient`COULEUR);                                                  \
                    EGAL(Fgaussien_____coefficient_X2,Fgaussien_____coefficient_X2`COULEUR);                                            \
                    EGAL(Fgaussien_____coefficient_Y2,Fgaussien_____coefficient_Y2`COULEUR);                                            \
                    EGAL(Fgaussien_____coefficient_XY,Fgaussien_____coefficient_XY`COULEUR);                                            \
                                        /* Definition du champ gaussien 'COULEUR' gaussien.                                          */ \
                    EGAL(champ                                                                                                          \
                        ,ACCES_AUX_CHAMPS(amplificateur_de_la_fonction`COULEUR                                                          \
                                         ,Fgaussien                                                                                     \
                                         ,translateur_de_la_fonction`COULEUR                                                            \
                                         ,x,y                                                                                           \
                                         ,translation`COULEUR                                                                           \
                                          )                                                                                             \
                         );                                                                                                             \
                                        /* Et generation du champ gaussien 'COULEUR' qui indique ou sont localises, de preference,   */ \
                                        /* les quarks 'COULEUR'.                                                                     */ \
                    Eblock

#include  xrq/trefle.90.I"
                                        /* Introduit le 20061212110542 pour eviter le message :                                      */
                                        /*                                                                                           */
                                        /*                  TRACE_D_UN_POINT_D_UN_DOUBLET: unterminated macro call                   */
                                        /*                                                                                           */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        T E S T   D E   L A   G E N E R A T I O N   D E S   C H A M P S   " T R E F L E "                                          */
/*        E T   " T R O I S - G A U S S I E N S "   T R A N S L A T A B L E S  :                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE));
     DEFV(Logical,INIT(niveau_maximum,VRAI));
                                        /* On peut soit generer le niveau maximum  ('VRAI') ou bien faire un 'ou exclusif' ('FAUX')  */
                                        /* entre les deux champs ("trefle" et "gaussien-RVB")...                                     */
     DEFV(Float,INIT(echelle_en_XY_des_champs,ECHELLE_EN_X_DES_CHAMPS));
                                        /* Echelle en {X,Y} des differents champs.                                                   */
     DEFV(Float,INIT(translation_le_long_de_X_des_champs,TRANSLATION_LE_LONG_DE_X_DES_CHAMPS));
     DEFV(Float,INIT(translation_le_long_de_Y_des_champs,TRANSLATION_LE_LONG_DE_Y_DES_CHAMPS));
                                        /* Translation le long des axes des differents champs.                                       */
     DEFV(deltaF_2D,translation_du_proton);
     DEFV(coeffF_2D,echelle_du_proton);
                                        /* Translation et echelle du champ a utiliser pour contraindre la generation aleatoire.      */
     DEFV(Float,INIT(maximum_du_champ_trefle,F_MOINS_L_INFINI));
                                        /* Maximum du champ "trefle" rencontre dans la direction du premier quark.                   */
     DEFV(Float,INIT(echelle_de_translation,FLOT__UNDEF));
                                        /* Echelle de translation destinee a faire coincider les champs "trefle" et                  */
                                        /* "trois-gaussiens" ; pou ce faire, on recherche dans la direction du premier               */
                                        /* quark (le 'ROUGE') le maximum du champ "trefle"...                                        */
     DEFV(Float,INIT(amplificateur_de_la_fonction_r,AMPLIFICATEUR_DE_LA_FONCTION_r));
     DEFV(Float,INIT(translateur_de_la_fonction_r,TRANSLATEUR_DE_LA_FONCTION_r));
     DEFV(Float,INIT(Fgaussien_____coefficient_r,GAUSS_r));
     DEFV(Float,INIT(Fgaussien_____coefficient_X2_r,GAUSS_X2_r));
     DEFV(Float,INIT(Fgaussien_____coefficient_Y2_r,GAUSS_Y2_r));
     DEFV(Float,INIT(Fgaussien_____coefficient_XY_r,GAUSS_XY_r));
     DEFV(deltaF_2D,translation_r);
     DEFV(Float,INIT(seuil_du_champ_r,SEUIL_DU_CHAMP_r));
     DEFV(Float,INIT(composante_r_00,FLOT__UNDEF));
     DEFV(Float,INIT(composante_r_90,FLOT__UNDEF));
     DEFV(Float,INIT(composante_r_10,FLOT__UNDEF));
     DEFV(Float,INIT(composante_r_09,FLOT__UNDEF));
     DEFV(Float,INIT(composante_r_01,FLOT__UNDEF));
     DEFV(Float,INIT(maximum_du_champ_r,F_MOINS_L_INFINI));
     DEFV(Int,INIT(X_du_maximum_du_champ_r,UNDEF));
     DEFV(Int,INIT(Y_du_maximum_du_champ_r,UNDEF));
                                        /* Definition du champ 'ROUGE' gaussien aux points :                                         */
                                        /*                                                                                           */
                                        /*                  00=(X,Y), 90=(X-1,Y), 10=(X+1,Y), 09=(X,Y-1), 01=(X,Y+1).                */
                                        /*                                                                                           */
     DEFV(Float,INIT(amplificateur_de_la_fonction_v,AMPLIFICATEUR_DE_LA_FONCTION_v));
     DEFV(Float,INIT(translateur_de_la_fonction_v,TRANSLATEUR_DE_LA_FONCTION_v));
     DEFV(Float,INIT(Fgaussien_____coefficient_v,GAUSS_v));
     DEFV(Float,INIT(Fgaussien_____coefficient_X2_v,GAUSS_X2_v));
     DEFV(Float,INIT(Fgaussien_____coefficient_Y2_v,GAUSS_Y2_v));
     DEFV(Float,INIT(Fgaussien_____coefficient_XY_v,GAUSS_XY_v));
     DEFV(deltaF_2D,translation_v);
     DEFV(Float,INIT(seuil_du_champ_v,SEUIL_DU_CHAMP_v));
     DEFV(Float,INIT(composante_v_00,FLOT__UNDEF));
     DEFV(Float,INIT(composante_v_90,FLOT__UNDEF));
     DEFV(Float,INIT(composante_v_10,FLOT__UNDEF));
     DEFV(Float,INIT(composante_v_09,FLOT__UNDEF));
     DEFV(Float,INIT(composante_v_01,FLOT__UNDEF));
     DEFV(Float,INIT(maximum_du_champ_v,F_MOINS_L_INFINI));
     DEFV(Int,INIT(X_du_maximum_du_champ_v,UNDEF));
     DEFV(Int,INIT(Y_du_maximum_du_champ_v,UNDEF));
                                        /* Definition du champ 'VERTE' gaussien aux points :                                         */
                                        /*                                                                                           */
                                        /*                  00=(X,Y), 90=(X-1,Y), 10=(X+1,Y), 09=(X,Y-1), 01=(X,Y+1).                */
                                        /*                                                                                           */
     DEFV(Float,INIT(amplificateur_de_la_fonction_b,AMPLIFICATEUR_DE_LA_FONCTION_b));
     DEFV(Float,INIT(translateur_de_la_fonction_b,TRANSLATEUR_DE_LA_FONCTION_b));
     DEFV(Float,INIT(Fgaussien_____coefficient_b,GAUSS_b));
     DEFV(Float,INIT(Fgaussien_____coefficient_X2_b,GAUSS_X2_b));
     DEFV(Float,INIT(Fgaussien_____coefficient_Y2_b,GAUSS_Y2_b));
     DEFV(Float,INIT(Fgaussien_____coefficient_XY_b,GAUSS_XY_b));
     DEFV(deltaF_2D,translation_b);
     DEFV(Float,INIT(seuil_du_champ_b,SEUIL_DU_CHAMP_b));
     DEFV(Float,INIT(composante_b_00,FLOT__UNDEF));
     DEFV(Float,INIT(composante_b_90,FLOT__UNDEF));
     DEFV(Float,INIT(composante_b_10,FLOT__UNDEF));
     DEFV(Float,INIT(composante_b_09,FLOT__UNDEF));
     DEFV(Float,INIT(composante_b_01,FLOT__UNDEF));
     DEFV(Float,INIT(maximum_du_champ_b,F_MOINS_L_INFINI));
     DEFV(Int,INIT(X_du_maximum_du_champ_b,UNDEF));
     DEFV(Int,INIT(Y_du_maximum_du_champ_b,UNDEF));
                                        /* Definition du champ 'BLEUE gaussien aux points :                                          */
                                        /*                                                                                           */
                                        /*                  00=(X,Y), 90=(X-1,Y), 10=(X+1,Y), 09=(X,Y-1), 01=(X,Y+1).                */
                                        /*                                                                                           */
     DEFV(Int,INIT(rayon_des_disques,RAYON_DES_DISQUES));
                                        /* Rayon des disques flous (attention : ne peut etre un 'Positive' a cause des expressions   */
                                        /* arithmetiques qui l'utilisent...).                                                        */
     /*..............................................................................................................................*/
     EGAL(Ftrefle_____coefficient,COEFFICIENT);

#ifdef    FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02
     EGAL(Ftrefle_____moitie_de_l_exposant_de_rho_module,MOITIE_DE_L_EXPOSANT);
#Aifdef   FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02
#Eifdef   FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02

     EGAL(Ftrefle_____coefficient_rho,COEFFICIENT_RHO);
     EGAL(Ftrefle_____coefficient_phase_rho,COEFFICIENT_PHASE_RHO);
     EGAL(Ftrefle_____coefficient_lineaire,COEFFICIENT_LINEAIRE);

#ifdef    FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02
     EGAL(Ftrefle_____coefficient_continu,COEFFICIENT_CONTINU);
#Aifdef   FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02
#Eifdef   FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02

     EGAL(Ftrefle_____coefficient_cosinus,COEFFICIENT_COSINUS);
     EGAL(Ftrefle_____coefficient_theta,COEFFICIENT_THETA);
     EGAL(Ftrefle_____coefficient_phase_theta,COEFFICIENT_PHASE_THETA);
     EGAL(Ftrefle_____coefficient_lineaire_cosinus,COEFFICIENT_LINEAIRE_COSINUS);
     INITIALISATION_ACCROISSEMENT_2D(translation_du_proton,X_TRANSLATION_DU_TREFLE,Y_TRANSLATION_DU_TREFLE);
     INITIALISATION_COEFFICIENT_2D(echelle_du_proton,X_ECHELLE_DU_TREFLE,Y_ECHELLE_DU_TREFLE);
                                        /* Definition du champ "trefle"...                                                           */

#ifdef    FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_01
     GET_ARGUMENTSv(nombre_d_arguments
                   ,BLOC(GET_ARGUMENT_C("imageR=""R=",nom_imageR);
                         GET_ARGUMENT_L("maximum=",niveau_maximum);
                         GET_ARGUMENT_F("Exy=",echelle_en_XY_des_champs);
                         GET_ARGUMENT_F("Tx=",translation_le_long_de_X_des_champs);
                         GET_ARGUMENT_F("Ty=",translation_le_long_de_Y_des_champs);
                         GET_ARGUMENT_F("cs=""Cs=",Ftrefle_____coefficient);
                         GET_ARGUMENT_F("cr=""Cr=",Ftrefle_____coefficient_rho);
                         GET_ARGUMENT_F("pr=""Pr=",Ftrefle_____coefficient_phase_rho);
                         GET_ARGUMENT_F("ts=""Ts=",Ftrefle_____coefficient_lineaire);
                         GET_ARGUMENT_F("cc=""Cc=",Ftrefle_____coefficient_cosinus);
                         GET_ARGUMENT_F("ct=""Ct=",Ftrefle_____coefficient_theta);
                         GET_ARGUMENT_F("pt=""Pt=",Ftrefle_____coefficient_phase_theta);
                         GET_ARGUMENT_F("tc=""Tc=",Ftrefle_____coefficient_lineaire_cosinus);
                         GET_ARGUMENT_F("amplificateurR=""aR=",amplificateur_de_la_fonction_r);
                         GET_ARGUMENT_F("translateurR=""tR=""TR=",translateur_de_la_fonction_r);
                         GET_ARGUMENT_F("amplificateurV=""aV=",amplificateur_de_la_fonction_v);
                         GET_ARGUMENT_F("translateurV=""tV=""TV=",translateur_de_la_fonction_v);
                         GET_ARGUMENT_F("amplificateurB=""aB=",amplificateur_de_la_fonction_b);
                         GET_ARGUMENT_F("translateurB=""tB=""TB=",translateur_de_la_fonction_b);
                         GET_ARGUMENT_F("cR=",Fgaussien_____coefficient_r);
                         GET_ARGUMENT_F("cx2R=",Fgaussien_____coefficient_X2_r);
                         GET_ARGUMENT_F("cy2R=",Fgaussien_____coefficient_Y2_r);
                         GET_ARGUMENT_F("cxyR=",Fgaussien_____coefficient_XY_r);
                         GET_ARGUMENT_F("cV=",Fgaussien_____coefficient_v);
                         GET_ARGUMENT_F("cx2V=",Fgaussien_____coefficient_X2_v);
                         GET_ARGUMENT_F("cy2V=",Fgaussien_____coefficient_Y2_v);
                         GET_ARGUMENT_F("cxyV=",Fgaussien_____coefficient_XY_v);
                         GET_ARGUMENT_F("cB=",Fgaussien_____coefficient_b);
                         GET_ARGUMENT_F("cx2B=",Fgaussien_____coefficient_X2_b);
                         GET_ARGUMENT_F("cy2B=",Fgaussien_____coefficient_Y2_b);
                         GET_ARGUMENT_F("cxyB=",Fgaussien_____coefficient_XY_b);
                         GET_ARGUMENT_I("rayon=",rayon_des_disques);
                         )
                    );
#Aifdef   FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_01
#Eifdef   FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_01

#ifdef    FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02
     GET_ARGUMENTSv(nombre_d_arguments
                   ,BLOC(GET_ARGUMENT_C("imageR=""R=",nom_imageR);
                         GET_ARGUMENT_L("maximum=",niveau_maximum);
                         GET_ARGUMENT_F("Exy=",echelle_en_XY_des_champs);
                         GET_ARGUMENT_F("Tx=",translation_le_long_de_X_des_champs);
                         GET_ARGUMENT_F("Ty=",translation_le_long_de_Y_des_champs);
                         GET_ARGUMENT_F("cs=""Cs=",Ftrefle_____coefficient);
                         GET_ARGUMENT_I("r=",Ftrefle_____moitie_de_l_exposant_de_rho_module);
                         GET_ARGUMENT_F("cr=""Cr=",Ftrefle_____coefficient_rho);
                         GET_ARGUMENT_F("pr=""Pr=",Ftrefle_____coefficient_phase_rho);
                         GET_ARGUMENT_F("ts=""Ts=",Ftrefle_____coefficient_lineaire);
                         GET_ARGUMENT_F("co=""Co=",Ftrefle_____coefficient_continu);
                         GET_ARGUMENT_F("cc=""Cc=",Ftrefle_____coefficient_cosinus);
                         GET_ARGUMENT_F("ct=""Ct=",Ftrefle_____coefficient_theta);
                         GET_ARGUMENT_F("pt=""Pt=",Ftrefle_____coefficient_phase_theta);
                         GET_ARGUMENT_F("tc=""Tc=",Ftrefle_____coefficient_lineaire_cosinus);
                         GET_ARGUMENT_F("amplificateurR=""aR=",amplificateur_de_la_fonction_r);
                         GET_ARGUMENT_F("translateurR=""tR=""TR=",translateur_de_la_fonction_r);
                         GET_ARGUMENT_F("amplificateurV=""aV=",amplificateur_de_la_fonction_v);
                         GET_ARGUMENT_F("translateurV=""tV=""TV=",translateur_de_la_fonction_v);
                         GET_ARGUMENT_F("amplificateurB=""aB=",amplificateur_de_la_fonction_b);
                         GET_ARGUMENT_F("translateurB=""tB=""TB=",translateur_de_la_fonction_b);
                         GET_ARGUMENT_F("cR=",Fgaussien_____coefficient_r);
                         GET_ARGUMENT_F("cx2R=",Fgaussien_____coefficient_X2_r);
                         GET_ARGUMENT_F("cy2R=",Fgaussien_____coefficient_Y2_r);
                         GET_ARGUMENT_F("cxyR=",Fgaussien_____coefficient_XY_r);
                         GET_ARGUMENT_F("cV=",Fgaussien_____coefficient_v);
                         GET_ARGUMENT_F("cx2V=",Fgaussien_____coefficient_X2_v);
                         GET_ARGUMENT_F("cy2V=",Fgaussien_____coefficient_Y2_v);
                         GET_ARGUMENT_F("cxyV=",Fgaussien_____coefficient_XY_v);
                         GET_ARGUMENT_F("cB=",Fgaussien_____coefficient_b);
                         GET_ARGUMENT_F("cx2B=",Fgaussien_____coefficient_X2_b);
                         GET_ARGUMENT_F("cy2B=",Fgaussien_____coefficient_Y2_b);
                         GET_ARGUMENT_F("cxyB=",Fgaussien_____coefficient_XY_b);
                         GET_ARGUMENT_I("rayon=",rayon_des_disques);
                         )
                    );
#Aifdef   FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02
#Eifdef   FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02

     CALi(FgERASE());
                                        /* Initialisation de l'image Resultat.                                                       */

     begin_image
          Bblock
          Test(IFLE(SOUA(ACCES_AUX_CHAMPS(FU
                                         ,Fargument
                                         ,FZERO
                                         ,X,Y
                                         ,translation_du_proton
                                          )
                        ,DEPHASAGE_DU_QUARK_ROUGE
                         )
                   ,VOISINAGE_DU_QUARK_ROUGE
                    )
               )
               Bblock
               DEFV(Float,INIT(champ_courant,ACCES_AUX_CHAMPS(FU
                                                             ,Ftrefle
                                                             ,FZERO
                                                             ,X,Y
                                                             ,translation_du_proton
                                                              )
                               )
                    );
                                        /* Lorsque l'on se trouve dans la direction du premier quark, on regarde l'intensite du      */
                                        /* champ "trefle".                                                                           */
               Test(IFGT(champ_courant,maximum_du_champ_trefle))
                    Bblock
                    EGAL(maximum_du_champ_trefle,champ_courant);
                                        /* Lorsqu'on est en presence d'un maximum local, on le memorise, ainsi que le 'rho'          */
                                        /* correspondant :                                                                           */
                    EGAL(echelle_de_translation
                        ,ACCES_AUX_CHAMPS(FU
                                         ,Fmodule
                                         ,FZERO
                                         ,X,Y
                                         ,translation_du_proton
                                          )
                         );
                                        /* Recherche du module 'rho' du point du champ "trefle" qui soit dans la direction           */
                                        /* du quark 'ROUGE' est qui corresponde a un maximum du champ "trefle".                      */
                    Eblock
               ATes
                    Bblock
                    Eblock
               ETes
               Eblock
          ATes
               Bblock
               Eblock
          ETes
          Eblock
     end_image

     INITIALISATION_ACCROISSEMENT_2D(translation_r,X_TRANSLATION_r,Y_TRANSLATION_r);
                                        /* Initialisation de la translation du champ 'ROUGE' gaussien.                               */
     INITIALISATION_ACCROISSEMENT_2D(translation_v,X_TRANSLATION_v,Y_TRANSLATION_v);
                                        /* Initialisation de la translation du champ 'VERTE' gaussien.                               */
     INITIALISATION_ACCROISSEMENT_2D(translation_b,X_TRANSLATION_b,Y_TRANSLATION_b);
                                        /* Initialisation de la translation du champ 'BLEUE' gaussien.                               */

     CALi(IFinitialisation(IFmage_PR,FZERO));
                                        /* Pour stocker le champ "trois-gaussiens".                                                  */
     CALi(IFinitialisation(IFmage_PI,FZERO));
                                        /* Pour stocker le champ "trefle".                                                           */

     begin_image
          Bblock
          storeF_point(ACCES_AUX_CHAMPS(FU
                                       ,Ftrefle
                                       ,FZERO
                                       ,X,Y
                                       ,translation_du_proton
                                        )
                      ,IFmage_PI
                      ,X,Y
                       );
          GENERATION_D_UN_CHAMP_RVB(composante_r_00,r,NEUT(X),NEUT(Y));
          Test(IFGT(composante_r_00,maximum_du_champ_r))
               Bblock
               EGAL(maximum_du_champ_r,composante_r_00);
               EGAL(X_du_maximum_du_champ_r,X);
               EGAL(Y_du_maximum_du_champ_r,Y);
               Eblock
          ATes
               Bblock
               Eblock
          ETes
                                        /* Et generation du champ gaussien 'ROUGE' qui indique ou sont localises, de preference,     */
                                        /* les quarks 'ROUGE' (le maximum correspondra au quark reel).                               */
          GENERATION_D_UN_CHAMP_RVB(composante_v_00,v,NEUT(X),NEUT(Y));
          Test(IFGT(composante_v_00,maximum_du_champ_v))
               Bblock
               EGAL(maximum_du_champ_v,composante_v_00);
               EGAL(X_du_maximum_du_champ_v,X);
               EGAL(Y_du_maximum_du_champ_v,Y);
               Eblock
          ATes
               Bblock
               Eblock
          ETes
                                        /* Et generation du champ gaussien 'VERTE' qui indique ou sont localises, de preference,     */
                                        /* les quarks 'VERTE' (le maximum correspondra au quark reel).                               */
          GENERATION_D_UN_CHAMP_RVB(composante_b_00,b,NEUT(X),NEUT(Y));
          Test(IFGT(composante_b_00,maximum_du_champ_b))
               Bblock
               EGAL(maximum_du_champ_b,composante_b_00);
               EGAL(X_du_maximum_du_champ_b,X);
               EGAL(Y_du_maximum_du_champ_b,Y);
               Eblock
          ATes
               Bblock
               Eblock
          ETes
                                        /* Et generation du champ gaussien 'BLEUE' qui indique ou sont localises, de preference,     */
                                        /* les quarks 'BLEUE' (le maximum correspondra au quark reel).                               */
          storeF_point(ADD3(composante_r_00,composante_v_00,composante_b_00),IFmage_PR,X,Y);
          Eblock
     end_image

     CALS(Ifloat_std_avec_renormalisation(ImageA1,IFmage_PR));
                                        /* Pour stocker le champ "trois-gaussiens".                                                  */
     CALS(Ifloat_std_avec_renormalisation(ImageA2,IFmage_PI));
                                        /* Pour stocker le champ "trefle".                                                           */
     Test(IL_FAUT(niveau_maximum))
          Bblock
          CALS(Imaximum(ImageR,ImageA1,ImageA2));
                                        /* Superposition des deux champs...                                                          */
          Eblock
     ATes
          Bblock
          CALS(Ieor(ImageR,ImageA1,ImageA2));
                                        /* Superposition des deux champs...                                                          */
          Eblock
     ETes

     POSITIONNEMENT_D_UN_QUARK_DU_PROTON(vecteurs_____Gcon_11,r);
     TRACE_D_UN_POINT_D_UN_DOUBLET(vecteurs_____Gcon_11,NIVEAU_DES_COULEURS,GRO4);
                                        /* Trace du quark  'ROUGE' du proton,                                                        */
     POSITIONNEMENT_D_UN_QUARK_DU_PROTON(vecteurs_____Gcon_12,v);
     TRACE_D_UN_POINT_D_UN_DOUBLET(vecteurs_____Gcon_12,NIVEAU_DES_COULEURS,GRO4);
                                        /* Trace du quark  'VERTE' du proton,                                                        */
     POSITIONNEMENT_D_UN_QUARK_DU_PROTON(vecteurs_____Gcon_13,b);
     TRACE_D_UN_POINT_D_UN_DOUBLET(vecteurs_____Gcon_13,NIVEAU_DES_COULEURS,GRO4);
                                        /* Trace du quark  'BLEUE' du proton,                                                        */

     CALi(Iupdate_image(nom_imageR,ImageR));

     RETU_Commande;
     Eblock
ECommande



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