/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        T E S T   D E   L A   F O N C T I O N   M O D U L O  :                                                                     */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xtKg/modulo.01$K' :                                                                                            */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 1987??????????).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

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

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P A R A M E T R E S  :                                                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   MINIMUM1      -2
#define   MAXIMUM1      2
#define   F1(a)                                                                                                                         \
                    Bblock                                                                                                              \
                    EGAL(x,a);                                                                                                          \
                    EGAL(x,MODU(x,MINIMUM1,MAXIMUM1));                                                                                  \
                    CAL2(Prin4("MODU  %d = %d   dans [%d,%d]\n",a,x,PINTE(MINIMUM1),PINTE(MAXIMUM1)));                                  \
                    Eblock
#define   MINIMUM2      2
#define   MAXIMUM2      -2
#define   F2(a)                                                                                                                         \
                    Bblock                                                                                                              \
                    EGAL(x,a);                                                                                                          \
                    EGAL(x,MODU(x,MINIMUM2,MAXIMUM2));                                                                                  \
                    CAL2(Prin4("MODU  %d = %d   dans [%d,%d]\n",a,x,PINTE(MINIMUM2),PINTE(MAXIMUM2)));                                  \
                    Eblock
#define   MINIMUM3      -2
#define   MAXIMUM3      2
#define   F3(a)                                                                                                                         \
                    Bblock                                                                                                              \
                    EGAL(x,a);                                                                                                          \
                    EGAL(x,MODU(x,MINIMUM3,MAXIMUM3));                                                                                  \
                    CAL2(Prin4("MODS  %d = %d   dans [%d,%d]\n",a,x,PINTE(MINIMUM3),PINTE(MAXIMUM3)));                                  \
                    Eblock
#define   TI        INTE(QUAR(MOINS_L_INFINI))
#define   TS        INTE(QUAR(INFINI))
#define   Xminimum  0
#define   dimensX   512
#define   DENORM(x) DIVI(SOUS(FLOT(x),FLOT(Xminimum)),FLOT(dimensX))
#define   NORMAL(x)   INTE(ADD2(FLOT(Xminimum),MUL2(FLOT(dimensX),FLOT(x))))
#define   MINIMUM4      origine
#define   MAXIMUM4      extremite
#define   F4(a)                                                                                                                         \
                    Bblock                                                                                                              \
                    EGAL(y,a);                                                                                                          \
                    EGAL(y,MODU(y,MINIMUM4,MAXIMUM4));                                                                                  \
                    CAL2(Prin4("MODS  %d = %g   dans [%d,%d]\n",a,y,PINTE(MINIMUM4),PINTE(MAXIMUM4)));                                  \
                    CAL2(Prin2("\n               %08x   %08x",FLOT(a),y));                                                              \
                    Eblock

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        T E S T   D E   L A   F O N C T I O N   M O D U L O  :                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     DEFV(Int,INIT(x,UNDEF));
     DEFV(Float,INIT(y,FLOT__UNDEF));
     DEFV(Int,INIT(n,UNDEF));
     DEFV(Float,INIT(origine,FLOT__UNDEF));
     DEFV(Float,INIT(extremite,FLOT__UNDEF));
     /*..............................................................................................................................*/
     GET_ARGUMENTS_(nombre_d_arguments
                   ,BLOC(VIDE;)
                    );

     CAL2(Prin0("\n sens direct avec MODU :\n"));

     DoIn(n,SOUS(MINIMUM1,TRIP(MAXIMUM1)),TRIP(MAXIMUM1),I)
          Bblock
          F1(n)
          Eblock
     EDoI

     CAL2(Prin0("\n sens inverse avec MODU :\n"));

     DoIn(n,TRIP(MAXIMUM2),SOUS(MINIMUM2,TRIP(MAXIMUM2)),I)
          Bblock
          F2(n)
          Eblock
     EDoI

     CAL2(Prin0("\n sens direct avec MODS :\n"));

     DoIn(n,SOUS(MINIMUM3,TRIP(MAXIMUM3)),TRIP(MAXIMUM3),I)
          Bblock
          F3(n)
          Eblock
     EDoI

     CAL2(Prin0("\n test flottant avec MODS :\n"));
     CAL2(Prin2("TI = %d   TS = %d\n",TI,TS));

     EGAL(origine,NORMAL(DENORM(TI)));
     EGAL(extremite,NORMAL(DENORM(TS)));

     DoIn(n,SOUS(MINIMUM1,TRIP(MAXIMUM1)),TRIP(MAXIMUM1),I)
          Bblock
          F4(n)
          Eblock
     EDoI

     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.