#!/bin/csh
#######################################################################################################################################
# #
# A I D E A L A R E C H E R C H E D E C A D R A G E S I N T E R E S S A N T S #
# P O U R ' $xrk/lyapunov.01$K ' P A R U N P R O C E D E D I C H O T O M I Q U E : #
# #
# #
# source $xrk/lyapunov.01$Y #
# #
# #
# Nota : #
# #
# Etant donne que le 'C-Shell' ne sait #
# pas manipuler de constantes flottantes #
# par 'set' et '@', les arguments flottants #
# de '$xrk/lyapunov.01$X' sont decomposes en #
# une partie entiere ('LentiereX' et 'LentiereY') #
# et une partie decimale ('Lxbg', 'Lybg', 'Lxhd' et 'Lyhd'). #
# Seules les parties decimales, pour des raisons evidentes #
# de simplicite, sont accessibles dans le processus de #
# de decoupage dichotomique... #
# #
# #
# Author of '$xrk/lyapunov.01$Y' : #
# #
# Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss). #
# #
#######################################################################################################################################
Suq
# Pour aller vite... #
#######################################################################################################################################
# #
# D E F I N I T I O N D E S V A R I A B L E S D E C O N F I G U R A T I O N : #
# #
# #
if ($?Literations == $NEXIST) then
set Literations=100
# Lorsque le nombre d'iterations n'est pas definie, on force une valeur utile... #
else
endif
if ($?Lsuite == $NEXIST) then
set Lsuite="222222111111"
# Lorsque la suite des permutations de (R1,R2,R3) n'est pas definie, on force une valeur #
# sympathique... #
else
endif
if ($?LentiereX == $NEXIST) then
set LentiereX=3
# Lorsque la partie entiere des abscisses n'est pas definie, on force une valeur sympathique. #
else
endif
if ($?LentiereY == $NEXIST) then
set LentiereY=3
# Lorsque la partie entiere des ordonnees n'est pas definie, on force une valeur sympathique. #
else
endif
if ($?Lxbg == $NEXIST) then
set Lxbg=000000000
# Lorsque la partie decimale de l'abscisse bas-gauche n'existe pas, on force une valeur #
# sympathique... #
else
endif
if ($?Lybg == $NEXIST) then
set Lybg=500000000
# Lorsque la partie decimale de l'ordonnee bas-gauche n'existe pas, on force une valeur #
# sympathique... #
else
endif
if ($?Lxhd == $NEXIST) then
set Lxhd=350000000
# Lorsque la partie decimale de l'abscisse haut-droit n'existe pas, on force une valeur #
# sympathique... #
else
endif
if ($?Lyhd == $NEXIST) then
set Lyhd=850000000
# Lorsque la partie decimale de l'ordonnee haut-droit n'existe pas, on force une valeur #
# sympathique... #
else
endif
#######################################################################################################################################
# #
# D E F I N I T I O N D E S C O M M A N D E S D E C A L C U L : #
# #
# #
alias Lyapunov 'set xbg=\!:1 ; set ybg=\!:3 ; set xhd=\!:2 ; set yhd=\!:4 ; \\
$xrk/lyapunov.01$X n=1 iterations=$Literations suite="$Lsuite" \\
xbgD=$LentiereX.$xbg ybgD=$LentiereY.$ybg xhdD=$LentiereX.$xhd yhdD=$LentiereY.$yhd \\
xbgA=$LentiereX.$xbg ybgA=$LentiereY.$ybg xhdA=$LentiereX.$xhd yhdA=$LentiereY.$yhd \\
$formatI | \\
$xci/display$X p=palettes/cercle.22 $formatI ; \\
unset xbg ybg xhd yhd'
# Commande destinee a montrer un ensemble de lyapunov dans une certaine fenetre... #
alias Ldicho '@ dxgd = $Lxhd - $Lxbg ; @ dxgd = $dxgd / 2 ; \\
if ($dxgd == 0) echo "ATTENTION, $K_QS""dxgd""$K_QS"" est devenu nul." ; \\
@ dybh = $Lyhd - $Lybg ; @ dybh = $dybh / 2 ; \\
if ($dybh == 0) echo "ATTENTION, $K_QS""dybh""$K_QS"" est devenu nul." ; \\
if ($dxgd != $dybh) echo "ATTENTION, la fenetre courante est non carree."'
# Commande destinee a effectuer le decoupage dichotomique de la fenetre courante... #
alias Lgauche '@ Lxhd = $Lxhd - $dxgd'
# Commande destinee a se placer dans la partie gauche de la fenetre courante... #
alias Ldroite '@ Lxbg = $Lxbg + $dxgd'
# Commande destinee a se placer dans la partie droite de la fenetre courante... #
alias Lbas '@ Lyhd = $Lyhd - $dybh'
# Commande destinee a se placer dans la partie basse de la fenetre courante... #
alias Lhaut '@ Lybg = $Lybg + $dybh'
# Commande destinee a se placer dans la partie basse de la fenetre courante... #
alias Lbg 'Ldicho ; \\
Lgauche ; \\
Lbas ; \\
Lyapunov $Lxbg $Lxhd $Lybg $Lyhd \\
unset dxgd dybh'
# Commande destinee a montrer un ensemble de lyapunov dans le coin bas-gauche de la fenetre #
# courante. #
alias Lbd 'Ldicho ; \\
Ldroite ; \\
Lbas ; \\
Lyapunov $Lxbg $Lxhd $Lybg $Lyhd \\
unset dxgd dybh'
# Commande destinee a montrer un ensemble de lyapunov dans le coin bas-droite de la fenetre #
# courante. #
alias Lhd 'Ldicho ; \\
Ldroite ; \\
Lhaut ; \\
Lyapunov $Lxbg $Lxhd $Lybg $Lyhd \\
unset dxgd dybh'
# Commande destinee a montrer un ensemble de lyapunov dans le coin haut-droite de la fenetre #
# courante. #
alias Lhg 'Ldicho ; \\
Lgauche ; \\
Lhaut ; \\
Lyapunov $Lxbg $Lxhd $Lybg $Lyhd \\
unset dxgd dybh'
# Commande destinee a montrer un ensemble de lyapunov dans le coin haut-gauche de la fenetre #
# courante. #
#######################################################################################################################################
# #
# D E F I N I T I O N D E S C O M M A N D E S D E G E S T I O N : #
# #
# #
alias Linit 'unset Lxbg Lxhd Lybg Lyhd ; \\
source $xrk/lyapunov.01$Y'
# Commande destinee a reinitialiser le processus... #
alias Ledit 'saut ; \\
Echo "Lhg Lhd" ; Echo "Lbg Lbd" ; \\
Echo "xbgA=$LentiereX.$Lxbg ybgA=$LentiereY.$Lybg xhdA=$LentiereX.$Lxhd yhdA=$LentiereY.$Lyhd" ; \\
echo "set Lxbg=$Lxbg" ; echo "set Lybg=$Lybg" ; \\
echo "set Lxhd=$Lxhd" ; echo "set Lyhd=$Lyhd" ; \\
Lyapunov $Lxbg $Lxhd $Lybg $Lyhd'
# Commande destinee a editer l'etat courant du processus sous trois formes differentes : #
# #
# 1-un petit tableau : #
# Lhg Lhd #
# #
# Lbg Lbd #
# #
# qui permet, par des "couper-coller", de choisir la commande suivante (on notera que les #
# quatre commandes sont disposees correctement dans le plan [OX,OY])... #
# #
# 2-edition des parametres d'Arrivee a '$xrk/lyapunov.01$X' sous la forme : #
# #
# xbgA=... ybgA=... xhdA=... yhdA=... #
# #
# 3-edition de commandes au 'C-Shell' de facon a permettre eventuellement un retour ulterieur #
# a l'etat present : #
# #
# set Lxbg=... #
# set Lybg=... #
# set Lxhd=... #
# set Lyhd=... #
# #
# en "coupant-collant" ces quatre 'set's. #
alias Lraz 'unset Literations Lsuite LentiereX LentiereY ; \\
unset Lxbg Lxhd Lybg Lyhd ; \\
unalias Lyapunov ; \\
unalias Ldicho Lgauche Ldroite Lbas Lhaut ; \\
unalias Lbg Lbd Lhd Lhg ; \\
unalias Linit Ledit Lraz'
# Commande destinee a annuler le processus... #