/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        E T U D E   D E   L A   C O M P L E X I T E   S T R U C T U R E L L E                                                      */
/*        D E   P O I N T S   P S E U D O - A L E A T O I R E S   D A N S   U N   C A D R E   L I M I T E  :                         */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrC/ObjetComplexe.J1$vv$c' :                                                                                   */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 20130620140731).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#ifdef    COMMENTS
#         undef     COMMENTS
#else
#endif

#define   COMMENTS  "Points pseudo-aleatoires type 'drand48(...)' dans un cadre limite (format octet) -noir ou blanc-"

#define   DEFINE_01 "-DXCOTE=gDIVI(dimX,2)  -DYCOTE=gDIVI(dimY,2)"
#define   DEFINE_02 "-DXCOTE=gDIVI(dimX,3)  -DYCOTE=gDIVI(dimY,3)"
#define   DEFINE_03 "-DXCOTE=gDIVI(dimX,4)  -DYCOTE=gDIVI(dimY,4)"
#define   DEFINE_04 "-DXCOTE=gDIVI(dimX,5)  -DYCOTE=gDIVI(dimY,5)"
#define   DEFINE_05 "-DXCOTE=gDIVI(dimX,6)  -DYCOTE=gDIVI(dimY,6)"
#define   DEFINE_06 "-DXCOTE=gDIVI(dimX,7)  -DYCOTE=gDIVI(dimY,7)"
#define   DEFINE_07 "-DXCOTE=gDIVI(dimX,8)  -DYCOTE=gDIVI(dimY,8)"
#define   DEFINE_08 "-DXCOTE=gDIVI(dimX,9)  -DYCOTE=gDIVI(dimY,9)"
#define   DEFINE_09 "-DXCOTE=gDIVI(dimX,10) -DYCOTE=gDIVI(dimY,10)"
#define   DEFINE_10 "-DXCOTE=gDIVI(dimX,11) -DYCOTE=gDIVI(dimY,11)"
#define   DEFINE_11 "-DXCOTE=gDIVI(dimX,12) -DYCOTE=gDIVI(dimY,12)"
#define   DEFINE_12 "-DXCOTE=gDIVI(dimX,13) -DYCOTE=gDIVI(dimY,13)"
#define   DEFINE_13 "-DXCOTE=gDIVI(dimX,14) -DYCOTE=gDIVI(dimY,14)"
#define   DEFINE_14 "-DXCOTE=gDIVI(dimX,15) -DYCOTE=gDIVI(dimY,15)"
#define   DEFINE_15 "-DXCOTE=gDIVI(dimX,16) -DYCOTE=gDIVI(dimY,16)"
#define   DEFINE_16 "-DXCOTE=gDIVI(dimX,17) -DYCOTE=gDIVI(dimY,17)"
                                        /* Les seuils ont ete obtenus par (le 20130615083031) :                                      */
                                        /*                                                                                           */
                                        /*                  $xci/valeurs_inte$X                                                   \  */
                                        /*                                      p=1 d=16                                          \  */
                                        /*                                      lineaire=VRAI                                     \  */
                                        /*                                      vD=1 vA=2000                                 |    \  */
                                        /*                  $xrv/LOGX.01$X                                                        \  */
                                        /*                                      ne=0                                              \  */
                                        /*                                      fichier==                                    |    \  */
                                        /*                  $xrv/normalise.01$X                                                   \  */
                                        /*                                      ne=0                                              \  */
                                        /*                                      fichier==                                         \  */
                                        /*                                      origine=0.1 extremite=0.99                        \  */
                                        /*                                      decimales=4                                          */
                                        /*                                                                                           */

#include  "images_1octet.01.vv.I"

#ifndef   XCOTE
#         define    XCOTE                                                                                                               \
                              gDIVI(dimX,4)
#else
#endif

#ifndef   YCOTE
#         define    YCOTE                                                                                                               \
                              gDIVI(dimY,4)
#else
#endif

#ifndef   SEUIL
#         define    SEUIL                                                                                                               \
                              (0.5)
#else
#endif

double    seuil=SEUIL;

int       Xcote=XCOTE;
int       Ycote=YCOTE;

MAIN(
          {
          long      int       m=0x0000ffffffffffff;
          long      int       a=0x5DEECE66D;
          long      int       c=0xB;
          long      int       Xi=1;
                                        /* Les valeurs des parametres {m,a,c} sont ceux de la fonction 'drand48(...)'.               */

          for       (y=Ymin ; y <= Ymax ; y=ADD2(y,1))
                    {
                    for       (x=Xmin ; x <= Xmax ; x=ADD2(x,1))
                              {
                              if        (    ((x >= SOUS(Xcentre,Xcote)) && (x <= ADD2(Xcentre,Xcote)))
                                        &&   ((y >= SOUS(Ycentre,Ycote)) && (y <= ADD2(Ycentre,Ycote)))
                                         )
                                        {
                                        Xi = ETLO(ADD2(MUL2(a,Xi),c),m);

                                        STORE_IMAGE_PLAN(x,y,COND(IFLT(DIVIf(((double)Xi),((double)m)),seuil),NOIR,BLANC));
                                        }
                              else
                                        {
                                        STORE_IMAGE_PLAN(x,y,BLANC);
                                        }
                              }
                    }

          SORTIE_DU_FICHIER_IMAGE;
          EDITER_LES_COMPTEURS_DES_FONCTIONS;
          }
     )



Copyright © Jean-François Colonna, 2013-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2013-2021.