#######################################################################################################################################
#                                                                                                                                     #
#         C A L C U L   D ' U N   E N S E M B L E   D E   J U L I A                                                                   #
#         D A N S   L E S   " P S E U D O - O C T O N I O N S "  :                                                                    #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xiirc/.JULJ.N2.1.$U' :                                                                                          #
#                                                                                                                                     #
#                     Jean-Francois Colonna (LACTAMME, 20141120135048).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

$Z        SETParam            _____DoublerSections          0
$Z                                      # Parametre introduit le 20210427130146...                                                    #

$Z        SETParam            _____Rdecimales               16

$Z        SETParam            _____R                        -0.5815147625160462

$Z        SETParam            _____Idecimales               16

$Z        SETParam            _____I                        +0.6358885017421603

$Z        SETParam            _____OptimiserJ               $NEXIST
$Z                                      # Parametre introduit le 20141223092612...                                                    #

$Z        SETParam            _____Jdecimales               16

$Z        SETParam            _____OJ                       -1.0

$Z        SETParam            _____EJ                       0

$Z        SETParam            _____Kdecimales               16

$Z        SETParam            _____K                        0.0

$Z        SETParam            _____XYdecimales              6

$Z        SETParam            _____xbg                      -1.0

$Z        SETParam            _____xhd                      +1.0

$Z        SETParam            _____ybg                      -1.0

$Z        SETParam            _____yhd                      +1.0

$Z        SETParam            _____JRdecimales              16
$Z                                      # Parametre introduit le 20141126122207...                                                    #

$Z        SETParam            _____JRotationX               `GetParam $xrc/julia.81$X ROTATION_OX`
$Z                                      # Parametre introduit le 20141126122207...                                                    #

$Z        SETParam            _____JRotationY               `GetParam $xrc/julia.81$X ROTATION_OY`
$Z                                      # Parametre introduit le 20141126122207...                                                    #

$Z        SETParam            _____JRotationZ               `GetParam $xrc/julia.81$X ROTATION_OZ`
$Z                                      # Parametre introduit le 20141126122207...                                                    #

$Z        SETParam            _____Pdecimales               0
$Z                                      # Parametre introduit le 20141125115922...                                                    #

$Z        SETParam            _____Puissance                8
$Z                                      # Parametre introduit le 20141125115922...                                                    #

$Z        SETParam            _____PuissanceR               0
$Z                                      # Parametre introduit le 20141220104036...                                                    #

$Z        SETParam            _____PuissanceA               0
$Z                                      # Parametre introduit le 20141220104036...                                                    #

$Z        SETParam            _____PuissanceA1              0
$Z                                      # Parametre introduit le 20141220180417...                                                    #

$Z        SETParam            _____PuissanceA2              0
$Z                                      # Parametre introduit le 20141220180417...                                                    #

$Z        SETParam            _____PuissanceA3              0
$Z                                      # Parametre introduit le 20141220180417...                                                    #

$Z        SETParam            _____PuissanceA4              0
$Z                                      # Parametre introduit le 20141220180417...                                                    #

$Z        SETParam            _____PuissanceA5              0
$Z                                      # Parametre introduit le 20141220180417...                                                    #

$Z        SETParam            _____PuissanceA6              0
$Z                                      # Parametre introduit le 20141220180417...                                                    #

$Z        SETParam            _____PuissanceA7              0
$Z                                      # Parametre introduit le 20141220180417...                                                    #

$Z        setenvParam         _____ParaJulia                "$K_VIDE"
$Z                                      # Parametre introduit le 20141130094654 afin de pouvoir en fait redefinir dynamiquement       #
$Z                                      # certains parametres (par exemple 'v $xiirc/$Fnota _____ParaJulia').                         #

$Z                  FilSTmpB            FFrAcTaL

$c                  #include  <stdio.h>
$c
$c                  #define   N0        cPremiere
$c                  #define   N         (cPremiere+((cDerniere-cPremiere+1)/(_____DoublerSections+1))-1)
$c
$c                  #define   OJ        _____OJ
$c                  #define   EJ        _____EJ
$c
$c                  int       main()
$c                            {
$c                            int       n;
$c
$c                            for       (n=N0 ; n<=N ; n++)
$c                                      {
$c                                      double    J=((EJ*(n-N0))+(OJ*(N-n)))/(N-N0);
$c
$c                                      printf("echo      %c$xrc/julia.81$X
$c                                                                    images=1
$c                                                                    exposant=1
$c                                                                    iterations=8
$c                                                                    r=%+.*f
$c                                                                    i=%+.*f
$c                                                                    j=0
$c                                                                    k=0
$c                                                                    s=0
$c                                                                    t=0
$c                                                                    u=0
$c                                                                    v=0
$c                                                                    J=%+.*f
$c                                                                    K=%+.*f
$c                                                                    S=0
$c                                                                    T=0
$c                                                                    U=0
$c                                                                    V=0
$c                                                                    fenetres_depart_arrivee_identiques=VRAI
$c                                                                    xbg=%+.*f
$c                                                                    xhd=%+.*f
$c                                                                    ybg=%+.*f
$c                                                                    yhd=%+.*f
$c                                                                    ROTATION_OX=%+.*f
$c                                                                    ROTATION_OY=%+.*f
$c                                                                    ROTATION_OZ=%+.*f
$c                                                                    produit_non_theorique=VRAI
$c                                                                    eRho=%.*f
$c                                                                    pA1=%.*f            tA1=0
$c                                                                    pA2=%.*f            tA2=0
$c                                                                    pA3=%.*f            tA3=0
$c                                                                    pA4=%.*f            tA4=0
$c                                                                    pA5=%.*f            tA5=0
$c                                                                    pA6=%.*f            tA6=0
$c                                                                    pA7=%.*f            tA7=0
$c                                                                    visualiser_appartenance=VRAI
$c                                                                    $_____ParaJulia
$c                                                                    chiffres=0
$c                                                                    R=$_____ImageT1.%04d
$c                                                                              $formatI%c
$c                                                                         >> $FFrAcTaL\n"
$c                                            ,'\''
$c                                            ,_____Rdecimales,(double)_____R
$c                                            ,_____Idecimales,(double)_____I
$c                                            ,_____Jdecimales,(double)J
$c                                            ,_____Kdecimales,(double)_____K
$c                                            ,_____XYdecimales,(double)_____xbg
$c                                            ,_____XYdecimales,(double)_____xhd
$c                                            ,_____XYdecimales,(double)_____ybg
$c                                            ,_____XYdecimales,(double)_____yhd
$c                                            ,_____JRdecimales,(double)_____JRotationX
$c                                            ,_____JRdecimales,(double)_____JRotationY
$c                                            ,_____JRdecimales,(double)_____JRotationZ
$c                                            ,_____Pdecimales,(double)(_____Puissance+_____PuissanceR)
$c                                            ,_____Pdecimales,(double)(_____Puissance+_____PuissanceA+_____PuissanceA1)
$c                                            ,_____Pdecimales,(double)(_____Puissance+_____PuissanceA+_____PuissanceA2)
$c                                            ,_____Pdecimales,(double)(_____Puissance+_____PuissanceA+_____PuissanceA3)
$c                                            ,_____Pdecimales,(double)(_____Puissance+_____PuissanceA+_____PuissanceA4)
$c                                            ,_____Pdecimales,(double)(_____Puissance+_____PuissanceA+_____PuissanceA5)
$c                                            ,_____Pdecimales,(double)(_____Puissance+_____PuissanceA+_____PuissanceA6)
$c                                            ,_____Pdecimales,(double)(_____Puissance+_____PuissanceA+_____PuissanceA7)
$c                                            ,n
$c                                            ,'\''
$c                                             );
$c                                      }
$c                            }

$Z                  if        ($_____OptimiserJ == $EXIST) then
$Z                                      SET                 InCrEmEnT=+0.1
$Z                                      SET                 SeUiLInCrEmEnT=0.001

$Z                                      if                  (`$xcg/IFGE.01.x x=$_____OJ` == $EXIST) then
$Z                                      else
$Z                                                          SET       InCrEmEnT=`$xcg/NEGA.01$X x=$InCrEmEnT`
$Z                                      endif

$Z                                      SET                 P_____OJ=`$xcg/SOUS.01$X a=$_____OJ b=$InCrEmEnT`
$Z                                      # A priori...                                                                                 #

$Z                                      SET                 NoIr=`$xcg/ABSO.01$X a=$NOIR signe="$K_VIDE"`
$Z                                      # Afin de pouvoir tester les sorties de '$xci/extrema$X'...                                   #

$Z                                      set       ItErEr=$EXIST
$Z                                      while     ($ItErEr == $EXIST)
$Z                                                SET       S_____OJ=$_____OJ
#20191021182233____:$Z                                                FilSTmpB  FOpTiMiSe                                             #
$Z                                                FilSTmpB  FOpTiMiSe $Y

$Z                                                $CA       $xcs/csh$Y                                                                  \
$Z                                                                                                                      >> $FOpTiMiSe
$Z                                                $CA       $FFrAcTaL                                                             |     \
$Z                                                $HEA      -1                                                                    |     \
$Z                                                $SE       -e 's/$'"/ J=$_____OJ/"                                                     \
$Z                                                                                                                      >> $FOpTiMiSe

$Z                                                source    $FOpTiMiSe
$Z                                      # Ainsi, on calcule le champ pour la valeur de '$_____OJ' courante...                         #

$Z                                                set       ArG1="minimum=FAUX maximum=VRAI coordonnees=FAUX LF=VRAI"
$Z                                                set       ArG2="STREAM_OUT=VRAI STREAM_ERREUR=FAUX"
$Z                                                SET       MaXiMuM=$UNDEF

#20191021182315____:$Z                                                FilSTmpB  FMaXiMuM                                              #
$Z                                                FilSTmpB  FMaXiMuM $Y

$Z                                                $CA       $xcs/csh$Y                                                                  \
$Z                                                                                                                      >> $FMaXiMuM
$Z                            echo      'set       MaXiMuM=`$xci/extrema$X A=$_____ImageT1.0001 $ArG1 |& $xcg/StdOutErr.01$X $ArG2`'    \
$Z                                                                                                                      >> $FMaXiMuM
$Z                                                source    $FMaXiMuM
$Z                                      # On notera que l'on n'ecrit pas directement :                                                #
$Z                                      #                                                                                             #
$Z                                      #                   SET       MaXiMuM=`$xci/extrema$X A=$_____ImageT1.0001 (...)`             #
$Z                                      #                                                                                             #
$Z                                      # afin d'eviter un message du type :                                                          #
$Z                                      #                                                                                             #
$Z                                      #                   _____ImageT1: Undefined variable.                                         #
$Z                                      #                                                                                             #
$Z                                      # lors d'un 'xlistN', d'ou un 'SET' destine au 'xlistN'. Le vrai 'set' ne peut pas apparaitre #
$Z                                      # directement sous peine du message :                                                         #
$Z                                      #                                                                                             #
$Z                                      #                   Les symboles suivants sont a la fois definis par des 'set's et des 'SET's #
$Z                                      #                                                                                             #
$Z                                      # d'ou le passage par un 'source' intermediaire...                                            #
$Z                                                FilSTmpE  FMaXiMuM

$Z                                                IFS       ($MaXiMuM == $NoIr) then
$Z                                      # Des qu'un maximum egal a '$NOIR' est atteint, on revient en arriere sur '$P_____OJ' et      #
$Z                                      # on divise par 10 l'increment tant que cela est autorise...                                  #
$Z                                      #                                                                                             #
$Z                                      # On notera le 'IFS(...)' destine a garantir la recuperation correcte de ce test              #
$Z                                      # ('v $Falias_listG .CA........FiLeT2').                                                      #
$Z                                                          SET       _____OJ=$P_____OJ
$Z                                                          SET       InCrEmEnT=`$xcg/DIVZ.01$X a=$InCrEmEnT b=10`

$Z                                                          SET       AInCrEmEnT=`$xcg/ABSO.01$X a=$InCrEmEnT`
$Z                                                          IFS       (`$xcg/IFLT.01.x x=$AInCrEmEnT y=$SeUiLInCrEmEnT` == $EXIST) then
$Z                                                                    SET       _____OJ=$S_____OJ
$Z                                                                    set       ItErEr=$NEXIST
$Z                                      # On notera qu'a ce niveau le fichier '$FOpTiMiSe' contient la derniere valeur de 'J'         #
$Z                                      # qui donne un maximum egal a '$NOIR' et donc un champ nul...                                 #
$Z                                      #                                                                                             #
$Z                                      # On notera le 'IFS(...)' destine a garantir la recuperation correcte de ce test              #
$Z                                      # ('v $Falias_listG .CA........FiLeT2').                                                      #
$Z                                                          else
$Z                                                          endif
$Z                                                else
$Z                                                          SET       P_____OJ=$_____OJ
$Z                                                          SET       _____OJ=`$xcg/ADD2.01$X a=$_____OJ b=$InCrEmEnT`
$Z                                                endif

$Z                                                FilSTmpE  FOpTiMiSe
$Z                                      end

$Z                                      FilSTmpB  FFrAcTaL_tmp
$Z                                      FilSTmpB  FInTeRpOlE

$Z                                      $xci/valeurs_inte$X                                                                             \
$Z                                                premiere=$cPremiere derniere=$cDerniere                                               \
$Z                                                lineaire=VRAI                                                                         \
$Z                                                vD=$_____OJ vA=$_____EJ                                                               \
$Z                                                format="f" ChiffresFlot=$_____Jdecimales                                              \
$Z                                                                                                                                |     \
$Z                                      $SE       -e "s/^/ J=/"                                                                         \
$Z                                                                                                            >> $FInTeRpOlE
$Z                                      # On notera que les sorties de '$xci/valeurs_inte$X' utilisent exactement le meme formatage   #
$Z                                      # que celles du 'main(...)' precedent...                                                      #

$Z                                      $PAST     $FFrAcTaL $FInTeRpOlE                                                           |     \
$Z                                      $R        "$K_TAB" "$K_BLANC"                                                                   \
$Z                                                                                                            >> $FFrAcTaL_tmp

$Z                                      $DELETE   $FFrAcTaL

$Z                                      $CA       $FFrAcTaL_tmp                                                                         \
$Z                                                                                                            >  $FFrAcTaL

$Z                                      FilSTmpE  FInTeRpOlE
$Z                                      FilSTmpE  FFrAcTaL_tmp $NEXIST
$Z                  else
$Z                  endif

$Z                  execPar_V           $FFrAcTaL

$Z                  FilSTmpE            FFrAcTaL

$Z                  _____include(_____xiirc/.MANF.DC.5._____U)



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