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