/*************************************************************************************************************************************/
/* */
/* G E N E R A T E U R S A L E A T O I R E S : */
/* */
/* */
/* Definition : */
/* */
/* Dans ce fichier se trouvent */
/* des generateurs aleatoires bi- */
/* et tri-dimensionnels redonnant */
/* toujours la meme valeur en les */
/* memes points (a graine constante...). */
/* */
/* */
/* Author of '$ximf/aleatoires$DEF' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 19870000000000). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* P A R A M E T R E S D E S G E N E R A T E U R S A L E A T O I R E S : */
/* */
/*************************************************************************************************************************************/
Denumer04(INIS(_RDN_INIT,UN)
/* Afin d'initialiser un generateur aleatoire, */
,_RDN_GENERE
/* Afin de generer un nombre aleatoire, */
,_RDN_INIT_AND_GENERE
/* Afin d'initialiser un generateur aleatoire et de generer un nombre aleatoire. */
,DERNIERE_FONCTION_DES_GENERATEURS_ALEATOIRES
,nom_des_FONCTIONS_DES_GENERATEURS_ALEATOIRES
);
#define RDN_INIT \
ENUM(_RDN_INIT)
#define RDN_GENERE \
ENUM(_RDN_GENERE)
#define RDN_INIT_AND_GENERE \
ENUM(_RDN_INIT_AND_GENERE)
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* C H O I X D E L A L O I D E D I S T R I B U T I O N : */
/* */
/*************************************************************************************************************************************/
Denumer04(INIS(_RDN_UNIFORME,UN)
/* Afin d'obtenir une distribution uniforme, */
,_RDN_GAUSSIENNE
/* Afin d'obtenir une distribution gaussienne. */
,_RDN_ARBITRAIRE_SUB
/* Afin d'obtenir une distribution arbitraire definie par la substitution courante */
/* (introduit le 20110401173222). */
,DERNIERE_LOI_DE_DISTRIBUTION_DES_GENERATEURS_ALEATOIRES
,nom_des_LOIS_DE_DISTRIBUTION_DES_GENERATEURS_ALEATOIRES
);
#define RDN_UNIFORME \
ENUM(_RDN_UNIFORME)
#define RDN_GAUSSIENNE \
ENUM(_RDN_GAUSSIENNE)
#define RDN_ARBITRAIRE_SUB \
ENUM(_RDN_ARBITRAIRE_SUB)
/* Ceci fut introduit le 20110328114501... */
#define CONTROLE_DE_L_ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE__ARGUMENT_substitution_1 \
"loi_ARBITRAIRE_SUBSTITUTION_substitution=""lASs=""substitution="
#ifdef CONTROLE_DE_L_ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE__ARGUMENT_substitution__PAS_s
# define CONTROLE_DE_L_ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE__ARGUMENT_substitution_2 \
CONTROLE_DE_L_ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE__ARGUMENT_substitution_1
#Aifdef CONTROLE_DE_L_ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE__ARGUMENT_substitution__PAS_s
# define CONTROLE_DE_L_ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE__ARGUMENT_substitution_2 \
CONTROLE_DE_L_ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE__ARGUMENT_substitution_1"s="
#Eifdef CONTROLE_DE_L_ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE__ARGUMENT_substitution__PAS_s
/* Dispositif introduit le 20110403080807 pour 'v $xci/random.02$K .seuil=..s=.'... */
#define CONTROLE_DE_L_ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE__ARGUMENT_palette_1 \
"loi_ARBITRAIRE_SUBSTITUTION_paletteA=""lASp=""paletteA=""palette=""pA="
#ifdef CONTROLE_DE_L_ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE__ARGUMENT_palette__PAS_p
# define CONTROLE_DE_L_ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE__ARGUMENT_palette_2 \
CONTROLE_DE_L_ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE__ARGUMENT_palette_1
#Aifdef CONTROLE_DE_L_ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE__ARGUMENT_palette__PAS_p
# define CONTROLE_DE_L_ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE__ARGUMENT_palette_2 \
CONTROLE_DE_L_ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE__ARGUMENT_palette_1"p="
#Eifdef CONTROLE_DE_L_ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE__ARGUMENT_palette__PAS_p
/* Dispositif introduit le 20110403080807 pour 'v $xci/valeurs_alea$K .premiere=..p=..D=.'. */
#define CONTROLE_DE_L_ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE \
Bblock \
\
DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
\
GET_ARGUMENT_I("loi_distribution=""loi=" \
,ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE_____loi_de_distribution \
); \
\
GET_ARGUMENT_I("loi_GAUSS_tentatives=""lGt=" \
,ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE_____loi_de_distribution_gaussienne__Ntentatives \
); \
GET_ARGUMENT_F("loi_GAUSS_esperance=""lGe=""lGm=" \
,ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE_____loi_de_distribution_gaussienne__esperance_ \
); \
GET_ARGUMENT_F("loi_GAUSS_ecart_type=""lGs=" \
,ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE_____loi_de_distribution_gaussienne__ecart_type \
); \
\
GET_ARGUMENT_I("loi_ARBITRAIRE_SUBSTITUTION_nombre_tentatives=""lASnt=" \
,ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE_____loi_de_distribution_arbitraire_sub__Ntentatives \
); \
GET_ARGUMENT_L("loi_ARBITRAIRE_SUBSTITUTION_lissage=""lASl=" \
,ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE_____loi_de_distribution_arbitraire_sub__lissage \
); \
GET_ARGUMENT_I("loi_ARBITRAIRE_SUBSTITUTION_Npasses=""lASnp=" \
,ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE_____loi_de_distribution_arbitraire_sub__Npasses \
); \
GET_ARGUMENT_I("loi_ARBITRAIRE_SUBSTITUTION_pas_couleurs=""lASpc=" \
,ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE_____loi_de_distribution_arbitraire_sub__PAS_COL \
); \
PROCESS_ARGUMENT_C(CONTROLE_DE_L_ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE__ARGUMENT_substitution_2 \
,nom_substitution \
,BLOC(VIDE;) \
,BLOC(Bblock \
INITIALISATION_LISTES_DE_SUBSTITUTION; \
Eblock \
) \
); \
PROCESS_ARGUMENT_C(CONTROLE_DE_L_ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE__ARGUMENT_palette_2 \
,nom_paletteA \
,BLOC(VIDE;) \
,BLOC(Bblock \
INITIALISATION_LISTES_DE_SUBSTITUTION; \
Eblock \
) \
); \
\
FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
\
Eblock \
/* Introduit le 20110401144059... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* M E T H O D E C H O I S I E P O U R G E N E R E R U N E C O M B I N A I S O N */
/* D E S C O O R D O N N E E S ( X , Y [ , Z ] ) P O U R I N I T I A L I S E R */
/* L A G E N E R A T I O N D E S N O M B R E S A L E A T O I R E S : */
/* */
/*************************************************************************************************************************************/
Denumer08(INIS(_GENERATEUR_ALEATOIRE_gen1,UN)
,_GENERATEUR_ALEATOIRE_gen2
,_GENERATEUR_ALEATOIRE_gen3
,_GENERATEUR_ALEATOIRE_gen4
,_GENERATEUR_ALEATOIRE_gen5
,_GENERATEUR_ALEATOIRE_gen6
,_GENERATEUR_ALEATOIRE_gen7
,DERNIER_GENERATEUR_ALEATOIRE
,nom_des_GENERATEURS_ALEATOIRES
);
#define GENERATEUR_ALEATOIRE_gen1 \
ENUM(_GENERATEUR_ALEATOIRE_gen1)
#define GENERATEUR_ALEATOIRE_gen2 \
ENUM(_GENERATEUR_ALEATOIRE_gen2)
#define GENERATEUR_ALEATOIRE_gen3 \
ENUM(_GENERATEUR_ALEATOIRE_gen3)
#define GENERATEUR_ALEATOIRE_gen4 \
ENUM(_GENERATEUR_ALEATOIRE_gen4)
#define GENERATEUR_ALEATOIRE_gen5 \
ENUM(_GENERATEUR_ALEATOIRE_gen5)
#define GENERATEUR_ALEATOIRE_gen6 \
ENUM(_GENERATEUR_ALEATOIRE_gen6)
#define GENERATEUR_ALEATOIRE_gen7 \
ENUM(_GENERATEUR_ALEATOIRE_gen7)
#define METHODE_STANDARD_gen_ft \
GENERATEUR_ALEATOIRE_gen5 \
/* La methode standard est 'gen5_ft'. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* G E S T I O N D E S N O M B R E S A L E A T O I R E S E N T I E R S : */
/* */
/*************************************************************************************************************************************/
#define MAJORATION_BORNE_SUPERIEURE_D_UNE_GENERATION_ALEATOIRE_ENTIERE(borne_superieure) \
ADD2(FLOT(borne_superieure),SOUS(FU,mgEPSILON)) \
/* Afin de garantir que la borne superieure sera bien atteinte en valeur entiere (cela */ \
/* fut introduit le 20070210091517). */