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