* @POINTIR PROCEDUR FANDEUR 22/06/17 21:15:02 11378 * * *---------------------------------------------------------------------* * * * PTS1 = @POINTIR | 'UNIF' N1 | (MAIL1) ('PINI' PTS2) * * | 'EXCL' N1 'SPHE' D1 (N2) | * * * * ... ('GERM' IGER1) ; * * * *---------------------------------------------------------------------* * * * Acquisition des arguments : * * * * Dimension de travail (IDIM1) : * * * Je cree le texte 'VOLU' 'SI' 'DIME' = 3 pour l'op. 'INCL' : * 'SI' (IDIM1 'EGA' 3) ; 'SINO' ; 'FINS' ; * * * Precision pour l'operateur INCLus : * TOL1 = -1.E-5 ; * * *---------------------------------------------------------------------* * * * CAS 1 : DISTRIBUTION UNIFORME * * * 'SI' ('EGA' DISTRI1 'UNIF') ; * * * Arguments optionnels : * * * * * * Initialisation des donnees sur le domaine du tirage : * IMAIL1 = 'EXISTE' MAIL1 ; 'SI' IMAIL1 ; RTIR1 = 1. ; 'REPE' B0 IDIM1 ; RTIR1 = RTIR1 '*' (MAXI1 '-' MINI1) ; TMOY1. &B0 = 0.5 '*' (MAXI1 '+' MINI1) ; TECA1. &B0 = 0.5 '*' (MAXI1 '-' MINI1) ; 'FIN' B0 ; 'SINO' ; 'REPE' B0 IDIM1 ; TMOY1. &B0 = 0.5 ; TECA1. &B0 = 0.5 ; 'FIN' B0 ; RTIR1 = 1. ; 'FINS' ; * * * Initialisation du nombre de tirages : NTIR1 * NTIR1 = 'ENTI' (('FLOT' NPTS1) '*' RTIR1) ; * * * Valeur du germe : * IGER1 = 1 ; IAUTO1 = FAUX ; 'SI' ('EGA' MOT1 'GERM') ; IAUTO1 = VRAI ; IGER1 = 'ABS' IGER2 ; 'FINS' ; 'SINO' ; 'FINS' ; 'FINS' ; 'FINS' ; * * * Tirage des points : * NB1 = NTIR1 ; 'REPE' B0 IDIM1 ; 'FIN' B0 ; 'SI' (IDIM1 'EGA' 1) ; 'FINSI' ; 'SI' (IDIM1 'EGA' 2) ; 'FINSI' ; 'SI' (IDIM1 'EGA' 3) ; 'FINSI' ; 'OUBLIER' TVAR1 ; * Presence d'un domaine de tirage : 'SI' IMAIL1 ; 'FINS' ; 'SI' (NPTSI1 '>' NPTS1) ; NPTSI1 = NPTS1 ; 'FINS' ; IP1 = NTIR1 ; * Nouveau germe si germe auto : * 'SI' IAUTO1 ; 'OPTI' 'IMPR' IMPR1 ; 'OPTI' 'ECHO' VECH1 ; 'FINS' ; * * 'FINS' ; * * *---------------------------------------------------------------------* * * * CAS 2 : PROCESSUS D'EXCLUSION * * * * REPU = ancienne synthaxe pour le processus d'exclusion (repulsion) * 'SI' (('EGA' DISTRI1 'EXCL') 'OU' ('EGA' DISTRI1 'REPU')) ; * * * Arguments processus d'exclusion : * 'SI' ('EGA' ZREP1 'SPHE') ; DREP1 = 'ABS' DREP1 ; DREP2 = 1.E+99 '+' DREP1 ; DREP1 = 'ABS' DREP1 ; DREP2 = 'ABS' DREP2 ; 'SI' ('>EG' DREP1 DREP2) ; DREP1 DREP2 = DREP2 DREP1 ; 'FINS' ; 'SINO' ; 'FINS' ; 'FINS' ; * * * * * Initialisation des donnees sur le domaine du tirage : * IMAIL1 = 'EXISTE' MAIL1 ; 'SI' IMAIL1 ; RTIR1 = 1. ; 'REPE' B0 IDIM1 ; RTIR1 = RTIR1 '*' (MAXI1 '-' MINI1) ; TMOY1. &B0 = 0.5 '*' (MAXI1 '+' MINI1) ; TECA1. &B0 = 0.5 '*' (MAXI1 '-' MINI1) ; 'FIN' B0 ; 'SINO' ; 'REPE' B0 IDIM1 ; TMOY1. &B0 = 0.5 ; TECA1. &B0 = 0.5 ; 'FIN' B0 ; RTIR1 = 1. ; 'FINS' ; * * * Initialisation du nombre de tirages : NTIR1 * NTIR1 = 25 '*' ('ENTI' (('FLOT' NPTS1) '*' RTIR1)) ; 'FINS' ; * * * Initialisation des points du tirage et du germe : * IPTS2 = FAUX ; IGER1 = 1 ; IAUTO1 = FAUX ; 'REPE' XB0 3 ; 'QUITTER' XB0 ; 'FINS' ; 'SI' ('EGA' MOT1 'PINI') ; IPTS2 = VRAI ; PTS2 = 'CHANGER' 'POI1' PTS2 ; 'FINS' ; 'SI' ('EGA' MOT1 'GERM') ; IAUTO1 = VRAI ; IGER1 = 'ABS' IGER2 ; 'FINS' ; 'SINO' ; 'FINS' ; 'FINS' ; 'FIN' XB0 ; * * * Tirage des points : * NB1 = NTIR1 ; 'REPE' B0 IDIM1 ; 'FIN' B0 ; 'SI' (IDIM1 'EGA' 1) ; 'FINSI' ; 'SI' (IDIM1 'EGA' 2) ; 'FINSI' ; 'SI' (IDIM1 'EGA' 3) ; 'FINSI' ; 'OUBLIER' TVAR1 ; * Presence d'un domaine de tirage : 'SI' IMAIL1 ; 'FINS' ; * Creation d'un maillage vide si aucun point tire : * NPTSI1 = 0 ; * 'REPE' B1 NB1 ; IP1 = &B1 ; 'SI' IPTS2 ; DI12 = 'DIST' PTSI1 PTSI2 ; 'SINO' ; 'SI' (NPTSI1 'EGA' 0) ; DI12 = DREP1 ; 'SINO' ; DI12 = 'DIST' PTSI1 PTSI2 ; 'FINS' ; 'FINS' ; 'SI' ((DI12 '>EG' DREP1) 'ET' (DI12 '<EG' DREP2)) ; PTS1 = PTS1 'ET' PTSI1 ; NPTSI1 = NPTSI1 '+' 1 ; 'SI' (NPTSI1 'EGA' NPTS1) ; 'QUIT' B1 ; 'FINS' ; 'FINS' ; 'FIN' B1 ; * * * Nouveau germe si germe auto : * 'SI' IAUTO1 ; 'OPTI' 'IMPR' IMPR1 ; 'OPTI' 'ECHO' VECH1 ; 'FINS' ; * * 'FINS' ; * * *---------------------------------------------------------------------* * * * Message : * IP1 ' tirages utilises /' ' ' NTIR1 ' tirages effectues.' ; * * 'RESP' PTS1 ; 'FINP' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales