####################################################################################################################################### # # # 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)