#######################################################################################################################################
# #
# G E N E R A T I O N D ' I M A G E S R E L A T V E S A L ' E N T R O P I E D E B O L T Z M A N N : #
# #
# #
# Author of '$xiirv/.BOLT.11.1.$U' : #
# #
# Jean-Francois COLONNA (LACTAMME, 20210819121525). #
# #
#######################################################################################################################################
$Z setParam _____Format "Suq"
$Z # Parametre introduit le 20210821180923... #
$Z setParam _____Dimension 64
$Z setParam _____Graine 1947
$Z setParam _____NPile $GRIS_2
$Z setParam _____NFace $GRIS_8
$Z setParam _____NGrille $GRIS_4
$Z setParam _____NEntropie $GRIS_6
$Z setParam _____DemiPave 1
$Z # Parametre introduit le 20210821180923... #
$Z @ PaRiTe = $_____Dimension % 2
$Z if ($PaRiTe != 0) then
$Z # Verification introduite le 20210824105710... #
#20220105113156____:$Z ATTENTION "Il est preferable que $K_QS$K_DOLLAR""_____Dimension$K_QS soit paire \\c" #
$Z ATTENTION "Il est preferable que $K_QS$K_DOLLAR""_____Dimension$K_QS soit paire \c"
$Z echo "afin que l'entropie n'ait qu'un seul maximum."
$Z else
$Z endif
$Z set format_FoRmAt=`eval echo "$K_DOLLAR""format_""$_____Format"`
$Z set format_dimXFoRmAt=`eval echo "$K_DOLLAR""dimX""$_____Format"`
$Z set format_dimYFoRmAt=`eval echo "$K_DOLLAR""dimY""$_____Format"`
$Z # Introduit le 20210821102347 pour ameliorer le parametrage... #
$Z FilSTmpB LiStEPoInTs
$Z set CoOrDoNnEe_Xmin=`calcul $Xmin+1`
$Z # Afin de rendre la barre X=0 implicite puisqu'elle est vide... #
$Z set CoOrDoNnEe_Xmax=`calcul $Xmin+$_____Dimension`
$Z set CoOrDoNnEe_Ymin=`calcul $Ymin`
$Z set CoOrDoNnEe_Ymax=`calcul $Ymin+$_____Dimension-1`
$Z set CoOrDoNnEe_X=$CoOrDoNnEe_Xmin
$Z set GrAiNe=$_____Graine
$Z while ($CoOrDoNnEe_X <= $CoOrDoNnEe_Xmax)
$Z $xci/valeurs_inte$X premiere=$CoOrDoNnEe_Xmin derniere=$CoOrDoNnEe_X \
$Z vD=$CoOrDoNnEe_X vA=$CoOrDoNnEe_X \
$Z lineaire=VRAI \
$Z entiers=FAUX \
$Z >>! $LiStEPoInTs$COORD_X
$Z # On notera le "entiers=FAUX" ('v $xci/valeurs_inte$K entier=FAUX' a ce propos...). #
$Z $xci/valeurs_alea$X premiere=$CoOrDoNnEe_Xmin derniere=$CoOrDoNnEe_X \
$Z inferieur=$CoOrDoNnEe_Ymin superieur=$CoOrDoNnEe_Ymax \
$Z entiers=VRAI sans_collisions=VRAI message_borne_superieure_entiere=FAUX \
$Z graine=$GrAiNe \
$Z >>! $LiStEPoInTs$COORD_Y
$Z # Ainsi, on genere 65 barres verticales contenant de gauche a droite {0,1,...,63,64} points, #
$Z # la barre X=0 etant implicite puisque l'on commence a '$Xmin+1' et ce parce que cette barre #
$Z # est vide... #
$Z @ GrAiNe = $GrAiNe + 1
$Z @ CoOrDoNnEe_X = $CoOrDoNnEe_X + 1
$Z end
$Z set NPoInTsX=`$CA $LiStEPoInTs$COORD_X | $WCl`
$Z set NPoInTsY=`$CA $LiStEPoInTs$COORD_Y | $WCl`
$Z set NPoInTs=`$xcg/MIN2.01$X x=$NPoInTsX y=$NPoInTsY`
$Z $xrv/store_image$X \
$Z A=$_____NPile \
$Z ne=$NPoInTs \
$Z Xdenormalisees=VRAI \
$Z LISTE_X=$LiStEPoInTs$COORD_X \
$Z Ydenormalisees=VRAI \
$Z LISTE_Y=$LiStEPoInTs$COORD_Y \
$Z Ndenormalises=VRAI \
$Z LISTE_NIVEAU=$_____NFace \
$Z R=$_____ImageR \
$Z $format_FoRmAt
$Z $xci/format.01$X \
$Z A=$_____ImageR \
$Z $format_FoRmAt \
$Z mode=0 \
$Z R=$_____ImageR \
$Z $formatIR
$Z $xci/grille.01$X \
$Z A=$_____ImageR \
$Z denormalisees=VRAI \
$Z mx=`calculINS $dimX/$format_dimXFoRmAt` \
$Z X_increment_gauche=-1 \
$Z my=`calculINS $dimY/$format_dimYFoRmAt` \
$Z Y_increment_bas=-1 \
$Z niveau=$_____NGrille \
$Z R=$_____ImageR \
$Z $formatI
$Z # Mise en place de la grille... #
$Z set EfFaCeMeNt_X=`calcul ($format_dimXFoRmAt-($_____Dimension+1))/$format_dimXFoRmAt`
$Z set EfFaCeMeNt_Y=`calcul ($format_dimXFoRmAt-($_____Dimension+0))/$format_dimYFoRmAt`
$Z set CeNtRaGe_X=`calcul $EfFaCeMeNt_X/2`
$Z $xci/scroll$X \
$Z A=$_____ImageR \
$Z toreX=FAUX trX=+$EfFaCeMeNt_X \
$Z toreY=FAUX trY=+$EfFaCeMeNt_Y \
$Z $formatI | \
$Z $xci/scroll$X \
$Z toreX=FAUX trX=-$CeNtRaGe_X \
$Z toreY=FAUX trY=`calcul -$EfFaCeMeNt_Y+0.01` \
$Z R=$_____ImageR \
$Z $formatI
$Z # Positionnement de la grille remplie... #
$Z FilSTmpB LiStEEnTrOpIe
#20210821103832____:$Z $BC -l $xtb/combinaisons.01 | \ #
#20210821103832____:$Z $GRE " entropie=" | \ #
#20210821103832____:$Z $AW ' { print $2 } ' | \ #
#20210821103832____:$Z $SE -e "s/^.*=//" | \ #
#20210821103832____:$Z $xrv/normalise.01$X \ #
#20210821103832____:$Z ne=0 \ #
#20210821103832____:$Z fichier== \ #
#20210821103832____:$Z minimum=0.01 \ #
#20210821103832____:$Z maximum=0.46 \ #
#20210821103832____:$Z > $LiStEEnTrOpIe$COORD_Y #
$Z # Recuperation de l'entropie (en fait le logarithme en faisant egale a 1 la constante de #
$Z # Boltzmann) "renormalisee" definissant les ordonnees... #
#20210821120214____:$Z $BC -l $xtb/combinaisons.01 | \ #
#20210821120214____:$Z $GRE " entropie=" | \ #
#20210821120214____:$Z $AW ' { print $2 } ' | \ #
#20210821120214____:$Z $SE -e "s/^.*=//" | \ #
#20210821120214____:$Z $xrv/normalise.01$X \ #
#20210821120214____:$Z ne=0 \ #
#20210821120214____:$Z fichier== \ #
#20210821120214____:$Z minimum=0.01 \ #
#20210821120214____:$Z maximum=`calcul $EfFaCeMeNt_Y-0.04` \ #
#20210821120214____:$Z > $LiStEEnTrOpIe$COORD_Y #
$Z FilSTmpB FArGuMeNtS
$Z echo "n=$_____Dimension" \
$Z >> $FArGuMeNtS
#20210826113114____:$Z set MiNiMuM_Y=0.01 #
$Z # Introduit le 20210826110946... #
#20210826110946____:$Z $BC -l $FArGuMeNtS $xtb/EntropieConfiguration.01 | \ #
#20210826110946____:$Z $SE -e "s/^.*=//" | \ #
#20210826110946____:$Z $xrv/normalise.01$X \ #
#20210826110946____:$Z ne=0 \ #
#20210826110946____:$Z fichier== \ #
#20210826110946____:$Z minimum=0.01 \ #
#20210826110946____:$Z maximum=`calcul $EfFaCeMeNt_Y-0.04` \ #
#20210826110946____:$Z > $LiStEEnTrOpIe$COORD_Y #
#20210826113114____:$Z $BC -l $FArGuMeNtS $xtb/EntropieConfiguration.01 | \ #
#20210826113114____:$Z $SE -e "s/^.*=//" | \ #
#20210826113114____:$Z $xrv/normalise.01$X \ #
#20210826113114____:$Z ne=0 \ #
#20210826113114____:$Z fichier== \ #
#20210826113114____:$Z minimum=$MiNiMuM_Y \ #
#20210826113114____:$Z maximum=`calcul $EfFaCeMeNt_Y-0.04` \ #
#20210826113114____:$Z > $LiStEEnTrOpIe$COORD_Y #
#20210826113114____:$Z $BC -l $FArGuMeNtS $xtb/EntropieConfiguration.01 | \ #
#20210826113114____:$Z $SE -e "s/^.*=//" | \ #
#20210826113114____:$Z $xrv/normalise.01$X \ #
#20210826113114____:$Z ne=0 \ #
#20210826113114____:$Z fichier== \ #
#20210826113114____:$Z minimum=0 \ #
#20210826113114____:$Z maximum=`calcul $EfFaCeMeNt_Y-0.04` \ #
#20210826113114____:$Z > $LiStEEnTrOpIe$COORD_Y #
$Z $BC -l $FArGuMeNtS $xtb/EntropieConfiguration.01 | \
$Z $SE -e "s/^.*=//" | \
$Z $xrv/normalise.01$X \
$Z ne=0 \
$Z fichier== \
$Z minimum=0 \
$Z maximum=`calcul $EfFaCeMeNt_Y-0.035` \
$Z > $LiStEEnTrOpIe$COORD_Y
$Z # Recuperation de l'entropie (en fait le logarithme en faisant egale a 1 la constante de #
$Z # Boltzmann) "renormalisee" definissant les ordonnees... #
$Z # #
$Z # Le parametre numerique '0.04' est arbitraire et est destine a eviter que l'histogramme #
$Z # touche le sommet de l'image (etant strictement positif...). #
$Z FilSTmpE FArGuMeNtS
$Z set NPoInTsY=`$CA $LiStEEnTrOpIe$COORD_Y | $WCl`
$Z set FaCtEuR=`calcul 0.98*($dimX/$format_dimXFoRmAt)`
$Z set CoOrDoNnEe_Xmin=`calcul $FaCtEuR*$Xmin`
$Z set CoOrDoNnEe_Xmax=`calcul $FaCtEuR*$CoOrDoNnEe_Xmax`
#20210821103832____:$Z echo $Xmin | \ #
#20210821103832____:$Z $CA - $LiStEPoInTs$COORD_X | \ #
#20210821103832____:$Z $SE -e "s/^[^$Alphabet_0_9]//" | \ #
#20210821103832____:$Z $SOR -u -n | \ #
#20210821103832____:$Z $xrv/MUL2.11$X ne=0 \ #
#20210821103832____:$Z fichier1== \ #
#20210821103832____:$Z fichier2=`calcul $dimX/$format_dimXFoRmAt` \ #
#20210821103832____:$Z formater=VRAI entiers=VRAI | \ #
#20210821103832____:$Z $xrv/ADD2.11$X ne=0 \ #
#20210821103832____:$Z fichier1== \ #
#20210821103832____:$Z fichier2=`calculINS ($dimX*$CeNtRaGe_X)-(($dimX/$format_dimXFoRmAt)/2)-1` \ #
#20210821103832____:$Z formater=VRAI entiers=VRAI \ #
#20210821103832____:$Z > $LiStEEnTrOpIe$COORD_X #
$Z echo $Xmin | \
$Z $CA - $LiStEPoInTs$COORD_X | \
$Z $SE -e "s/^[^$Alphabet_0_9]//" | \
$Z $SOR -u -n | \
$Z $xrv/MUL2.11$X ne=0 \
$Z fichier1== \
$Z fichier2=`calcul $dimX/$format_dimXFoRmAt` \
$Z formater=VRAI entiers=VRAI | \
$Z $xrv/ADD2.11$X ne=0 \
$Z fichier1== \
$Z fichier2=`calculINS ($dimX*$CeNtRaGe_X)+(($dimX/$format_dimXFoRmAt)/2)-1` \
$Z formater=VRAI entiers=VRAI \
$Z > $LiStEEnTrOpIe$COORD_X
$Z # Generation des abscisses sans oublier d'introduire en tete la colonne X=0 (=$Xmin) #
$Z # implicite... #
$Z FilSTmpB HiStOgRaMmE
$Z set NPoInTsX=`$CA $LiStEEnTrOpIe$COORD_X | $WCl`
$Z set NPoInTs=`$xcg/MIN2.01$X x=$NPoInTsX y=$NPoInTsY`
#20210826110946____:$Z $xrv/store_image$X \ #
#20210826110946____:$Z ne=$NPoInTs \ #
#20210826110946____:$Z Xdenormalisees=VRAI \ #
#20210826110946____:$Z LISTE_X=$LiStEEnTrOpIe$COORD_X \ #
#20210826110946____:$Z Ydenormalisees=FAUX \ #
#20210826110946____:$Z LISTE_Y=$LiStEEnTrOpIe$COORD_Y \ #
#20210826110946____:$Z demi_pave_XG=$_____DemiPave demi_pave_XD=$_____DemiPave \ #
#20210826110946____:$Z demi_pave_YG=$_____DemiPave demi_pave_YD=$_____DemiPave \ #
#20210826110946____:$Z epaississement_carre=VRAI \ #
#20210826110946____:$Z Ndenormalises=VRAI \ #
#20210826110946____:$Z LISTE_NIVEAU=$_____NEntropie \ #
#20210826110946____:$Z histogramme=VRAI histogramme_vertical=VRAI \ #
#20210826110946____:$Z R=$HiStOgRaMmE \ #
#20210826110946____:$Z $formatI #
#20210826113114____:$Z set NMiNiMuM_Y=`$xci/coordonnees$X Yf=$MiNiMuM_Y denormaliser=VRAI eX=FAUX eY=VRAI eZ=FAUX eN=FAUX` #
$Z set NMiNiMuM_Y=$_____DemiPave
$Z # Donner cette valeur permet aux points 'log(1)=0' d'etre malgre tout visualises par un #
$Z # trait d'epaisseur unite (puisque la dimension d'un pave est '(2*$_____DemiPave+1'... #
$Z $xrv/store_image$X \
$Z ne=$NPoInTs \
$Z Xdenormalisees=VRAI \
$Z LISTE_X=$LiStEEnTrOpIe$COORD_X \
$Z Ydenormalisees=FAUX \
$Z LISTE_Y=$LiStEEnTrOpIe$COORD_Y \
$Z demi_pave_XG=$_____DemiPave demi_pave_XD=$_____DemiPave \
$Z demi_pave_YG=$_____DemiPave demi_pave_YD=$_____DemiPave \
$Z epaississement_carre=VRAI \
$Z Ndenormalises=VRAI \
$Z LISTE_NIVEAU=$_____NEntropie \
$Z histogramme=VRAI histogramme_vertical=VRAI Ymin_histogramme_vertical=$NMiNiMuM_Y \
$Z R=$HiStOgRaMmE \
$Z $formatI
$Z # Generation de l'histogramme de l'entropie... #
#20210821103832____:$Z $xci/scroll$X \ #
#20210821103832____:$Z A=$HiStOgRaMmE \ #
#20210821103832____:$Z toreX=FAUX trX=0 \ #
#20210821103832____:$Z toreY=FAUX trY=0.520 \ #
#20210821103832____:$Z $formatI | \ #
#20210821103832____:$Z $xci/cache$X \ #
#20210821103832____:$Z A=$_____ImageR \ #
#20210821103832____:$Z R=$_____ImageR \ #
#20210821103832____:$Z $formatI #
$Z $xci/scroll$X \
$Z A=$HiStOgRaMmE \
$Z toreX=FAUX trX=0 \
$Z toreY=FAUX trY=`calcul (1-$EfFaCeMeNt_Y)+0.020` \
$Z $formatI | \
$Z $xci/cache$X \
$Z A=$_____ImageR \
$Z R=$_____ImageR \
$Z $formatI
$Z # Mise en place de l'histogramme de l'entropie au-dessus de la grille... #
$Z FilSTmpE HiStOgRaMmE
$Z FilSTmpE LiStEEnTrOpIe
$Z FilSTmpE LiStEPoInTs