/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        N O R M A L I S A T I O N / D E N O R M A L I S A T I O N   D E   C O O R D O N N E E S  :                                 */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xci/coordonnees$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  :                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

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

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P A R A M E T R E S  :                                                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xci/coordonne.01.I"

#define   DENORMALISER                                                                                                                  \
                    FAUX                                                                                                                \
                                        /* Faut-il denormaliser ('VRAI') ou normaliser ('FAUX') ?                                    */

#define   ABSCISSE                                                                                                                      \
                    VRAI                                                                                                                \
                                        /* Doit-on traiter une abscisse ('VRAI') ou pas ('FAUX') ?                                   */
#define   ABSCISSE_DENORMALISEE                                                                                                         \
                    ADD2(Xmin,PasX)
#define   ABSCISSE_NORMALISEE                                                                                                           \
                    _____cNORMALISE_OX(I_cHOMOTHETIE_Std_OX(ABSCISSE_DENORMALISEE))
                                        /* Abscisse implicite...                                                                     */
                                        /*                                                                                           */
                                        /* Le 20120210183420, le 'I_cHOMOTHETIE_Std_OX(...)' fut introduit...                        */

#define   ORDONNEE                                                                                                                      \
                    FAUX                                                                                                                \
                                        /* Doit-on traiter une ordonnee ('VRAI') ou pas ('FAUX') ?                                   */
#define   ORDONNEE_DENORMALISEE                                                                                                         \
                    ADD2(Ymin,PasY)
#define   ORDONNEE_NORMALISEE                                                                                                           \
                    _____cNORMALISE_OY(I_cHOMOTHETIE_Std_OY(ORDONNEE_DENORMALISEE))
                                        /* Ordonnee implicite...                                                                     */
                                        /*                                                                                           */
                                        /* Le 20120210183420, le 'I_cHOMOTHETIE_Std_OY(...)' fut introduit...                        */

#define   PROFONDEUR                                                                                                                    \
                    FAUX                                                                                                                \
                                        /* Doit-on traiter une profondeur ('VRAI') ou pas ('FAUX') ?                                 */
#define   PROFONDEUR_DENORMALISEE                                                                                                       \
                    ADD2(Zmin,PasZ)
#define   PROFONDEUR_NORMALISEE                                                                                                         \
                    _____cNORMALISE_OZ(PROFONDEUR_DENORMALISEE)
                                        /* Profondeur implicite...                                                                   */

#define   NIVEAU                                                                                                                        \
                    FAUX                                                                                                                \
                                        /* Doit-on traiter un niveau ('VRAI') ou pas ('FAUX') ? Ceci a ete introduit le              */ \
                                        /* 20070818184439...                                                                         */
#define   NIVEAU_DENORMALISE                                                                                                            \
                    BLANC
#define   NIVEAU_NORMALISE                                                                                                              \
                    ______NORMALISE_NIVEAU(NIVEAU_DENORMALISE)
                                        /* Niveau implicite...                                                                       */

#define   NOMBRE_DE_DECIMALES                                                                                                           \
                    SUCC(SUCC(SEIZE))                                                                                                   \
                                        /* Definition du nombre de chiffres a editer (nom compris le point decimal...). ATTENTION,   */ \
                                        /* ce n'est pas le nombre de decimales, mais le nombre total de chiffres, y compris donc la  */ \
                                        /* partie entiere lors de l'utilisation du format "%g". Ceci fut introduit le 20070317115342 */ \
                                        /* afin d'assurer la compatibilite anterieure...                                             */
#nodefine AJOUTER_UN_K_LF_EN_FIN_DE_FORMAT_D_EDITION                                                                                    \
                    VRAI                                                                                                                \
                                        /* Cet indicateur indique si un 'K_LF' doit etre insere a la fin de 'format_d_edition'       */ \
                                        /* ("VRAI") ou pas ("FAUX") et a ete introduit le 20070317115342. Le 20141202163629, a       */ \
                                        /* cause de 'v $xci/valeurs.01$I AJOUTER_UN_K_LF_EN_FIN_DE_FORMAT_D_EDITION', 'define'       */ \
                                        /* devenu inutile a ete remplace par 'nodefine'.                                             */

#include  xcg/ARIT.01.I"
#include  xci/valeurs.01.I"
                                        /* Introduits le 20070317114431...                                                           */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        M A C R O S   U T I L E S  :                                                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xci/valeurs.02.I"
                                        /* Introduit le 20070317114431...                                                            */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        N O R M A L I S A T I O N / D E N O R M A L I S A T I O N   D E   C O O R D O N N E E S  :                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
#include  xci/coordonne.02.I"

     DEFV(Logical,INIT(denormaliser,DENORMALISER));
                                        /* Faut-il denormaliser ('VRAI') ou normaliser ('FAUX') ?                                    */
     DEFV(Logical,INIT(abscisse,ABSCISSE));
                                        /* Doit-on traiter une abscisse ('VRAI') ou pas ('FAUX') ?                                   */
     DEFV(Int,INIT(abscisse_denormalisee,UNDEF));
     DEFV(Float,INIT(abscisse_normalisee,FLOT__UNDEF));
                                        /* Abscisse implicite...                                                                     */

     DEFV(Logical,INIT(ordonnee,ORDONNEE));
                                        /* Doit-on traiter une ordonnee ('VRAI') ou pas ('FAUX') ?                                   */
     DEFV(Int,INIT(ordonnee_denormalisee,UNDEF));
     DEFV(Float,INIT(ordonnee_normalisee,FLOT__UNDEF));
                                        /* Ordonnee implicite...                                                                     */

     DEFV(Logical,INIT(profondeur,PROFONDEUR));
                                        /* Doit-on traiter une profondeur ('VRAI') ou pas ('FAUX') ?                                 */
     DEFV(Int,INIT(profondeur_denormalisee,UNDEF));
     DEFV(Float,INIT(profondeur_normalisee,FLOT__UNDEF));
                                        /* Profondeur implicite...                                                                   */

     DEFV(Logical,INIT(niveau,NIVEAU));
                                        /* Doit-on traiter un niveau ('VRAI') ou pas ('FAUX') ? Ceci a ete introduit le              */
                                        /* 20070818184439...                                                                         */
     DEFV(genere_p,INIT(niveau_denormalise,NIVEAU_DENORMALISE));
     DEFV(Float,INIT(niveau_normalise,NIVEAU_NORMALISE));
                                        /* Niveau implicite...                                                                       */

#include  xci/valeurs.03.I"
                                        /* Introduit le 20070317114431...                                                            */
     /*..............................................................................................................................*/

#include  xci/coordonne.04.I"
                                        /* Ceci a ete introduit le 20051218181932, ainsi que les 'PROCESS_ARGUMENT_?(...)' qui       */
                                        /* suivent...                                                                                */

     GET_ARGUMENTSi(nombre_d_arguments
                   ,BLOC(GET_ARGUMENT_L("centrer=",centrer_les_coordonnees_normalisees);
                         GET_ARGUMENT_L("denormaliser=""denormalisees=""denorm=",denormaliser);
                         GET_ARGUMENT_N("normaliser=""normalisees=""norm=",denormaliser);

                         GET_ARGUMENT_L("ex=""eX=""abscisse=",abscisse);
                                        /* Les parametres "ex=" et "eX=" ont ete introduits le 20070819134356...                     */
                         GIT_ARGUMENT_I("x=""X=",abscisse_denormalisee,ABSCISSE_DENORMALISEE);
                         GIT_ARGUMENT_F("xf=""Xf=",abscisse_normalisee,ABSCISSE_NORMALISEE);

                         GET_ARGUMENT_L("ordonnee=""ey=""eY=",ordonnee);
                                        /* Les parametres "ey=" et "eY=" ont ete introduits le 20070819134356...                     */
                         GIT_ARGUMENT_I("y=""Y=",ordonnee_denormalisee,ORDONNEE_DENORMALISEE);
                         GIT_ARGUMENT_F("yf=""Yf=",ordonnee_normalisee,ORDONNEE_NORMALISEE);

                         GET_ARGUMENT_L("profondeur=""ez=""eZ=",profondeur);
                                        /* Les parametres "ez=" et "eZ=" ont ete introduits le 20070819134356...                     */
                         GIT_ARGUMENT_I("z=""Z=",profondeur_denormalisee,PROFONDEUR_DENORMALISEE);
                         GIT_ARGUMENT_F("zf=""Zf=",profondeur_normalisee,PROFONDEUR_NORMALISEE);

                         GET_ARGUMENT_L("niveau=""en=""eN=",niveau);
                         GET_ARGUMENT_P("n=""N=",niveau_denormalise);
                         GET_ARGUMENT_F("nf=""Nf=",niveau_normalise);
                                        /* Introduits le 20070818184439...                                                           */
                                        /*                                                                                           */
                                        /* ATTENTION : le 20070819113631 je note qu'il faut utiliser ici 'GET_ARGUMENT_P(...)' et    */
                                        /* non pas 'GIT_ARGUMENT_P(...)' ('v $xig/fonct$vv$DEF 20070819113024'). Par "symetrie",     */
                                        /* il en est fait de meme avec 'GET_ARGUMENT_F(...)'. On notera au passage que cela n'a en   */
                                        /* fait aucune importance (contrairement a {abscisse,ordonnee,profondeur} puisqu'en effet    */
                                        /* dans ces trois cas la normalisation/denormalisation depend de '$formatI', alors que pour  */
                                        /* {niveau} la normalisation/denormalisation est immuable...).                               */
                                        /*                                                                                           */
                                        /* Les parametres "en=" et "eN=" ont ete introduits le 20070819134356...                     */

                         PROCESS_ARGUMENTS_DE_PARAMETRAGE_DE_LA_GENERATION_DE_SUITE_DE_VALEURS_1;
                         PROCESS_ARGUMENTS_DE_PARAMETRAGE_DE_LA_GENERATION_DE_SUITE_DE_VALEURS_2;
                                        /* Ces deux procedures furent introduites le 20070317115342...                               */
                         )
                    );

#include  xci/coordonne.03.I"

     Test(IL_FAUT(denormaliser))
          Bblock
          Test(IL_FAUT(abscisse))
               Bblock
               CAL2(Prin1("%d\n"
                         ,TRANS_SUPER_cDENORMALISE_OX(abscisse_normalisee,translation_des_X_normalisees)
                          )
                    );
               Eblock
          ATes
               Bblock
               Eblock
          ETes

          Test(IL_FAUT(ordonnee))
               Bblock
               CAL2(Prin1("%d\n"
                         ,TRANS_SUPER_cDENORMALISE_OY(ordonnee_normalisee,translation_des_Y_normalisees)
                          )
                    );
               Eblock
          ATes
               Bblock
               Eblock
          ETes

          Test(IL_FAUT(profondeur))
               Bblock
               CAL2(Prin1("%d\n",_cDENORMALISE_OZ(profondeur_normalisee)));
               Eblock
          ATes
               Bblock
               Eblock
          ETes

          Test(IL_FAUT(niveau))
               Bblock
               CAL2(Prin1("%d\n",__DENORMALISE_NIVEAU(niveau_normalise)));
                                        /* Introduit le 20070818184439...                                                            */
               Eblock
          ATes
               Bblock
               Eblock
          ETes
          Eblock
     ATes
          Bblock
          Test(IL_FAUT(abscisse))
               Bblock
               EDITION_DE_LA_VALEUR_DE_L_OPERATEUR(TRANS_SUPER_cNORMALISE_OX(abscisse_denormalisee,translation_des_X_normalisees));
                                        /* Le 20060105154711, le format "16g" est passe a "^^g" pour plus de souplesse...            */
                                        /*                                                                                           */
                                        /* Le 20070317114431, fut introduit beaucoup plus de souplesse quant au format d'edition...  */
               Eblock
          ATes
               Bblock
               Eblock
          ETes

          Test(IL_FAUT(ordonnee))
               Bblock
               EDITION_DE_LA_VALEUR_DE_L_OPERATEUR(TRANS_SUPER_cNORMALISE_OY(ordonnee_denormalisee,translation_des_Y_normalisees));
                                        /* Le 20060105154711, le format "16g" est passe a "^^g" pour plus de souplesse...            */
                                        /*                                                                                           */
                                        /* Le 20070317114431, fut introduit beaucoup plus de souplesse quant au format d'edition...  */
               Eblock
          ATes
               Bblock
               Eblock
          ETes

          Test(IL_FAUT(profondeur))
               Bblock
               EDITION_DE_LA_VALEUR_DE_L_OPERATEUR(_____cNORMALISE_OZ(profondeur_denormalisee));
                                        /* Le 20060105154711, le format "16g" est passe a "^^g" pour plus de souplesse...            */
                                        /*                                                                                           */
                                        /* Le 20070317114431, fut introduit beaucoup plus de souplesse quant au format d'edition...  */
               Eblock
          ATes
               Bblock
               Eblock
          ETes

          Test(IL_FAUT(niveau))
               Bblock
               EDITION_DE_LA_VALEUR_DE_L_OPERATEUR(______NORMALISE_NIVEAU(niveau_denormalise));
                                        /* Introduit le 20070818184439...                                                            */
               Eblock
          ATes
               Bblock
               Eblock
          ETes
          Eblock
     ETes

     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.