/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E N E R A T I O N   D ' U N   E N S E M B L E   D E   N O M B R E S   Q U A N T I Q U E S   ( n , m , l )  :             */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                    Cette commande genere une sequence                                                                             */
/*                  de valeurs possibles d'un ou plusieurs                                                                           */
/*                  des nombres quantiques (n,m,l).                                                                                  */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrq/nombres_Q.01$K' :                                                                                          */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 1993??????????).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        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_MINI

#include  xrq/Hspherik.12.I"
#include  xrq/hydrogene.24.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P A R A M E T R E S  :                                                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   GENERER_n                                                                                                                     \
                    VRAI                                                                                                                \
                                        /* Cet indicateur indique si l'on genere 'n' ('VRAI') ou pas ('FAUX').                       */
#define   GENERER_m                                                                                                                     \
                    FAUX                                                                                                                \
                                        /* Cet indicateur indique si l'on genere 'm' ('VRAI') ou pas ('FAUX').                       */
#define   GENERER_l                                                                                                                     \
                    FAUX                                                                                                                \
                                        /* Cet indicateur indique si l'on genere 'l' ('VRAI') ou pas ('FAUX').                       */

#define   ORDRE_n_DE_DEPART                                                                                                             \
                    ORDRE_n_01
#define   ORDRE_n_D_ARRIVEE                                                                                                             \
                    ORDRE_n_01
                                        /* Definition des bornes implicites du nombre 'n'.                                           */

#define   ORDRE_m_DE_DEPART                                                                                                             \
                    ORDRE_m_00
#define   ORDRE_m_D_ARRIVEE                                                                                                             \
                    ORDRE_m_00
                                        /* Definition des bornes implicites du nombre 'm'.                                           */

#define   ORDRE_l_DE_DEPART                                                                                                             \
                    ORDRE_l_00
#define   ORDRE_l_D_ARRIVEE                                                                                                             \
                    ORDRE_l_00
                                        /* Definition des bornes implicites du nombre 'l'.                                           */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        M A C R O S   U T I L E S  :                                                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   FAUX_ORDRE                                                                                                                    \
                    PRED(MIN3(ORDRE_n_01                                                                                                \
                             ,ORDRE_m_00                                                                                                \
                             ,ORDRE_l_00                                                                                                \
                              )                                                                                                         \
                         )                                                                                                              \
                                        /* Faux ordre destine a indiquer un etat invalide...                                         */

#define   PRINT_ORDRE(ordre,generer_l_ordre)                                                                                            \
                    Bblock                                                                                                              \
                    Test(IL_FAUT(generer_l_ordre))                                                                                      \
                         Bblock                                                                                                         \
                         CAL2(Prin1("%d\n",ordre));                                                                                     \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                    Eblock                                                                                                              \
                                        /* Edition d'un ordre quelconque...                                                          */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E N E R A T I O N   D ' U N   E N S E M B L E   D E   N O M B R E S   Q U A N T I Q U E S   ( n , m , l )  :             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     DEFV(Logical,INIT(generer_n,GENERER_n));
                                        /* Cet indicateur indique si l'on genere 'n' ('VRAI') ou pas ('FAUX').                       */
     DEFV(Int,INIT(ordre_n,UNDEF));
     DEFV(Int,INIT(ordre_n_de_depart,ORDRE_n_DE_DEPART));
     DEFV(Int,INIT(ordre_n_d_arrivee,ORDRE_n_D_ARRIVEE));
                                        /* Definition de l'ordre 'n'.                                                                */
     DEFV(Logical,INIT(generer_m,GENERER_m));
                                        /* Cet indicateur indique si l'on genere 'm' ('VRAI') ou pas ('FAUX').                       */
     DEFV(Int,INIT(ordre_m,UNDEF));
     DEFV(Int,INIT(ordre_m_de_depart,ORDRE_m_DE_DEPART));
     DEFV(Int,INIT(ordre_m_d_arrivee,ORDRE_m_D_ARRIVEE));
                                        /* Definition de l'ordre 'm'.                                                                */
     DEFV(Logical,INIT(generer_l,GENERER_l));
                                        /* Cet indicateur indique si l'on genere 'l' ('VRAI') ou pas ('FAUX').                       */
     DEFV(Int,INIT(ordre_l,UNDEF));
     DEFV(Int,INIT(ordre_l_de_depart,ORDRE_l_DE_DEPART));
     DEFV(Int,INIT(ordre_l_d_arrivee,ORDRE_l_D_ARRIVEE));
                                        /* Definition de l'ordre 'l'.                                                                */
     /*..............................................................................................................................*/
     GET_ARGUMENTS_(nombre_d_arguments
                   ,BLOC(GET_ARGUMENT_L("n=",generer_n);
                         GET_ARGUMENT_I("nD=",ordre_n_de_depart);
                         GET_ARGUMENT_I("nA=",ordre_n_d_arrivee);

                         GET_ARGUMENT_L("m=",generer_m);
                         GET_ARGUMENT_I("mD=",ordre_m_de_depart);
                         GET_ARGUMENT_I("mA=",ordre_m_d_arrivee);

                         GET_ARGUMENT_L("l=",generer_l);
                         GET_ARGUMENT_I("lD=",ordre_l_de_depart);
                         GET_ARGUMENT_I("lA=",ordre_l_d_arrivee);
                         )
                    );

     DoQu(ordre_n,ordre_n_de_depart,ordre_n_d_arrivee,I)
          Bblock
          DoQu(ordre_m,ordre_m_de_depart,ordre_m_d_arrivee,I)
               Bblock
               DoQu(ordre_l,ordre_l_de_depart,ordre_l_d_arrivee,I)
                    Bblock
                    Test(IFET(IFLT(ordre_l,ordre_n)
                             ,IFLE(ordre_m,ordre_l)
                              )
                         )
                         Bblock
                         VALIDATION_DES_ORDRES_lmn;
                                        /* Validation des demandes...                                                                */

                         PRINT_ORDRE(ordre_n,generer_n);
                         PRINT_ORDRE(ordre_m,generer_m);
                         PRINT_ORDRE(ordre_l,generer_l);
                         Eblock
                    ATes
                         Bblock
                         PRINT_ORDRE(FAUX_ORDRE,generer_n);
                         PRINT_ORDRE(FAUX_ORDRE,generer_m);
                         PRINT_ORDRE(FAUX_ORDRE,generer_l);
                         Eblock
                    ETes
                    Eblock
               EDoQ
               Eblock
          EDoQ
          Eblock
     EDoQ

     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.