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