| [2632] | 1 | \documentclass[twoside,11pt,A4]{article} | 
|---|
| [3229] | 2 | % \documentclass[twoside,11pt,A4]{report} | 
|---|
| [2632] | 3 | \usepackage[french]{babel} | 
|---|
|  | 4 |  | 
|---|
|  | 5 | % \usepackage[T1]{fontenc} | 
|---|
|  | 6 | \usepackage[applemac]{inputenc} | 
|---|
|  | 7 | \usepackage{palatino} | 
|---|
|  | 8 | % \usepackage{times} | 
|---|
|  | 9 | % package pour ecrire DRAFT en fond de page | 
|---|
| [2716] | 10 | % \usepackage[light,all,draft]{draftcopy} | 
|---|
| [2632] | 11 |  | 
|---|
|  | 12 | % \usepackage{epsfig} | 
|---|
|  | 13 | \usepackage{graphicx} | 
|---|
|  | 14 | \usepackage{amsmath} | 
|---|
|  | 15 | \usepackage{amssymb} | 
|---|
|  | 16 |  | 
|---|
|  | 17 | \setlength{\textwidth}{16cm} | 
|---|
| [3735] | 18 | \setlength{\textheight}{22 cm} | 
|---|
|  | 19 | \setlength{\topmargin}{-5mm} | 
|---|
| [2632] | 20 | \setlength{\oddsidemargin}{0.cm} | 
|---|
|  | 21 | \setlength{\evensidemargin}{0.cm} | 
|---|
|  | 22 | \setlength{\unitlength}{1mm} | 
|---|
|  | 23 |  | 
|---|
| [3536] | 24 | \newcommand{\tcls}[1] {#1$<$T$>$} | 
|---|
|  | 25 | \newcommand{\tclsc}[2] {#1$<$#2$>$} | 
|---|
|  | 26 |  | 
|---|
| [2632] | 27 | \newcommand{\rond}{$\bullet \ $} | 
|---|
|  | 28 | \newcommand{\etoile}{$\star \ $} | 
|---|
|  | 29 | \newcommand{\cercle}{$\circ \ $} | 
|---|
|  | 30 | \newcommand{\carre}{$\Box \ $} | 
|---|
|  | 31 |  | 
|---|
| [3229] | 32 | %%%% Pour le decoupage en sections | 
|---|
|  | 33 | % \newcommand{\groupe}[1]{\chapter{#1}} | 
|---|
|  | 34 | % \newcommand{\titre}[1]{\section{#1}} | 
|---|
|  | 35 | % \newcommand{\soustitre}[1]{\subsection{#1}} | 
|---|
|  | 36 | %%% | 
|---|
|  | 37 | \newcommand{\groupe}[1]{\section{#1}} | 
|---|
|  | 38 | \newcommand{\titre}[1]{\subsection{#1}} | 
|---|
|  | 39 | \newcommand{\soustitre}[1]{\subsubsection{#1}} | 
|---|
|  | 40 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
|---|
|  | 41 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
|---|
| [2632] | 42 | \begin{document} | 
|---|
|  | 43 | \begin{titlepage} | 
|---|
|  | 44 | \begin{center} | 
|---|
| [3494] | 45 | {\Large \bf SOPHYA Change Log \\[1mm] | 
|---|
|  | 46 | Liste des modifications de SOPHYA } \\[5mm] | 
|---|
| [3817] | 47 | {\large Septembre 2003 - Septembre 2010 } \\[25mm] | 
|---|
| [2632] | 48 | Liste des tags et dates : \\[5mm] | 
|---|
|  | 49 | {\large | 
|---|
|  | 50 | \begin{tabular}{lcl} | 
|---|
|  | 51 | V = 0.727 &   \hspace{10mm}  & Octobre 1999 \\ | 
|---|
| [3095] | 52 | V = 0.8  &   \hspace{10mm}  &  F\'evrier 2000 \\ | 
|---|
|  | 53 | V = 1.1  &   \hspace{10mm}  &  F\'evrier 2001 \\ | 
|---|
| [2632] | 54 | V = 1.2  &   \hspace{10mm}  &  Juillet 2001 \\ | 
|---|
|  | 55 | V = 1.3  &   \hspace{10mm}  &  Novembre  2001 \\ | 
|---|
| [3095] | 56 | V = 1.5  &   \hspace{10mm}  &   D\'ecembre  2002 \\ | 
|---|
| [2632] | 57 | V = 1.7  &   \hspace{10mm}  &   Septembre 2003 \\ | 
|---|
| [2829] | 58 | V = 1.9  &   \hspace{10mm}  &   Juin 2005 - SANS tag CVS \\ | 
|---|
| [3095] | 59 | V = 1.9xx  &   \hspace{10mm}  & 09/2005 ... 09/2006  \\ | 
|---|
|  | 60 | V = 2.0  &   \hspace{10mm}  &  Septembre 2006 - tag CVS \\ | 
|---|
| [3301] | 61 | V = 2.046  &   \hspace{10mm}  &  Ao\^{u}t 2007 - NO tag  \\ | 
|---|
| [3438] | 62 | V = 2.1  &   \hspace{10mm}  &  Novembre 2007 - tag CVS \\ | 
|---|
| [3459] | 63 | V = 2.1xx  &   \hspace{10mm}  &  12/ 2007 - \ldots \\ | 
|---|
| [3536] | 64 | V = 2.125  &   \hspace{10mm}  &  Sept-Oct 2008 - NO tag  \\ | 
|---|
| [3735] | 65 | V = 2.140  &   \hspace{10mm}  &  Sept-Oct 2009 - NO tag  \\ | 
|---|
| [3817] | 66 | V = 2.150  &   \hspace{10mm}  &  Mars 2010 - NO tag  \\ | 
|---|
| [3856] | 67 | V = 2.2  &   \hspace{10mm}  &  Septembre 2010 - tag CVS \\ | 
|---|
| [2829] | 68 |  | 
|---|
| [2632] | 69 | \end{tabular} | 
|---|
| [3229] | 70 | } \\[8mm] | 
|---|
|  | 71 | %%%%%% | 
|---|
|  | 72 | \begin{tabular}{ll} | 
|---|
|  | 73 | R. Ansari            &  ansari@lal.in2p3.fr       \\ | 
|---|
|  | 74 | C. Magneville        &  cmv@hep.saclay.cea.fr | 
|---|
| [3494] | 75 | \end{tabular} | 
|---|
|  | 76 | \\[5mm] | 
|---|
|  | 77 | \today | 
|---|
| [2632] | 78 | \end{center} | 
|---|
|  | 79 | \end{titlepage} | 
|---|
|  | 80 |  | 
|---|
|  | 81 | \newpage | 
|---|
|  | 82 | \tableofcontents | 
|---|
|  | 83 | \newpage | 
|---|
|  | 84 |  | 
|---|
| [3229] | 85 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
|---|
|  | 86 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
|---|
| [3459] | 87 | \groupe{De V2.1 (Dec2007)  V2.2 \ldots } | 
|---|
| [3580] | 88 | \titre{Global} | 
|---|
|  | 89 | \begin{itemize} | 
|---|
|  | 90 | \item[\rond] Fev 2009 : Changement de {\tt char *} en {\tt const char *} dans le code pour | 
|---|
|  | 91 | viter les message {\it deprecated} du compilateur lors de l'utilisation de chane de caractre constante. | 
|---|
|  | 92 | \end{itemize} | 
|---|
|  | 93 |  | 
|---|
| [3754] | 94 | \titre{BuildMgr} | 
|---|
|  | 95 | \begin{itemize} | 
|---|
| [3856] | 96 | \item[\rond] Juillet/Aout 2010 : Ajout des options et arguments suivants au script configure | 
|---|
|  | 97 | \begin{verbatim} | 
|---|
|  | 98 | -arch32 de compilation en 32 bits pour linux | 
|---|
|  | 99 | -followlink pour suivi des liens symboliques lors des recherches | 
|---|
|  | 100 | de fichiers par find. Pas de suivi des liens par defaut | 
|---|
|  | 101 | -epip pour chemin de librairies et include file PI (Motif ...) | 
|---|
|  | 102 | -wgrdl activation compil et link piapp avec GNU-readline | 
|---|
|  | 103 | \end{verbatim} | 
|---|
|  | 104 | {\tt -arch32} de compilation en 32 bits pour linux | 
|---|
| [3754] | 105 | \item[\rond] Mars 2010 : Ajout de l'option {\tt -ldble128} dans le script configure pour la gestion conditionnelle | 
|---|
|  | 106 | du flag compilation {\bf SO\_LDBLE128 } dans machdefs.h.  Ce flag active la dclaration des nombres en | 
|---|
|  | 107 | virgule flottant  128 bits ({\tt r\_16}). | 
|---|
|  | 108 | \end{itemize} | 
|---|
|  | 109 |  | 
|---|
| [3536] | 110 | \titre{BaseTools} | 
|---|
|  | 111 | \begin{itemize} | 
|---|
| [3754] | 112 | \item[\rond] Mars 2010 : Prise en charge de float 128 bits  ({\tt r\_16}) et | 
|---|
|  | 113 | {\tt complex$<$ r\_16 $>$} dans les NDataBlock et PPersist. | 
|---|
|  | 114 | Compilation conditionnelle contrle par le flag  {\bf SO\_LDBLE128 } | 
|---|
| [3614] | 115 | \item[\rond] Avril 2009 : Introduction de la classe RandomGeneratorInterface, DR48RandGen, ThSDR48RandGen | 
|---|
|  | 116 | et FMTRandGen - La classe ThSDR48RandGen RandomGenerator | 
|---|
| [3723] | 117 | \item[\rond] Mars 2009 : Les exceptions sophya (PExceptions ...) hritent de de std::exception (methode what()) | 
|---|
| [3536] | 118 | \item[\rond] Oct 2008 : Suppression des flags {\tt OS\_xxx (OS\_MACOSX OS\_LINUX OS\_AIX ...) } | 
|---|
|  | 119 | de machdefs\_mkmf.h et ajout constructeur MuTyV(uint\_4, uint\_8) | 
|---|
|  | 120 | \end{itemize} | 
|---|
|  | 121 |  | 
|---|
| [3494] | 122 | \titre{TArray} | 
|---|
|  | 123 | \begin{itemize} | 
|---|
| [3817] | 124 | \item[\rond] Juillet 2010 : Introduction des classes de matrices carres spciales (SSQM : Special Square Matrix). | 
|---|
|  | 125 | Suppression de la classe  {\bf TriangularMatrix$<$T$>$} et du fichier {\tt triangmtx.h }. | 
|---|
|  | 126 | Voir ci-dessous pour plus d'information. | 
|---|
|  | 127 |  | 
|---|
| [3754] | 128 | \item[\rond] Mars 2010 : Prise en charge de float 128 bits  ({\tt r\_16}) et | 
|---|
|  | 129 | {\tt complex$<$ r\_16 $>$} dans les TArray, TMatrix et TVector. | 
|---|
|  | 130 | Compilation conditionnelle contrle par le flag  {\bf SO\_LDBLE128 } | 
|---|
|  | 131 |  | 
|---|
| [3580] | 132 | \item[\rond] Fev 2009 : Correction du bug de SetTemp() intempestive provoquant sur-criture de | 
|---|
|  | 133 | tableaux lors d'opration avec des SubArray. | 
|---|
| [3494] | 134 | \item[\rond] Jan 2008 : Correction bug de protection dans TArray::Resize() \\ | 
|---|
|  | 135 | (lors de resize avec  ndim=BASEARRAY\_MAXNDIMS = 5) | 
|---|
|  | 136 | \end{itemize} | 
|---|
|  | 137 |  | 
|---|
| [3817] | 138 | \soustitre{SSQM: Special Square Matrix} | 
|---|
|  | 139 | Classes de matrices carrees speciales avec la hirarchie dcrite ci-dessous. Ces classes ont t dveloppes au | 
|---|
|  | 140 | printemps 2009 et introduites dans SOPHYA  l't 2010. | 
|---|
|  | 141 | \begin{verbatim} | 
|---|
|  | 142 | AnyDataObj -- SpecialSquareMatrix<T> -- DiagonalMatrix<T> | 
|---|
|  | 143 | -- LowerTriangularMatrix<T> | 
|---|
|  | 144 | -- SymmetricMatrix<T> | 
|---|
|  | 145 | + classe gestionnaire PPF FIO_SpecialSquareMatrix<T> | 
|---|
|  | 146 | \end{verbatim} | 
|---|
|  | 147 |  | 
|---|
|  | 148 | Fichiers ajouts dans TArray/ : \\ | 
|---|
|  | 149 | {\tt spesqmtx.h spesqmtx\_tsnl.h diagmtx.h trngmtx.h symmtx.h fiospsqmtx.h} \\ | 
|---|
|  | 150 | {\tt  spesqmtx.cc fiospsqmtx.cc } \\ | 
|---|
|  | 151 | Fichier {\tt triangmtx.h } a t supprim (classe {\bf TriangularMatrix$<$T$>$ } | 
|---|
|  | 152 | remplace par {\bf LowerTriangularMatrix$<$T$>$} . \\ | 
|---|
|  | 153 | Programme test {\tt tssqmx.cc} ajout dans le module Tests/. | 
|---|
|  | 154 | Pour vrifier le code, faire : \\ | 
|---|
|  | 155 | {\tt csh> tssqmx d ( tssqmx t , s ) } \\[1mm] | 
|---|
|  | 156 | Pour ajouter d'autres classes de matrices carres: | 
|---|
|  | 157 | \begin{enumerate} | 
|---|
|  | 158 | \item Dclarer si besoin le type ds enum SpSqMtxType (fichier spesqmtx.h) | 
|---|
|  | 159 | \item Recopier diagmtx.h en mtxnouvcarre.h (enfin, le nouveau nom de fichier/classe) | 
|---|
|  | 160 | \item changer le nom de la classe ds mtxnouvcarre.h | 
|---|
|  | 161 | \item Repasser  travers les mthodes et constructeurs en particulier SetSize() et les | 
|---|
|  | 162 | accs aux lments | 
|---|
|  | 163 | \item Modifier ou simplement supprimer les mthodes (et oprateurs) de multiplication de matrices | 
|---|
|  | 164 | \item Dans le fichier fiospsqmtx.cc, prvoir le dynamic\_cast / new $<$MatriceCarre$>$ dans : | 
|---|
|  | 165 | \hspace{5mm} FIO\_SpecialSquareMatrix(const SpecialSquareMatrix$<$T$>$ \& obj) \\ | 
|---|
|  | 166 | \hspace{5mm} FIO\_SpecialSquareMatrix$<$T$>$::ReadSelf(PInPersist\& is) | 
|---|
|  | 167 | \end{enumerate} | 
|---|
|  | 168 |  | 
|---|
|  | 169 |  | 
|---|
| [3513] | 170 | \titre{SkyMap/Samba} | 
|---|
| [3509] | 171 | \begin{itemize} | 
|---|
| [3817] | 172 | \item[\rond] Juillet 2010 : Adaptation  la nouvelle classe {\bf LowerTriangularMatrix$<$T$>$} | 
|---|
| [3548] | 173 | \item[\rond] Sep 2008 : Nettoyage cosmetique ds lambdaBuilder.h .cc - {\bf A FAIRE :} rendre | 
|---|
| [3536] | 174 | LambdaLMBuilder thread-safe. | 
|---|
| [3513] | 175 | \item[\rond] Aout 2008 {\bf (Samba)}: Nettoyage cosmetique ds alm.h .cc, utilisation de la | 
|---|
|  | 176 | classe RandomGenerator par la classe Alm$<$T$>$. Possibilite de specifier un objet | 
|---|
|  | 177 | RandomGenerator au constructeur de la classe SphericalTransformServer. Adaptation | 
|---|
|  | 178 | programme PrgMap/cl2map.cc. | 
|---|
|  | 179 | \item[\rond] Aout 2008 {\bf (SkyMap)} : modifs/correction ds la classe SphereECP$<$T$>$. | 
|---|
| [3509] | 180 | Ajout m\'ethode \\ | 
|---|
|  | 181 | {\tt SphereECP<T>::ExtractPartial() } \hspace{5mm} et correction calcul phi ds  \\ | 
|---|
|  | 182 | {\tt SphereECP<T>::PixThetaPhi() } et modif programme Tests/tsphereecp.cc | 
|---|
|  | 183 | \end{itemize} | 
|---|
|  | 184 |  | 
|---|
| [3536] | 185 | \titre{NTools} | 
|---|
|  | 186 | \begin{itemize} | 
|---|
| [3856] | 187 | \item[rond] Aout 2010 : Ajout de la classe d'interpolation lineaire {\bf SLinInterp1D} et programme | 
|---|
|  | 188 | test Tests/tstinterp.cc | 
|---|
| [3536] | 189 | \item[\rond] Oct 2008 : Instanciation explicite des classes | 
|---|
|  | 190 | \tcls{Image} et \tcls{ArrayFitter} pour T=uint\_4, uint\_8 | 
|---|
|  | 191 | \end{itemize} | 
|---|
|  | 192 |  | 
|---|
| [3580] | 193 | \titre{SysTools} | 
|---|
|  | 194 | \begin{itemize} | 
|---|
| [3723] | 195 | \item[\rond] Dec 2009: Introduction des classes {\bf ParallelTaskInterface, ParallelTaskFunction} | 
|---|
|  | 196 | et {\bf ParalExThread, ParallelExecutor} afin de faciliter l'criture de code avec excution de | 
|---|
| [3817] | 197 | fonctions en parallle dans des threads. \\ | 
|---|
|  | 198 | Voir les fichier {\tt SysTools/parlex.h .cc}  et {\tt Tests/tparlex.cc}. | 
|---|
| [3580] | 199 | \item[\rond] Fev 2009 : Amlioration conversion double->string pour viter la perte de | 
|---|
|  | 200 | prcision lors des valuations avec les variables de l'interprteur (commander.cc). | 
|---|
|  | 201 | \item[\rond] Fev 2009 : Amlioration de la classe {\bf Timer}, prcision time-elapsed | 
|---|
| [3817] | 202 | par utilisation de \\ | 
|---|
|  | 203 | {\tt gettimeofday(...)} au lieu de {\tt time()}, \\ | 
|---|
| [3580] | 204 | amlioration calcul temps cpu pour jobs tres long (lorsque TCPU dpasse le maximum $2^{32}$. | 
|---|
|  | 205 | \end{itemize} | 
|---|
|  | 206 |  | 
|---|
| [3459] | 207 | \titre{FitsIOServer} | 
|---|
|  | 208 | \begin{itemize} | 
|---|
| [3494] | 209 | \item[\rond] Avril 2008 : Ajout m\'ethodes de lecture/criture tableaux avec offset: \\ | 
|---|
|  | 210 | {\tt FitsArrayHandler::ReadAtOffset()  , WriteAtOffset() } \\ | 
|---|
|  | 211 | $\longrightarrow$ Possibilit de lecture/criture de tableaux par morceaux | 
|---|
|  | 212 | de HDU IMAGE | 
|---|
| [3459] | 213 | \item[\rond] Jan 2008 : Ajout {\tt FitsInOutFile::SetBScaleBZero(...)} et type LONGLONG | 
|---|
|  | 214 | pour HDU\_Image.  Enregistrement conditionnel handler TArray$<$int\_8$>$. | 
|---|
|  | 215 | \end{itemize} | 
|---|
|  | 216 |  | 
|---|
|  | 217 | \titre{PI/piapp} | 
|---|
| [3735] | 218 | {\bf IMPORTANT }\\ | 
|---|
|  | 219 | {\bf A1} Reste a faire : debug / prise en charge des images avec tables de couleurs de plus de | 
|---|
|  | 220 | 256 entrees dans fichier postscript. \\ | 
|---|
|  | 221 | {\bf A2} Utiliser la classe PICMapDrawer dans le widget PICMapView et ajouter la possibilit d'afficher une table | 
|---|
|  | 222 | de couleur dans PIScDrawWdg. | 
|---|
| [3459] | 223 | \begin{itemize} | 
|---|
| [3735] | 224 | \item[\rond] Introduction de la classe classe {\bf PICMapDrawer}  et ajout de la possibilit d'afficher | 
|---|
|  | 225 | la table de couleur dans la fentre principale PIImage. L'attribut graphique {\tt showcmap} contrle | 
|---|
|  | 226 | l'affichage de la table. \\ | 
|---|
| [3738] | 227 | {\tt showcmap  , showcmap=no , showcmap=top , \\ | 
|---|
|  | 228 | showcmap=no/top/right/bottom/left/horiz/vert } | 
|---|
| [3723] | 229 | \item[\rond] Dec 2009: Ajout des options d'affichage : \\ | 
|---|
|  | 230 | {\tt cdreal   cdimag   cdphase cdmod (=defaut)  cdmod2 } \\ | 
|---|
|  | 231 | pour les tableaux 2D en mode image ou surface. Fichiers modifis: | 
|---|
|  | 232 | nomtarradapter.cc , nomtmatvecadapter.cc , pitvmaad.cc , pitvmaad.h. | 
|---|
| [3580] | 233 | \item[\rond] Ajout de gestionnaire d'venements VisibilityChange ds pixtbase.cc pour grer les | 
|---|
|  | 234 | problmes de fentre PIBaseWdg non rafrachie - suppression de {\tt XFlush()/usleep() }mis | 
|---|
|  | 235 | dans piwindowx.cc en Aout 2007 | 
|---|
| [3564] | 236 | \item[\rond] Jan 2009 {\bf PI , PIext} Extension de la logique AutoFontSize (choix automatique de | 
|---|
|  | 237 | la taille de fonte comme fraction de la taille du widget a tous les PIDrawer. Valeur globale par defaut | 
|---|
|  | 238 | en variable et mthode statique de PIDrawer (=0.04). Changement possible par variable d'environnement | 
|---|
|  | 239 | {\bf PIDEFAFSZFRAC} et la commande piapp {\bf  setdefafsz }. | 
|---|
| [3548] | 240 | \item[\rond] Nov 2008 {\bf PIext} Ajout commande {\bf pirgbdisp} - Lecture et affichage d'image RGB | 
|---|
|  | 241 | (objet  PIPixRGBArray) | 
|---|
|  | 242 | \item[\rond] Nov 2008 {\bf PI} Optimisation classe LUT, introduction typeExp | 
|---|
| [3536] | 243 | \item[\rond] Oct 2008 {\bf PIext} : Instanciation explicite et enregistrement des adaptateurs NObjMgrAdapter pour TArray, et TMatrix/TVector $<$T$>$ pour T=uint\_4, uint\_8 | 
|---|
| [3548] | 244 | \item[\rond] Sep-Nov 2008 {\bf PI} : Modifs importantes pour permettre la visalisation des images | 
|---|
| [3536] | 245 | ou photos couleurs (RGB) ds piapp : | 
|---|
|  | 246 | \begin{enumerate} | 
|---|
|  | 247 | \item  Introduction des classes auxiliaires PIPixColIdx , PIPixRGB , PIPixRGBArray | 
|---|
| [3548] | 248 | (nouveau fichier pipixutils.cc .h) pour support de tables de couleurs avec $>$ 256 couleurs. | 
|---|
|  | 249 | \item Ajout de tables de couleurs RGB (RGB216CM , RGB512CM, RGB4096CM, RGB32768CM) | 
|---|
| [3536] | 250 | pour representation d'images/photos couleurs RGB | 
|---|
|  | 251 | \item Extension et modification de la classe P2DArrayAdapter, introduction de la methode | 
|---|
|  | 252 | P2DArrayAdapter::MeanVal() | 
|---|
|  | 253 | \item Modif de la classe LUT pour introduction typeRGB et methode LUT::ApplyRGB() | 
|---|
|  | 254 | \end{enumerate} | 
|---|
| [3481] | 255 | \item[\rond] Avril 2008 {\bf (PI)}: Ajout d\'ecodage options sens des axes X,Y  PiScDrawWdg. \\ | 
|---|
|  | 256 | {\tt revax = axerl } (kAxeDirRtoL) \hspace{5mm}  {\tt axelr}   (kAxeDirLtoR) \\ | 
|---|
|  | 257 | {\tt revay = axeud}  (kAxeDirUpDown) \hspace{5mm} {\tt axedu} ((kAxeDirDownUp) | 
|---|
| [3459] | 258 | \item[\rond] Fevrier 2008 {\bf (PI)}: Nouvelle m\'ethode de calcul de limite de LUT\\ | 
|---|
|  | 259 | On garde les $frackeep$ valeurs centrales des pixels, cad on vire les $(1-frackeep)/2$ | 
|---|
|  | 260 | valeurs les plus petites et les $(1-frackeep)/2$ valeurs les plus grandes. | 
|---|
|  | 261 | \begin{verbatim} | 
|---|
|  | 262 | autolut=hisrng,frackeep,min,max | 
|---|
|  | 263 | \end{verbatim} | 
|---|
| [3481] | 264 | \item[\rond] Janvier 2008 {\bf (ProgPI)} Ajout de l'option {\tt -nobsz}  la commande {\bf readfits} | 
|---|
|  | 265 | et ajout de la commande de lecture array from fits : {\bf rdfitsarr} | 
|---|
| [3459] | 266 | \end{itemize} | 
|---|
|  | 267 |  | 
|---|
| [3402] | 268 | \groupe{De V2.0 (Sep2006)  V2.1 (Nov2007) } | 
|---|
| [3229] | 269 | \titre{BuildMgr} | 
|---|
| [2905] | 270 | \begin{itemize} | 
|---|
| [3402] | 271 | \item[\rond] Nov 2007 : configure detecte Linux 64 bits {(\tt -> /usr/X11R6/lib64)} | 
|---|
|  | 272 | et correction bug lors de l'execution de sed pour la creation de sophyamake.inc | 
|---|
|  | 273 | {\tt AIX, -X 64 }. | 
|---|
| [3373] | 274 | \item[\rond] Oct 2007 : Ajout flag {\tt -alsofftwfloat} au script pour compilation/link | 
|---|
|  | 275 | methodes float (r\_4) de FFTWServer. | 
|---|
| [3229] | 276 | \item[\rond] Avril 2007 :  Amlioration du script configure, qui prend en charge | 
|---|
|  | 277 | la gestion des diffrents flags de compilation (mis dans fichier machdefs.h gnr | 
|---|
|  | 278 | ou dans sophyamake.inc (pour les flags du compilateur) - Nettoyage du fichier | 
|---|
|  | 279 | BaseTools/machdefs\_mkmf.h et des fichiers osname\_compilo.inc | 
|---|
|  | 280 | \begin{verbatim} | 
|---|
|  | 281 | csh> cd BuildMgr/ | 
|---|
|  | 282 | csh> ./configure -h | 
|---|
|  | 283 | configure [-sbase SOPHYABASE] [-scxx SOPHYACXX] [-incln] | 
|---|
|  | 284 | [-minc mymake.inc]  [-compopt 'cc/cxxOptions'] | 
|---|
|  | 285 | [-arch64] [-sasz64] [-nofpic] [-nothsafe] [-boundcheck] [-sodebug] | 
|---|
|  | 286 | [-extp dir1 -extp dir2 ...] [-extip dir1 -extip dir2 ... ] | 
|---|
|  | 287 | [-extlp dir1 -extlp dir2 ... ] | 
|---|
|  | 288 | [-noextlib] [-noext fits] [-noext fftw] | 
|---|
|  | 289 | [-noext lapack] [-noext astro] | 
|---|
|  | 290 | [-noPI] [-slballinone] | 
|---|
|  | 291 | [-usefftw2 -uselapack2] | 
|---|
|  | 292 | (See SOPHYA manual/web pages for a detailed description | 
|---|
|  | 293 | of configure options) | 
|---|
|  | 294 | \end{verbatim} | 
|---|
|  | 295 | \end{itemize} | 
|---|
|  | 296 |  | 
|---|
|  | 297 | %%%%%% | 
|---|
|  | 298 | \titre{BaseTools} | 
|---|
|  | 299 | \begin{itemize} | 
|---|
| [3402] | 300 | \item[\rond] Novembre 2007 : Ajout de la classe de gnrateur alatoire | 
|---|
|  | 301 | thread-safe {\bf RandomGenerator } - fichiers {\tt stsrand.h .cc} - | 
|---|
|  | 302 | Ajout du programme {\tt Tests/tmtrnd,3.cc }.\\ | 
|---|
|  | 303 | Correction , protection I/O PPF pour NDataBlock de taille nulle. | 
|---|
| [3301] | 304 | \item[\rond] Aout 2007 : Passage numro de version SOPHYA V=2.135 | 
|---|
|  | 305 |  V=2.046 - Les numros V=A.B sont dsormais rservs aux versions | 
|---|
|  | 306 | avec un tag cvs. | 
|---|
|  | 307 | \item[\rond] Avril 2007 : {\bf ThreadSafe } \hspace{5mm} | 
|---|
| [3229] | 308 | Les oprations de partage de rfrence rendues thread-safe pour les classes | 
|---|
|  | 309 | {\bf NDataBlock$<$T$>$ , SegDataBlock$<$T$>$, SwSegDataBlock$<$T$>$} | 
|---|
|  | 310 | \begin{itemize} | 
|---|
|  | 311 | \item Ajout de la classe {\bf ThSafeOp} avec les mthodes {\tt lock() , unlock() } utilisant | 
|---|
|  | 312 | un mutex. | 
|---|
|  | 313 | \item Ces mthodes peuvent tre rendues transparentes (sans effet) en activant le flag \\ | 
|---|
|  | 314 | {\tt SO\_NOTHSAFE} (option -nothsafe de configure) | 
|---|
|  | 315 | \item Cette protection / synchronisation semble tre efficace en ce qui concerne les | 
|---|
|  | 316 | constructeurs de copie et l'extraction de sous-tableaux pour TArray, TMatrix,TVector. | 
|---|
|  | 317 | (programme de vrification Tests/zthr.cc - option sync ). | 
|---|
|  | 318 | \item En ce qui concerne les classes SegDataBlock , SwSegDataBlock, l'efficacit | 
|---|
|  | 319 | de la protection n'a pas t teste. Les oprations d'criture sur les DataTable | 
|---|
|  | 320 | devront aussi  tre protges pour l'utilisation multi-thread. | 
|---|
|  | 321 | \end{itemize} | 
|---|
|  | 322 | \item[\rond] Avril 2007 :  Nettoyage du fichier machdefs\_mkmf.h, suppression des flags | 
|---|
|  | 323 | de compilation optionnelle MacOS 8.x  9.x / compilo CodeWarrior | 
|---|
|  | 324 | \item[\rond]  Fev 2007 :  Ajout methode NDataBlock::RenewObjId() , et Dealloc() (alias de Delete()) | 
|---|
|  | 325 | et correction bug ds SwSegDataBlock::GetCstSegment() | 
|---|
|  | 326 | \end{itemize} | 
|---|
|  | 327 |  | 
|---|
|  | 328 | %%%%%% | 
|---|
|  | 329 | \titre{TArray} | 
|---|
|  | 330 | \begin{itemize} | 
|---|
| [3373] | 331 | \item[\rond] Oct 07 : Mthode TArray::SumX2() renomme en SumSq(), Norm2() appelle SumSq() sauf pour les tableaux complexes, o on calcule une norme relle positive (Sum[el x conj(el)). | 
|---|
| [3229] | 332 | \item[\rond] Avr 07 : Constructeur de copie et extraction de sous-tableaux rendus thread-safe | 
|---|
|  | 333 | (voir ci-dessus) | 
|---|
|  | 334 | \item[\rond]  Jan 07 : Ajout classes/methodes de cast de contenu - sans conversion (fichier arrctcast.h) | 
|---|
|  | 335 | \item[\rond]  Fev 07 :  Ajout methode TArray::RenewObjId() (reecriture PPF), et ZeroSize() | 
|---|
|  | 336 | (deallocation tableau / le rendre vierge=sans taille) | 
|---|
|  | 337 | \end{itemize} | 
|---|
|  | 338 |  | 
|---|
|  | 339 | %%%%%% | 
|---|
|  | 340 | \titre{HiStats} | 
|---|
|  | 341 |  | 
|---|
|  | 342 | \begin{itemize} | 
|---|
| [3402] | 343 | \item[\rond] Novembre 2007 : Les methodes de remplissage de NTuple {\tt Fill() } | 
|---|
|  | 344 | et de DataTable, SwPPFDataTable {\tt AddRow() }, ainsi que | 
|---|
|  | 345 | {\tt BaseDataTable::GetRow() } rendues thread-safe. \\ | 
|---|
|  | 346 | Activation avec la methode {\tt SetThreadSafe(bool fg=true)  } | 
|---|
|  | 347 | pour chaque NTuple ou DataTable / SwPPFDataTable. Ajout du programme Tests/tmtdt.cc. | 
|---|
| [3286] | 348 | \item[\rond]  Janvier 2007 : Remaniement de la classe HistoErr: elle n'h\'erite plus | 
|---|
|  | 349 | de Histo et devient stand-alone avec des TVector comme support des donne\'ees. \\ | 
|---|
|  | 350 | Introduction de la classe Histo2DErr qui fait la meme chose que HistoErr | 
|---|
|  | 351 | mais \`a $2$ dimensions. \\ | 
|---|
|  | 352 | Modifs des adaptateurs: NOMAdapter\_Histo ne contient plus HistoErr, | 
|---|
|  | 353 | et NOMAdapter\_HistoErr, NOMAdapter\_Histo2DErr sont cr\'ees dans PIext. | 
|---|
|  | 354 |  | 
|---|
| [3229] | 355 | \end{itemize} | 
|---|
|  | 356 |  | 
|---|
|  | 357 | %%%%%% | 
|---|
|  | 358 | \titre{SkyMap} | 
|---|
|  | 359 |  | 
|---|
|  | 360 | \begin{itemize} | 
|---|
| [3301] | 361 | \item[\rond]  Aou 2007 :  Correction de signe dans {\tt LocalMap::PixToSphereC()} suite message de | 
|---|
|  | 362 | S. Plaszczynski du 12/07/07 | 
|---|
| [3229] | 363 | \item[\rond]  Fev 2007 :  Ajout methode RenewObjId() (reecriture PPF) pour les cartes spheriques | 
|---|
|  | 364 | et localmap | 
|---|
|  | 365 | \end{itemize} | 
|---|
|  | 366 |  | 
|---|
|  | 367 | %%%%%% | 
|---|
| [3280] | 368 | \titre{SysTools} | 
|---|
|  | 369 |  | 
|---|
|  | 370 | \begin{itemize} | 
|---|
|  | 371 | \item[\rond]  Jul 2007 :  Ajout d'acces au temps CPU et elapsed ds la classe Timer - et | 
|---|
|  | 372 | ajout test specifique dans Tests/tcmd.cc {\tt (tcmd timer)}. \\ | 
|---|
|  | 373 | {\tt Timer::TotalElapsedTime() , PartialElapsedTime() , TotalCPUTime() , PartialCPUTime() } | 
|---|
|  | 374 | \end{itemize} | 
|---|
|  | 375 |  | 
|---|
|  | 376 | %%%%%% | 
|---|
| [3229] | 377 | \titre{FitsIOServer} | 
|---|
|  | 378 |  | 
|---|
|  | 379 | \begin{itemize} | 
|---|
| [3402] | 380 | \item[\rond] Nov 2007 : propagation des modifs BaseDataTable-Thread-safe dans | 
|---|
|  | 381 | SwFitsDataTable. Mais les SwFitsDataTable NE sont toujours pas thread-safe. | 
|---|
| [3229] | 382 | \item[\rond]  Jan/Fev 2007 :  Passage a la version LONGLONG  ( fits\_xxxll ) permettant | 
|---|
|  | 383 | la gestion de tailles $ > 2^{32} $ | 
|---|
|  | 384 | \end{itemize} | 
|---|
|  | 385 |  | 
|---|
| [3373] | 386 | \titre{IFFTW} | 
|---|
|  | 387 |  | 
|---|
|  | 388 | \begin{itemize} | 
|---|
| [3402] | 389 | \item[\rond] Nov 2007 : Correction resize tableau de sortie {\tt FFT(complexe -> reel)} multi-dim. | 
|---|
| [3373] | 390 | \item[\rond]  Oct 2007 :  Ajout version float (r\_4) des methodes {\tt FFTForward} et {\tt FFTBackward} | 
|---|
|  | 391 | a la classe FFTWServer. (compilation sous condition et flag -alsofftwfloat du script configure) | 
|---|
|  | 392 | \end{itemize} | 
|---|
|  | 393 |  | 
|---|
| [3229] | 394 | %%%%%% | 
|---|
|  | 395 | \titre{PI/piapp} | 
|---|
|  | 396 | \begin{itemize} | 
|---|
| [3457] | 397 | %%% | 
|---|
| [3438] | 398 | \item[\rond] Novembre 2007 {\bf PIext/ProgPI}: \\ | 
|---|
|  | 399 | - Ajout commande de trace d'ellipse d'erreur {\tt errorellipse} \\ | 
|---|
|  | 400 | - Axes en degres (0..360, -90..90) pour la projection molleweide et adaptation de la commande {\tt mollgrid}. Suppression de mollgridsph. \\ | 
|---|
|  | 401 | - Ajout fonctions tetphi2mollX/Y() et longlat2mollX/Y() ds les fichiers d'expressi | 
|---|
|  | 402 | on ntuple generes par piapp pour trace sur projection de type molleweide. \\ | 
|---|
|  | 403 | - Ajout flag [-s] a openppf . openfits/savefits comme alias de readfits/writefits. | 
|---|
|  | 404 | - Verification arret thread Reveil avant destruction de l'objet. | 
|---|
| [3373] | 405 | \item[\rond] Octobre 2007 {\bf (PI/PIext)}: Ajout methodes de redirection stdout/stderr vers un objet PIConsole, | 
|---|
|  | 406 | a travers un fichier disque (fichiers PI/piapplx.h .cc) avec possibilite de recopie sur stdout/stderr | 
|---|
|  | 407 | original (terminal) - en plus d'affichage sur PIConsole. \\ | 
|---|
|  | 408 | + Adaptation au niveau de PIext/pistdimgapp.h .cc et ProgPI/piapp.cc \\ | 
|---|
|  | 409 | + la redirection passe par les fichiers PIATmp\_xxx/sout.log /serr.log \\ | 
|---|
|  | 410 | + le flag (s)piapp -doublered permet la redirection avec recopie sur terminal | 
|---|
|  | 411 | %%% | 
|---|
|  | 412 | \item[\rond] Octobre 2007 {\bf (PIext)}: Correction/protection au niveau de gestion des locks de mutex | 
|---|
|  | 413 | (classes NamedObjMgr , PIStdImgApp) pour eviter les blocages de l'application sous certaines | 
|---|
| [3402] | 414 | conditions ( lors de l'affichage de la fenetre de gestion d'objets  et lecture PPF). \\ | 
|---|
| [3373] | 415 | Modification des classes NamedObjMgr . ObjMgrWind, la methode | 
|---|
| [3402] | 416 | { \tt UpdateObjMgrWindow() } de NamedObjMgr en particulier. \\ | 
|---|
|  | 417 | Ajout de la classe {\bf SOpExObj} (ds piacmd.h piacmd.cc) pour executer | 
|---|
|  | 418 | - de maniere asynchrone - | 
|---|
|  | 419 | les commandes display,print \ldots  sur les objets, initiees au niveau | 
|---|
|  | 420 | de la boucle d'evenements (fenetre ObjMgrWind). | 
|---|
| [3373] | 421 | \item[\rond] Octobre 2007 {\bf (PIext)}: Ajout attributs graphiques \\ | 
|---|
|  | 422 | {\tt samew=WdgName } specification de widget cible pour trace en superposition \\ | 
|---|
|  | 423 | {\tt wname=Nom } Pour specifier un nom de widget (= nom d'objet par defaut) \\ | 
|---|
|  | 424 | {\tt inset=fx1,fx2,fy1,fy2 } pour specifier la position du drawer en inset (medaillon) | 
|---|
|  | 425 | \item[\rond] Octobre 2007 {\bf (PIGcont/PIext)}: Codage mthode PIContourDrawer::GetOptionsHelpInfo() pour le traceur de contour. \\ | 
|---|
|  | 426 | Ajout accs aux attributs {\tt min max minmax sumsq norm2 } aux niveau des adaptateurs | 
|---|
|  | 427 | des objets de type TArray, TMatrix, TVector ({\tt \$\{arrName.sumsq\} \$\{arrName.min\} } \ldots). | 
|---|
| [3301] | 428 | \item[\rond]  Aout 2007 {\bf (PI)}: Nouvelles mthodes de calcul de limite de LUT | 
|---|
|  | 429 | dans PIImage (AutoLut) et ajout du dcodage de l'option {\tt autolut=alt[,ns[,minp,maxp]]}. | 
|---|
|  | 430 | Si {\tt minp,maxp} spcifis, seuls les pixels entre {\tt minp <= pixval <= maxp} | 
|---|
|  | 431 | sont utiliss pour le calcul des limites. | 
|---|
|  | 432 | \begin{verbatim} | 
|---|
|  | 433 | autolut=minmax,frac   Fraction de la dynamique totale | 
|---|
|  | 434 | autolut=meansig,ns   min=mean-ns*sigma , max=mean+ns*sigma | 
|---|
|  | 435 | autolut=histail,ns   Queue de l'histo des pixels | 
|---|
|  | 436 | autolut=hispeak,ns  Pic de l'histo des pixels | 
|---|
|  | 437 | \end{verbatim} | 
|---|
|  | 438 | % | 
|---|
|  | 439 | \item[\rond]  Aout 2007 {\bf (PI)}:  Contournement d'un problme d'venements X expose | 
|---|
|  | 440 | perdu - apparu avec des versions rcentes du serveur XFree ou le serveur X sur Linux | 
|---|
|  | 441 | ou une combinaison des deux. Rsultat, contenu non affich lors d'une cration de fentre | 
|---|
|  | 442 | suivi d'un ajout de PIBaseWidget (sauf PIImage) et plantage lors du click dans la fentre. | 
|---|
|  | 443 | Correction: Ajout de {\tt XFlush() + usleep(5000)} (5 $\mu$s). | 
|---|
| [3270] | 444 | \item[\rond]  Juin 2007 {\bf (PI/PIext)}:  Ajout des mthodes | 
|---|
|  | 445 | {\tt PIGraphicAtt::ColNameToColor() , ColIndexToColor()} et possibilit d'utiliser le contenu | 
|---|
|  | 446 | d'une colonne d'une table comme nom de couleur ou numro de couleur pour le trac | 
|---|
|  | 447 | des markers par PINTuple {\tt PINTuple::SelectColorByName() , SelectColorByIndex()}. | 
|---|
| [3280] | 448 | Ajout des commandes {\bf nt2dcn} et {\bf nt2dci}  et {\bf plot2dc}  ds piapp. | 
|---|
| [3229] | 449 | \item[\rond]  Avril 2007 {\bf (PI)}:  La source des problmes sur MacOS/PowerPC (G4/G5) | 
|---|
|  | 450 | et AIX (architecture Power) a finalement t identifi et corrig/ | 
|---|
|  | 451 | Parmi ces problmes:  des pull-down menus mal placs (MenuBar), ou encore des | 
|---|
|  | 452 | dysfonctionnement de boutons dans les fentres de dialogues. \\ | 
|---|
|  | 453 | Source et correction: \hspace{5mm} {\tt XtMoveWidget / XtResizeWidget} remplac par \\ | 
|---|
|  | 454 | \hspace*{10mm} {\tt XtMakeGeometryRequest} | 
|---|
|  | 455 | \item[\rond]  Avril 2007 {\bf (PIext/piapp)}: | 
|---|
|  | 456 | \begin{itemize} | 
|---|
|  | 457 | \item Ajout de la classe {\bf NOMAdapter\_DVList} | 
|---|
|  | 458 | pour la prise en charge des objets DVList. | 
|---|
|  | 459 | Accs aux variables par {\tt \$\{dvlName.varName\} } | 
|---|
| [3438] | 460 | \item Accs  l'objet DVList attach aux TArray, TMatrix, DataTable et NTuple par \\ | 
|---|
| [3229] | 461 | \hspace*{5mm}  {\tt \$\{objName.info.varName\} } | 
|---|
|  | 462 | \item L'adaptateur de DataTable permet aussi d'accder aux lignes de la table par \\ | 
|---|
|  | 463 | \hspace*{5mm} {\tt \$\{tableName.row.num\} } | 
|---|
|  | 464 | \item Prise en charge de la classe {\tt Image<T>} par l'adaptateur des matrices | 
|---|
|  | 465 | {\tt NOMAdapter\_TMatrix<T> } au lieu de l'adaptateur spcifique | 
|---|
|  | 466 | {\tt NOMAdapter\_Image<T>  } | 
|---|
|  | 467 | \end{itemize} | 
|---|
| [3301] | 468 | \item[ \rond] Janvier 2007  {\bf (PIext)}:  modification des trac\'es des histogrammes PIHisto. | 
|---|
| [3229] | 469 | La classe PIHisto prend en entr\'ee un wrapper P1DHistoWrapper. | 
|---|
|  | 470 | Les wrappers HistoWrapper et HistoErrWrapper sont cr\'ees. | 
|---|
|  | 471 | Ainsi les HistoErr peuvent \^etre dessin\'es sous forme d'histogrammes. | 
|---|
|  | 472 | Mise en place des options graphiques permettant de dessiner les | 
|---|
|  | 473 | valeurs (``val''), erreurs (``err'') et le nombre d'entr\'ees par bin (``nb'') | 
|---|
|  | 474 | pour les HistoErr. Idem pour les versions $2$ dimensions. | 
|---|
|  | 475 | \end{itemize} | 
|---|
|  | 476 |  | 
|---|
|  | 477 | %%%%%%%% | 
|---|
|  | 478 | \titre{Documentation (Manual/) } | 
|---|
|  | 479 | \begin{itemize} | 
|---|
|  | 480 | \item[\rond]  Jan 2007 :  Ajout fichier de mesure de performances comparees entre | 
|---|
|  | 481 | differentes processeur / OS / compilateur {\tt perfmachine.txt } | 
|---|
|  | 482 | \end{itemize} | 
|---|
|  | 483 |  | 
|---|
|  | 484 |  | 
|---|
|  | 485 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
|---|
|  | 486 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
|---|
| [3301] | 487 | \groupe{De V1.7 (Sep2003)  V2.0 (Sep2006) } | 
|---|
| [3229] | 488 | \titre{BuildMgr} | 
|---|
|  | 489 | \begin{itemize} | 
|---|
| [2971] | 490 | \item[\rond] Juin 2006 :  Ajout targets cleanobj prgall tests prgutil | 
|---|
|  | 491 | \item[\rond] Avril 2006 :  suppression de libextsophya.so pour fabriquer libPI.so | 
|---|
|  | 492 | (PIext rendu independant de FitsIOServer) | 
|---|
|  | 493 | \item[\rond] Dec 2005/Jan 2006 :  Portage sur AIX - xlC | 
|---|
| [2905] | 494 | \item[\rond] Dec 2005 : check Compil avec icc , compil avec gcc-4 | 
|---|
|  | 495 | \item[\rond] Avril-Mai 2005 : Introduction de la nouvelle version de | 
|---|
| [2829] | 496 | scripts de gestion du code - avec un script principal configure. \\ | 
|---|
|  | 497 | Variable d'environnement {\bf SOPHYABASE } - \\ | 
|---|
|  | 498 | Pour les makefiles, l'ensemble des dfinitions se trouve dans : \\ | 
|---|
|  | 499 | SOPHYABASE/include/sophyamake.ic \\ | 
|---|
| [2905] | 500 | \end{itemize} | 
|---|
| [3176] | 501 |  | 
|---|
| [3229] | 502 | %%%%%% | 
|---|
|  | 503 | \titre{BaseTools} | 
|---|
| [3176] | 504 |  | 
|---|
| [3229] | 505 | \soustitre{Modifs} | 
|---|
| [3176] | 506 |  | 
|---|
| [2829] | 507 | \begin{itemize} | 
|---|
| [3050] | 508 | \item[\rond] Jun/Jul 2006 : Amelioration gestion initialiseur modules \\ | 
|---|
|  | 509 | - Ajout methodes statique  {\tt RegisterModule(const char* name, double version) | 
|---|
|  | 510 | ListModules(ostream\& os) } a la classe de base SophyaInitiator. \\ | 
|---|
|  | 511 | - Enregistrement des modules avec leur nom et un numero de version par module, | 
|---|
|  | 512 | independante du numero de version SOPHYA \\ | 
|---|
|  | 513 | - le programme scanppf peut donner la liste des modules enregistrees et leur numero | 
|---|
|  | 514 | de version. | 
|---|
| [2835] | 515 | \item[\rond] Octobre-Novembre 2005 :  \\ | 
|---|
| [2829] | 516 | 1/ Correction bug TimeStamp::ToDays() + petites amelioration \\ | 
|---|
|  | 517 | 2/ Prise en compte du type TimeStamp dans MuTyV (sous forme de double en interne) \\ | 
|---|
|  | 518 | 3/ Adaptation DVList a modifs MuTyV (typ TimeStamp) et R/W PPersist \\ | 
|---|
| [2911] | 519 | 4/ Gestion format YYYY-MM-DDThh:mm:ss par TimeStamp \\ | 
|---|
| [2835] | 520 | 5/ Gestionnaire PPersist pour TimeStamp | 
|---|
| [2829] | 521 | % | 
|---|
|  | 522 | \item[\rond] Septembre 2004 - {\bf Namespace SOPHYA } \\ | 
|---|
| [2632] | 523 | Suppression de {\tt using namespace SOPHYA ; } ds machdefs.h - | 
|---|
|  | 524 | Ajout fichier {\tt \#include "sopnamsp.h"} dans les .cc de SOPHYA, | 
|---|
|  | 525 | ainsi que lors de la gnration automatique du code (runxx, c++exec) | 
|---|
| [2829] | 526 | \end{itemize} | 
|---|
| [2632] | 527 |  | 
|---|
| [3229] | 528 | \soustitre{PPF} | 
|---|
| [2632] | 529 | \begin{itemize} | 
|---|
| [3229] | 530 | \item[\rond] Avril 2005 - Ajout de wrapper de lecture/ecriture PPF pour les vecteurs de | 
|---|
|  | 531 | la librairie standard (classe PPFWrapperSTLVector$<$T$>$ ) fichier ppfwrapstlv.h | 
|---|
|  | 532 | \item[\rond] Ajout de la classes utilitaire PPF\_TPointer\_IO$<$T$>$ | 
|---|
|  | 533 | (fichiers ppftpointer.h .cc) | 
|---|
|  | 534 | \item[\rond] Amelioration de l'impression ds AnalyseTags (ppfbinstream.cc) | 
|---|
|  | 535 | \item[\rond] scanppf.cc revision 1.8 (2005/04/05) | 
|---|
|  | 536 | modification programme scanppf: ajout option -lh -lho pour lister les classes PP | 
|---|
|  | 537 | ersist handler | 
|---|
| [2716] | 538 | \item[\rond] Dcembre 2003 (9/12/2003) Fin de l'ensemble des modifs pour les | 
|---|
| [2632] | 539 | PPF V3 \\ | 
|---|
|  | 540 | - Ecriture nombre complexes r4, r8 avec tag spcifique. \\ | 
|---|
|  | 541 | Tag de positionnement sous forme de \\ | 
|---|
|  | 542 | \centerline{\tt <tag (1 byte)><FilePosition (8 byte, long int)> } \\ | 
|---|
|  | 543 | - Ecriture PosTagTable \\ | 
|---|
|  | 544 | - Ecriture Statistiques en fin de fichier \\ | 
|---|
|  | 545 | - Voir BaseTools/ppfbinstream.h: \\ | 
|---|
|  | 546 | \centerline{\tt  GotoPositionTag(int\_8 pos) , } | 
|---|
|  | 547 | \centerline{\tt  GetPosTagTable(...) } | 
|---|
|  | 548 | \centerline{\tt  int\_8 WritePositionTag() PutPosTagTable(...) } | 
|---|
|  | 549 | - Ajout programme de test Tests/ppftswap.cc | 
|---|
| [3229] | 550 | \item[\rond] Dcembre 2003 - Ajout ppfbinstream.h .cc \\ | 
|---|
|  | 551 | Classes PPFBinaryIOStream , PPFBinaryInputStream , PPFBinaryOutputStream | 
|---|
|  | 552 | \item[\rond] Novembre 2003 (21/11/2003) - Ajout rawstream.h .cc \\ | 
|---|
|  | 553 | Classes RawInOutStream  ,  RawInFileStream , RawOutFileStream | 
|---|
| [2716] | 554 |  | 
|---|
| [2632] | 555 | \end{itemize} | 
|---|
|  | 556 |  | 
|---|
| [2716] | 557 |  | 
|---|
| [3229] | 558 | \soustitre{Nouvelles classes} | 
|---|
| [2717] | 559 | \begin{itemize} | 
|---|
|  | 560 | \item[\rond] Ajout de la classe {\bf TimeStamp} pour la manipulation de date et heure - | 
|---|
| [3301] | 561 | calcul de duree. - Ajout du prog. test Tests/ttimestamp.cc (Mars 2005) | 
|---|
| [2717] | 562 | \item[\rond] { \bf Segmented Data Block :}  \\ | 
|---|
| [2716] | 563 | Mars-Avril 2005: Introduction des classes similaires aux NDataBlock, mais permettant | 
|---|
|  | 564 | de gerer des blocs de donnees segementes, pour tout type de donnees, de structures | 
|---|
| [2717] | 565 | et de classes (template pour tout type T). | 
|---|
|  | 566 | \begin{enumerate} | 
|---|
|  | 567 | \item  Ajout de la classe {\tt SegDataBlock<T>} (et l'interface { \tt SegDBInterface<T>} ) | 
|---|
| [2716] | 568 | pour la gestion de blocs de donnees segmentes (segdatablock.h) et son | 
|---|
| [2717] | 569 | gestionnaire PPF {\tt FIO\_SegDataBlock<T>}  (fichier fiosegdb.h ) | 
|---|
|  | 570 | \item Ajout de la classe {\tt SwSegDataBlock<T>} (Data bloc segmente avec gestion | 
|---|
|  | 571 | de swap) et la classe swapper PPF {\tt PPFDataSwapper<T>} (fichiers | 
|---|
| [2716] | 572 | ppfswapper.h et swsegdb.h) | 
|---|
| [2717] | 573 | \item Ajout programme de test Tests/tstsegdb.cc | 
|---|
|  | 574 | \end{enumerate} | 
|---|
|  | 575 | \end{itemize} | 
|---|
| [2716] | 576 |  | 
|---|
| [3229] | 577 | %%%%% | 
|---|
|  | 578 | \titre{TArray} | 
|---|
|  | 579 | %% | 
|---|
| [2942] | 580 | Il s'agit essentiellement des ameliorations en terme de performances et | 
|---|
|  | 581 | de correction d'erreur. | 
|---|
|  | 582 |  | 
|---|
| [2632] | 583 | \begin{itemize} | 
|---|
| [2942] | 584 | \item[\rond] Avril 2006  \\ | 
|---|
|  | 585 | - Instanciation explicite des tableaux , matrices et vecteurs en types \\ | 
|---|
|  | 586 | {\tt int\_2 uint\_2 uint\_4 uint\_8 } \\ | 
|---|
|  | 587 | - Optimisation du code (ds tarray.cc) des operations sur tableaux  \\ | 
|---|
|  | 588 | {\tt (TArray::Add/Mul/Sub/DivCst  TArray::Add/Mul/Sub/DivElt ) } \\ | 
|---|
|  | 589 | a travers le  choix entre Share() ou Allocation si le tableau resultat est non alloue. | 
|---|
|  | 590 | D'apres les tests de performances (TCPU), {\bf (tjet , spar)}, il ne semble pas y | 
|---|
|  | 591 | avoir de cas de pertes, et on a en general des gains de l'ordre de 20\% dans la plupart | 
|---|
|  | 592 | des cas de tests,  et un ou deux cas avec des gains de 50-80\%. \\ | 
|---|
|  | 593 | - Declaration de l'operateur / entre tableaux (DivElt) et l'operateur \& \& pour la | 
|---|
|  | 594 | multiplication element par element (MulElt) | 
|---|
| [2919] | 595 | \item[\rond] Janvier, Fvrier 2006  \\ | 
|---|
|  | 596 | - Amlioration des fonctionalits de la classe {\bf Range} et  des mthodes d'extraction | 
|---|
|  | 597 | de sous-tableaux (+ correction bugs et amlioration documentation) \\ | 
|---|
| [2911] | 598 | - Ajout de la methode BaseArray::ValueAtPositionDB() pour corriger un gros bug au | 
|---|
|  | 599 | niveau de la conversion de type (r\_4 r\_8 ...) des tableaux \\ | 
|---|
|  | 600 | - Compil avec g++ 4 : ajouts fichiers declarations privees tmatrix\_tsnl.h tvector\_tsnl.h | 
|---|
|  | 601 |  | 
|---|
| [2971] | 602 | \item[\rond] Juillet 2004 \\ | 
|---|
|  | 603 | - Optimisation de la multiplication matricielle (CMV) - Extrait du | 
|---|
| [2716] | 604 | message (from CMV) du 30 Juillet 2004: \\ | 
|---|
| [2632] | 605 | \begin{verbatim} | 
|---|
|  | 606 | - on definit un flag d'optimisation | 
|---|
|  | 607 | Contrairement a ce qu'on avait dit, je n'ai pas ajoute | 
|---|
|  | 608 | un argument a Multiply car on ne peut pas jouer | 
|---|
|  | 609 | avec qiand on utilise l'operateur * surcharge. | 
|---|
|  | 610 | Or au vu des performance il'ma parut interessant que l'utilisateur | 
|---|
|  | 611 | meme lambda puisse choisir le niveau d'optimisation | 
|---|
|  | 612 | --> donc j'ai ajoute une methode statis dans BaseArray:: | 
|---|
|  | 613 | void BaseArray::SetMatProdOpt(uint_2); | 
|---|
|  | 614 | uint_2 BaseArray::GetMatProdOpt(); | 
|---|
|  | 615 |  | 
|---|
|  | 616 | - Je n'ai refait les test de rapidite que sur OSF: | 
|---|
|  | 617 |  | 
|---|
|  | 618 | 1./  pour les matrices 1000x1000 (grosses) | 
|---|
|  | 619 | on arrive effectivement au meme temps pour les 4 cas | 
|---|
|  | 620 | si on copie dans le cas lent (FxC) | 
|---|
|  | 621 | ---EndMultiply FxC  CPUTime: Total= 93.1296  (Partial= 69.3806) Sec. | 
|---|
|  | 622 | devient | 
|---|
|  | 623 | ---EndMultiply FxC  CPUTime: Total= 34.9653  (Partial= 11.1829) Sec. | 
|---|
|  | 624 | exactement comme les copains: | 
|---|
|  | 625 | La copie prend de la place mais ne prend absolument | 
|---|
|  | 626 | pas de temps pour les grosses matrices | 
|---|
|  | 627 |  | 
|---|
|  | 628 | 2./ pour les matrices 10x10 (1000000 multiplications par cas) | 
|---|
|  | 629 | on a bien ce que l'on attend a savoir que | 
|---|
|  | 630 | la copie faites 100000 fois finie par nous faire perdre du temps | 
|---|
|  | 631 | ---EndMultiply FxC  CPUTime: Total= 37.4152  (Partial= 12.4662) Sec. | 
|---|
|  | 632 | devient | 
|---|
|  | 633 | ---EndMultiply FxC  CPUTime: Total= 53.9978  (Partial= 28.8322) Sec. | 
|---|
|  | 634 | dans ce cas on perd un gros facteur 2 a cause de la copie | 
|---|
|  | 635 | mais rien de surprenant la dedans. | 
|---|
|  | 636 |  | 
|---|
|  | 637 | ----------------------------------------------------------------------- | 
|---|
|  | 638 | - ensuite j'ai implemente une prise de decision au niveau de | 
|---|
|  | 639 | l'optimisation pour les petites matrices: | 
|---|
|  | 640 | le test est simple mais me semble OK: | 
|---|
|  | 641 | je calcule sza taille du NDataBlock de A | 
|---|
|  | 642 | szb                         B | 
|---|
|  | 643 | si ((sza+szb)*sizeof(T) < 100000 ) pas d'optimisation | 
|---|
|  | 644 | IDEE: on pifometre que raisonnablement il y a 100 koctets | 
|---|
|  | 645 | de disponible pour les matrices A et B dans le cache processeur | 
|---|
|  | 646 | et que dans ce cas elles sont copiees toutes les 2 dans le cache | 
|---|
|  | 647 | par l'optimiseur du compilo qui est tres malin et surtout qui | 
|---|
|  | 648 | veux absolument nous faire plaisir...... | 
|---|
|  | 649 |  | 
|---|
|  | 650 | ----------------------------------------------------------------- | 
|---|
|  | 651 | ===> Les resultats sont dans le fichier toto.calc en attached | 
|---|
|  | 652 | .. En tete tu as l'explication des flags d'optimisation | 
|---|
|  | 653 | ...Avec les 2 sections: | 
|---|
|  | 654 | GROSSE MATRICE | 
|---|
|  | 655 | et | 
|---|
|  | 656 | PETITE MATRICE | 
|---|
|  | 657 | \end{verbatim} | 
|---|
|  | 658 |  | 
|---|
| [2971] | 659 | \item[\rond] Juillet 2004 : Optimisation operations diverses, en particulier \\ | 
|---|
| [2632] | 660 | 1) Remplacement des methodes Add/Sub/Mul/DivElt(a) par | 
|---|
|  | 661 | Add/Sub/Mul/DivElt(TArray a, TArray res) \\ | 
|---|
|  | 662 | 2)  Operateurs += -= A+B A-B TArray et TMatrix/TVecteur modifies en consequence | 
|---|
| [2911] | 663 | \item[\rond] Extrait de {\tt cvs log tarray.cc } | 
|---|
| [2632] | 664 | {\small \begin{verbatim} | 
|---|
|  | 665 | ---------------------------- | 
|---|
|  | 666 | revision 1.38 | 
|---|
|  | 667 | date: 2004/07/30 13:31:39;  author: ansari;  state: Exp;  lines: +28 -24 | 
|---|
|  | 668 | Diverses petites optimisations ds les methodes operations/affectations de TArray - Reza 30 Juillet 2004 | 
|---|
|  | 669 | ---------------------------- | 
|---|
|  | 670 | ---------------------------- | 
|---|
|  | 671 | revision 1.36 | 
|---|
|  | 672 | date: 2004/07/27 11:44:23;  author: ansari;  state: Exp;  lines: +4 -1 | 
|---|
|  | 673 | Corrections bug apres modifs methods Add/Sub/Mul/DivCst(x,res) - Reza 27 Juillet 2004 | 
|---|
|  | 674 | ---------------------------- | 
|---|
|  | 675 | revision 1.35 | 
|---|
|  | 676 | date: 2004/07/26 17:30:40;  author: ansari;  state: Exp;  lines: +187 -108 | 
|---|
|  | 677 | Remplacement methodes Add/Mul/Sub/Div(T x) par AddCst/MulCst/SubCst/DivCst(T x, TArray<T> res) ds TArray - Reza 26 Juillet 2004 | 
|---|
|  | 678 | ---------------------------- | 
|---|
|  | 679 | \end{verbatim} } | 
|---|
|  | 680 |  | 
|---|
| [2911] | 681 | \item[\rond] Extrait de {\tt cvs log tarray.cc } | 
|---|
| [2632] | 682 | {\small \begin{verbatim} | 
|---|
|  | 683 | ---------------------------- | 
|---|
|  | 684 | revision 1.27 | 
|---|
|  | 685 | date: 2004/07/30 10:24:12;  author: cmv;  state: Exp;  lines: +97 -32 | 
|---|
|  | 686 | - Intro decision auto d'optimisation produit de matrices | 
|---|
|  | 687 | - Possibilite a l'utilisateur pour choisir l'optimisation | 
|---|
|  | 688 | - cas FxC optimise par copie | 
|---|
|  | 689 | cmv 30/07/04 | 
|---|
|  | 690 | ---------------------------- | 
|---|
|  | 691 | revision 1.26 | 
|---|
|  | 692 | date: 2004/07/29 12:31:16;  author: ansari;  state: Exp;  lines: +7 -5 | 
|---|
|  | 693 | 1/ Remplacement des methodes Add/Sub/Mul/DivElt(a) par | 
|---|
|  | 694 | Add/Sub/Mul/DivElt(TArray a, TArray res) | 
|---|
|  | 695 | 2/ Operateurs += -= A+B A-B TArray et TMatrix/TVecteur modifies en consequence | 
|---|
|  | 696 | 3/ Ajout methode TArray::ScalarProduct() | 
|---|
|  | 697 | 4/ Methode TArray::SetT renomme en SetCst() SetT garde en alias | 
|---|
|  | 698 | 5/ Ajout parametre bool fzero (mise a zero) ajoute ds constructeur et | 
|---|
|  | 699 | ReSize() de TMatrix et TVecteur. | 
|---|
|  | 700 | Reza 29/07/2004 | 
|---|
|  | 701 | ---------------------------- | 
|---|
|  | 702 | revision 1.25 | 
|---|
|  | 703 | date: 2004/07/29 08:40:49;  author: cmv;  state: Exp;  lines: +148 -1 | 
|---|
|  | 704 | Optimisation produit de matrice a la sauce cmv 29/07/04 | 
|---|
|  | 705 | ---------------------------- | 
|---|
|  | 706 | \end{verbatim}  } | 
|---|
|  | 707 |  | 
|---|
|  | 708 | \end{itemize} | 
|---|
|  | 709 |  | 
|---|
| [3176] | 710 |  | 
|---|
| [3229] | 711 | %%%%%%%% | 
|---|
|  | 712 | \titre{HiStats} | 
|---|
|  | 713 | %%%%% | 
|---|
|  | 714 | \soustitre{Classe Histo,HProf,HistoErr,Histo2D } | 
|---|
| [3061] | 715 | \noindent | 
|---|
|  | 716 | - Aout 2006 : refonte profonde des allocations memoire et delete de | 
|---|
|  | 717 | Histo,HProf,HistoErr,Histo2D pour faciliter la gestion des IO FITS. \\ | 
|---|
|  | 718 | - Sept 2004 : Ajout classe HistoErr. | 
|---|
|  | 719 | C'est un Histo qui garde le nombre d'entr\'ees dans chaque bin) \\ | 
|---|
| [3229] | 720 | \soustitre{NTuple} | 
|---|
| [2716] | 721 | la classe NTuple peut maintenant avoir des colonnes float ou double. | 
|---|
|  | 722 | Il y a maintenant deux methodes Fill(r\_4 *) et Fill(r\_8 *) | 
|---|
|  | 723 | Les noms ne sont plus limites a 8 caracteres. | 
|---|
|  | 724 |  | 
|---|
|  | 725 |  | 
|---|
| [3229] | 726 | \soustitre{ Les DataTable (SuperNTuple) } | 
|---|
| [2716] | 727 |  | 
|---|
| [2835] | 728 | {\bf Octobre-Novembre 2005 } \\ | 
|---|
|  | 729 | \begin{itemize} | 
|---|
| [2854] | 730 | \item[\rond] Ajout classe {\bf DataTableRow} pour manipulation d'une ligne de la table. | 
|---|
|  | 731 | Ajout/maj methode BaseDataTable::EmptyRow() AddRow() GetRow() | 
|---|
| [2835] | 732 | \item[\rond] Gestion des types {\tt complex<r\_4>  ,   complex<r\_8>  , TimeStamp } par | 
|---|
|  | 733 | BaseDataTable, DataTable et SwPPFDataTable | 
|---|
|  | 734 | \item[\rond] Codage methode Print() (Dump ascii) et NTFrAscii (decodage fichier | 
|---|
|  | 735 | text) dans BaseDataTable. | 
|---|
|  | 736 | \item[\rond] Codage mthode BaseDataTable::GetColumnD() pour recuperer | 
|---|
|  | 737 | une colonne de la table en {\tt TVector<r\_8>} - NON TESTE | 
|---|
|  | 738 | \end{itemize} | 
|---|
|  | 739 |  | 
|---|
| [2632] | 740 | \begin{verbatim} | 
|---|
| [2716] | 741 | BaseDataTable | 
|---|
|  | 742 | --------  DataTable | 
|---|
|  | 743 | --------  SwPPFDataTable | 
|---|
|  | 744 | \end{verbatim} | 
|---|
| [2717] | 745 |  | 
|---|
|  | 746 | \noindent {\bf BaseDataTable} : Classe de base, avec qques methodes virtuelles | 
|---|
| [2716] | 747 | pures, implementent la presque totalite des fonctionalites, en particulier | 
|---|
|  | 748 | celles de l'interface NTupleInterface. | 
|---|
| [2632] | 749 |  | 
|---|
| [2717] | 750 | \noindent {\bf DataTable} : Implementation concrete de BaseDataTable avec donnees en | 
|---|
|  | 751 | memoire \\ | 
|---|
|  | 752 | (utilise SegDataBlock$<$T$>$ pour stocker les colonnes) | 
|---|
| [2632] | 753 |  | 
|---|
| [2717] | 754 | \noindent {\bf SwPPFDataTable} : Implementation concrete de BaseDataTable avec donnees | 
|---|
|  | 755 | en swap sur stream PPF (POutPersist)- \\ | 
|---|
|  | 756 | Utilise  (SwSegDataBlock$<$T$>$ avec | 
|---|
|  | 757 | un data-swapper PPF (classe PPFDataSwapper$<$T$>$ ) | 
|---|
| [2632] | 758 |  | 
|---|
| [2716] | 759 | DataTable et SwPPFDataTable respecte +/- les conventions SOPHYA , | 
|---|
|  | 760 | constructeur de copie avec partage ou copie de donnees, operateur = | 
|---|
|  | 761 | Datatable : partage et copie , = : fait une copie | 
|---|
|  | 762 | SwPPFDataTable : C'est toujours partage (presque par definition) | 
|---|
|  | 763 | Autre point, compte tenu de la structure des streams PPF , | 
|---|
|  | 764 | les SwPPFDataTable fonctionne en ecriture OU en lecture, mais | 
|---|
|  | 765 | pas les deux a la fois. | 
|---|
| [2632] | 766 |  | 
|---|
| [2716] | 767 | Classe de gestion de persistence commune : \\ | 
|---|
| [2717] | 768 | {\bf ObjFileIO$<$BaseDataTable$>$ } | 
|---|
| [2632] | 769 |  | 
|---|
| [2716] | 770 | Lit et ecrit les DataTable et SwPPFDataTable | 
|---|
|  | 771 | Actuellement, on ne peut les relires que dans le meme type, | 
|---|
|  | 772 | cad on ne peut relire avec un SwPPFDataTable un objet | 
|---|
|  | 773 | ecrit comme DataTable - mais cette possibilite pourra | 
|---|
|  | 774 | peut-etre codee ulterieurement (d'ou l'interet en particulier | 
|---|
| [2717] | 775 | d'un gestionnaire commun ObjFileIO$<$BaseDataTable$>$ | 
|---|
| [2632] | 776 |  | 
|---|
| [2716] | 777 | (les operateurs habituel $<<$ et $>>$ sur PIn/OutPersist sont definies) | 
|---|
| [2632] | 778 |  | 
|---|
| [2716] | 779 |  | 
|---|
| [2911] | 780 | Les merges et copie sont prevues, | 
|---|
| [2716] | 781 | on doit en principe pouvoir ecrire par exemple: | 
|---|
| [2717] | 782 | \begin{verbatim} | 
|---|
| [2716] | 783 | SwPPFDataTable swdt; | 
|---|
|  | 784 | PInPersist pis("swdt.ppf"); | 
|---|
|  | 785 | pis >> swdt; | 
|---|
|  | 786 | DataTable dt; | 
|---|
|  | 787 | dt = swdt;  // Pour tout charger en memoire | 
|---|
| [2717] | 788 | \end{verbatim} | 
|---|
| [2716] | 789 |  | 
|---|
| [2911] | 790 | {\it On pourra aussi ajouter des methodes d'acces aux variables | 
|---|
|  | 791 | membres pour enrichier l'interface. } | 
|---|
| [2716] | 792 |  | 
|---|
|  | 793 |  | 
|---|
| [2717] | 794 | {\bf DataTable cote PIAPP :} \\ | 
|---|
| [2716] | 795 | Cote piapp, les DataTable et SwPPFDataTable  sont pris en charge par | 
|---|
| [2717] | 796 | {\tt NOMAdapter\_DataTable} (qui prend en charge tous les 'BaseDataTable' ) | 
|---|
|  | 797 | Il faudrait peut-etre rajouter deux commandes : \\ | 
|---|
| [2716] | 798 | newdt ou newdatatable | 
|---|
| [2717] | 799 | newdt ncol col1 [col2 .... ]  \\ | 
|---|
| [2716] | 800 | avec possibilite de specifier coli sous fome de X:colname ou X = D,F,S,I,L ... | 
|---|
|  | 801 | et puis dtfromascii  ... | 
|---|
|  | 802 |  | 
|---|
|  | 803 | Voir Tests/tnt.cc pour exemple d'utilisation : | 
|---|
| [2717] | 804 | \begin{verbatim} | 
|---|
| [2716] | 805 | DataTable dt(64); | 
|---|
|  | 806 | dt.AddIntegerColumn("line"); | 
|---|
|  | 807 | dt.AddDoubleColumn("x"); | 
|---|
|  | 808 | dt.AddFloatColumn("f_sin"); | 
|---|
|  | 809 | MuTyV rec[10]; | 
|---|
|  | 810 | for(int k = 0; k<1000; k++) { | 
|---|
|  | 811 | rec[0] = k; | 
|---|
|  | 812 | double x = M_PI*k/100.; | 
|---|
|  | 813 | double fx = sin(x)*cos(x); | 
|---|
|  | 814 | rec[1] = x; | 
|---|
|  | 815 | rec[2] = sin(x); | 
|---|
|  | 816 | } | 
|---|
|  | 817 | POutPersist po("dtable.ppf"); | 
|---|
|  | 818 | po << dt; | 
|---|
| [2717] | 819 | \end{verbatim} | 
|---|
| [2716] | 820 |  | 
|---|
|  | 821 | Pour SwPPFDataTable, il faut juste creer un stream PPF avant, qui doit rester | 
|---|
| [2717] | 822 | ouvert tant que le SwPPFDataTable est actif: \\ | 
|---|
|  | 823 | \begin{verbatim} | 
|---|
| [2716] | 824 | POutPersist po("swdtable.ppf"); | 
|---|
|  | 825 | SwPPFDataTable dt(po, 64); | 
|---|
| [2632] | 826 | \end{verbatim} | 
|---|
|  | 827 |  | 
|---|
| [2717] | 828 |  | 
|---|
| [2971] | 829 |  | 
|---|
| [3229] | 830 | \titre{SkyMap} | 
|---|
|  | 831 | %%% | 
|---|
| [2993] | 832 | \begin{itemize} | 
|---|
|  | 833 | \item[\rond] Juin 2006: Prise en charge du rangement mmoire {\bf NESTED} dans | 
|---|
|  | 834 | les SphereHEALPix , + I/O PPF et FITS | 
|---|
|  | 835 | \item[\rond] Juin 2006:  Nettoyage et amliorations diverses dans les classes | 
|---|
|  | 836 | Vector3d, UnitVector, LongLat \ldots et les cartes sphriques, en particulier : | 
|---|
|  | 837 | \begin{enumerate} | 
|---|
|  | 838 | \item Nettoyage/uniformation mthodes  {\tt Print()}  des cartes, et | 
|---|
|  | 839 | ajout de la mthode {\tt Show()} dans PixelMap | 
|---|
|  | 840 | \item Ajout mthodes {\tt HasSymThetaSlice() , GetSymThetaSliceIndex() } | 
|---|
|  | 841 | dans les cartes sphriques (SphericalMap) | 
|---|
|  | 842 | \item Ajout methode {\tt ResolToSizeIndex() SizeIndexToResol() } | 
|---|
|  | 843 | ds SphereThetaPhi , SphereHEALPix et SphereECP | 
|---|
|  | 844 | \item Petites optimisations dans {\tt GetThetaSlice()} + methode {\tt GetThetaSliceDataPtr() } | 
|---|
|  | 845 | \end{enumerate} | 
|---|
|  | 846 | \item[\rond] Juin 2006: Introduction de la classe {\bf Angle}  - pour conversion d'angle. | 
|---|
| [2971] | 847 | \begin{verbatim} | 
|---|
| [2993] | 848 | // Example to convert 0.035 radians to arcsec | 
|---|
|  | 849 | double vr = 0.035; | 
|---|
|  | 850 | cout << "Angle rad= " << vr << " ->arcsec= " << Angle(vr).ToArcSec() << endl; | 
|---|
|  | 851 | // Example to convert 2.3 arcmin to radian - we use the conversion operator | 
|---|
|  | 852 | double vam = 2.3; | 
|---|
|  | 853 | cout << "Angle arcmin= " << vam << " ->rad= " | 
|---|
|  | 854 | << (double)Angle(vam, Angle::ArcMin) << endl; | 
|---|
|  | 855 | \end{verbatim} | 
|---|
|  | 856 | % | 
|---|
| [2971] | 857 |  | 
|---|
| [2632] | 858 |  | 
|---|
| [2993] | 859 | \item[\rond]  {\bf SphereECP} - Septembre 2004 \\ | 
|---|
| [2632] | 860 | Extrait du message du 7 Septembre 2004 | 
|---|
|  | 861 | \begin{verbatim} | 
|---|
|  | 862 | J'ai mis dans la base (module SkyMap) le code de la classe | 
|---|
|  | 863 | SphereECP<T> (pixelisation avec projection cylindrique) - carte partielle et complete, | 
|---|
|  | 864 | + gestionnaire PPersist + modifs adaptateur NomSkyMapAdaptor (PIext/ spiapp) | 
|---|
|  | 865 |  | 
|---|
|  | 866 | Programme test (avec appel a transforme en Alm) ds Test/tsphereecp.cc | 
|---|
|  | 867 | Attention, mettre le parametere de pixelisation a -1 lors de l'appel a Generate pour eviter | 
|---|
|  | 868 | le Resize de la sphereECP | 
|---|
|  | 869 | ylmserver.GenerateFromCl(map, -1,  clin, 0.); | 
|---|
|  | 870 |  | 
|---|
|  | 871 | Dans piapp, c'est visualise par defaut en projection Molleweide | 
|---|
|  | 872 | On peut ajouter dans les options d'affichage : | 
|---|
|  | 873 | ecparray : affichage direct du tableau TArray des pixels (X:Phi, Y:Theta) | 
|---|
|  | 874 | Si option ecparray, on peut preciser en plus | 
|---|
|  | 875 | - ecpscaledeg: echelle des axes en degres au lieu de pixels | 
|---|
|  | 876 | - ecpscalerad: echelle des axes en radians au lieu de pixels | 
|---|
|  | 877 | Exemple: | 
|---|
|  | 878 | Cmd> disp mapecp 'ecparray ecpscaledeg zoomx2 stdaxes' | 
|---|
|  | 879 | \end{verbatim} | 
|---|
|  | 880 |  | 
|---|
| [2993] | 881 | \item[\rond]  Bug non corrig ds classe Circle | 
|---|
| [2632] | 882 | \begin{verbatim} | 
|---|
|  | 883 | From: Laurence Perotto <perotto@cdf.in2p3.fr> | 
|---|
|  | 884 | Date: Mon Jan 5, 2004  4:59:12 PM Europe/Paris | 
|---|
|  | 885 | To: Reza Ansari <ansari@lal.in2p3.fr>, Christophe Magneville <cmv@hep.saclay.cea.fr> | 
|---|
|  | 886 | Subject: un bug dans sophya... | 
|---|
|  | 887 |  | 
|---|
|  | 888 | Bonjour et bonne annee a tous les deux... | 
|---|
|  | 889 |  | 
|---|
|  | 890 | Je viens de trouver un ptit bug dans la fonction TanOnCircle de la classe Circle: Il | 
|---|
|  | 891 | s'agit d'un melange entre les coordonnees (beta, lambda) de Benoit et les (theta, phi) | 
|---|
|  | 892 | utilises dans Sophya. Lors du passage de l'un a l'autre, une transfo sin->cos a ete | 
|---|
|  | 893 | oubliee... | 
|---|
|  | 894 | Voila... | 
|---|
|  | 895 | Bonne journee. | 
|---|
|  | 896 |  | 
|---|
|  | 897 | Laurence. | 
|---|
|  | 898 | \end{verbatim} | 
|---|
| [2993] | 899 | \end{itemize} | 
|---|
| [2632] | 900 |  | 
|---|
| [3229] | 901 | \titre{Samba } | 
|---|
| [2993] | 902 |  | 
|---|
|  | 903 | \begin{itemize} | 
|---|
|  | 904 | \item[\rond] {\bf Juin 2006:} correction bug de calcul $a_{lm} \rightarrow$ SphereHEALPix | 
|---|
|  | 905 | (zones polar cap): le problme venant du choix de taille lors du calcul de la transform | 
|---|
|  | 906 | de Fourier complex $\rightarrow$ rel (n/2 - 1 ou n/2 -2) . | 
|---|
|  | 907 | Correction dans {\tt RfourierSynthesisFromB } et utilisation de cette mthode | 
|---|
|  | 908 | pour tout type de carte. | 
|---|
|  | 909 | On gagne un peu encore en temps de calcul - sur asc (OSF1-cxx) , avec | 
|---|
|  | 910 | SphereThetaPhi(m=400), $l_{max} = 511$ \\[2mm] | 
|---|
|  | 911 | \begin{tabular}{|l|c|c|} | 
|---|
|  | 912 | \hline | 
|---|
|  | 913 | Opration & TCPU Avant & TCPU Aprs OPT \\ | 
|---|
|  | 914 | \hline | 
|---|
|  | 915 | map $\rightarrow a_{lm}$ & 10 s & 3.6 s. \\ | 
|---|
|  | 916 | $a_{lm} \rightarrow$ map & 26 & 10.5 s. \\ | 
|---|
|  | 917 | \hline | 
|---|
|  | 918 | \end{tabular}  \\[1mm] | 
|---|
|  | 919 | % | 
|---|
|  | 920 | \item[\rond] {\bf Mai 2006:}  Optimisation calcul transform en harmoniques sphriques | 
|---|
|  | 921 | {\bf SphericalTransformServer}. \\ | 
|---|
|  | 922 | Au lieu de calculer un tableau de $\lambda_{lm}$ dans LambdaLMBuilder | 
|---|
|  | 923 | et utiliser ensuite ce tableau, on calcule les sommes ncessaires au vol, | 
|---|
|  | 924 | dans des mthodes spcifiques de la classe LambdaLMBuilder qui | 
|---|
|  | 925 | sont utilises dans SphericalTransformServer (pour les transforms | 
|---|
|  | 926 | scalaire/temprature) - PAS fait pour la polarisation pour le moment. | 
|---|
|  | 927 | On peut encore gagner un facteur 2 en utilisant la symtrie | 
|---|
|  | 928 | en $\theta <> \pi-\theta$. \\ | 
|---|
|  | 929 | Extrait de cvs log : | 
|---|
|  | 930 | \begin{verbatim} | 
|---|
|  | 931 | revision 1.8 | 
|---|
|  | 932 | date: 2006/06/01 11:34:50;  author: ansari;  state: Exp;  lines: +147 -12 | 
|---|
|  | 933 | 1/ passage en sa_size_t (au lieu de int) dans Alm<T> et Bm<T> | 
|---|
|  | 934 | 2/ Ajout des methodes optimisees (statiques) pour calcul transforme Ylm | 
|---|
|  | 935 | ds LambdaLMBuilder et utilisation ds SphericalTransformServer | 
|---|
|  | 936 | Reza , 1/06/2006 | 
|---|
|  | 937 | \end{verbatim} | 
|---|
|  | 938 |  | 
|---|
| [3061] | 939 | \item[\rond] {\bf Fin 2004} : Tests et vrifications des polynomes de Legendre. | 
|---|
|  | 940 | La classe LambdaLMBuilder donne les bons r\'esultats mais calcule les Plm | 
|---|
|  | 941 | pour tous les $l,m$. | 
|---|
|  | 942 | Introduction d'une routine (C-like) ``HarmSph\_array\_teta'' qui calcule | 
|---|
|  | 943 | les Plm pour $m$ fix\'e et $l\in [0,l_{max}]$ comme ce qui est fait | 
|---|
|  | 944 | dans la GSL... (la routine GSL ne marche pas corectement). | 
|---|
| [2993] | 945 | \end{itemize} | 
|---|
|  | 946 |  | 
|---|
|  | 947 | %%%%%%%%%%% | 
|---|
| [3229] | 948 | \titre{SysTools} | 
|---|
| [2971] | 949 | {\bf Mai-Juin 2006 } classe ZThread - petites modifs/amliorations lies | 
|---|
|  | 950 |  la gestion des signaux et mthodes kill | 
|---|
|  | 951 |  | 
|---|
| [3229] | 952 | \soustitre{Classe SOPHYA::Commander (module SysTools) } | 
|---|
| [2971] | 953 | Mai-Juin 2006: | 
|---|
|  | 954 | Debug (?) de gestion/controle des threads dans la classe Commander - | 
|---|
|  | 955 | Extrait de cvs log : | 
|---|
|  | 956 | \begin{verbatim} | 
|---|
|  | 957 | date: 2006/05/29 17:27:35;  author: ansari;  state: Exp;  lines: +62 -11 | 
|---|
|  | 958 | Ajout gestionnaire signal ds ZThread et correction/adaptation gestion des thread | 
|---|
|  | 959 | s (killthr) dans Commander - Reza 29 mai 2006 | 
|---|
|  | 960 | ---------------------------- | 
|---|
|  | 961 | revision 1.7 | 
|---|
|  | 962 | date: 2006/04/26 15:22:09;  author: ansari;  state: Exp;  lines: +13 -0 | 
|---|
|  | 963 | ajout methode ZThread::kill() pour envoi de signal a un thread + remplacement Ca | 
|---|
|  | 964 | ncelThread par StopThread (par kill/SIGUSR1) dans Commander (commander.cc) + ame | 
|---|
|  | 965 | ---------------------------- | 
|---|
|  | 966 | revision 1.22 | 
|---|
|  | 967 | date: 2006/05/31 12:30:13;  author: ansari;  state: Exp;  lines: +20 -11 | 
|---|
|  | 968 | correction gestion & pour ThrExec ds Commander - Reza 31/05/2006 | 
|---|
|  | 969 | ---------------------------- | 
|---|
|  | 970 | revision 1.21 | 
|---|
|  | 971 | date: 2006/05/29 17:27:35;  author: ansari;  state: Exp;  lines: +37 -16 | 
|---|
|  | 972 | Ajout gestionnaire signal ds ZThread et correction/adaptation gestion des thread | 
|---|
|  | 973 | s (killthr) dans Commander - Reza 29 mai 2006 | 
|---|
|  | 974 | ---------------------------- | 
|---|
|  | 975 | revision 1.20 | 
|---|
|  | 976 | date: 2006/04/26 15:22:08;  author: ansari;  state: Exp;  lines: +55 -15 | 
|---|
|  | 977 | ajout methode ZThread::kill() pour envoi de signal a un thread + remplacement Ca | 
|---|
|  | 978 | ncelThread par StopThread (par kill/SIGUSR1) dans Commander (commander.cc) + ame | 
|---|
|  | 979 | lioration documentation , Reza 26/4/2006 | 
|---|
| [2632] | 980 |  | 
|---|
| [2971] | 981 | \end{verbatim} | 
|---|
|  | 982 |  | 
|---|
| [2717] | 983 | Mars-Avril 2004 : | 
|---|
| [2632] | 984 | Classe d'interprteur de ligne de commande inspire de C-Shell, | 
|---|
|  | 985 | destine a etre incluee dans des applications C/C++. \\ | 
|---|
| [2717] | 986 | ( Programme test Test/tcmd.cc )  \\ | 
|---|
|  | 987 | Avril 2005 : Introduction de la possibilite d'execution de commandes | 
|---|
|  | 988 | en multithreads \\ | 
|---|
|  | 989 | Avril 2005 : Controle strict sur les noms de variables, limites | 
|---|
|  | 990 | aux caracteres alphanumeriques + underscore - Adaptation | 
|---|
|  | 991 | de l'algorithme de substitution en consequence. | 
|---|
| [2632] | 992 |  | 
|---|
|  | 993 | {\bf Mini guide de l'interpreteur - Message du 19 Mars 2004 }   \ | 
|---|
|  | 994 |  | 
|---|
|  | 995 | \begin{itemize} | 
|---|
|  | 996 |  | 
|---|
|  | 997 | \item[\rond] {\bf Gestion des variables } \\ | 
|---|
|  | 998 | - Les variables sont non typees toutes traitees comme des chaines | 
|---|
|  | 999 | de caracteres. | 
|---|
|  | 1000 | - Acces aux variables d'environnement - | 
|---|
|  | 1001 | - Un niveau variable d'environnement application est aussi prevu | 
|---|
|  | 1002 | - Toutes les variables de l'interpreteur  sont traitees comme des vecteurs. | 
|---|
|  | 1003 | extensibles automatiquement (difference avec le C-Shell) | 
|---|
|  | 1004 |  | 
|---|
|  | 1005 | \item[\rond] {\bf Creation / initialisation de variables }  \\ | 
|---|
|  | 1006 | \begin{verbatim} | 
|---|
|  | 1007 | Cmd> set sv StringValue | 
|---|
|  | 1008 | # Suppression d'une variable : unset ou clearvar | 
|---|
|  | 1009 | Cmd> unset sv | 
|---|
|  | 1010 |  | 
|---|
|  | 1011 | # Initialisation de type vecteur - Espace avant/apres ')' et avant ')' obligatoire | 
|---|
|  | 1012 | Cmd> set vecv ( mot1 mot2 mot3 mot4 mot5 ) | 
|---|
|  | 1013 | #Calcul numerique : expression de type C  - Espace avant/apres '=' obligatoire | 
|---|
|  | 1014 | Cmd> a = 2+3*sqrt(4) | 
|---|
|  | 1015 | # Le signe egal peut etre utilise pour attribuer une chaine de caracteres | 
|---|
|  | 1016 | Cmd> a = 'Bonjour Madame' | 
|---|
|  | 1017 | # Un element de tableau peut etre specifie avant le signe egal | 
|---|
|  | 1018 | Cmd> vecv[2] = 'coucou' | 
|---|
|  | 1019 | # Ou bien | 
|---|
|  | 1020 | Cmd> i = 3 | 
|---|
|  | 1021 | Cmd> vecv[i] = 'Ooohhh' | 
|---|
|  | 1022 | \end{verbatim} | 
|---|
|  | 1023 |  | 
|---|
|  | 1024 | A droite du signe egal (membre de droite), les variables doivent etre | 
|---|
|  | 1025 | adressees a l'aide du signe \$. | 
|---|
|  | 1026 |  | 
|---|
|  | 1027 | Une chaine peut etre cassee en mots a l'aide de la commande var2words | 
|---|
|  | 1028 | \begin{verbatim} | 
|---|
|  | 1029 | Cmd> var2words varname wordvarname [separateur] | 
|---|
|  | 1030 | \end{verbatim} | 
|---|
|  | 1031 |  | 
|---|
|  | 1032 | \item[\rond] {\bf Acces aux variables } \\ | 
|---|
|  | 1033 | L'acces aux variables s'effectue par le signe \$  {\tt \$varname} . | 
|---|
|  | 1034 | Les {\tt \$xxx} sont remplaces par le contenu de la variable xxx. | 
|---|
|  | 1035 | Cette substitution ne s'effectue pas entre simple quotes {\tt ' ... \$xxx '}, | 
|---|
|  | 1036 | mais se fait entre double quotes {\tt " ... \$xxx ... "} . Les formes | 
|---|
|  | 1037 | {\tt \${vname} } ou {\tt \$(vname)} peuvent etre utilisees. | 
|---|
|  | 1038 |  | 
|---|
|  | 1039 | \begin{verbatim} | 
|---|
|  | 1040 | Cmd> x = 'Hello' | 
|---|
|  | 1041 | Cmd> echo $x | 
|---|
|  | 1042 | # Taille d'une variable de type vecteur $#vname | 
|---|
|  | 1043 | Cmd> set vx ( 111 2222 3333 444444 ) | 
|---|
|  | 1044 | Cmd> echo $#vx | 
|---|
|  | 1045 | # Acces aux elements de tableau | 
|---|
|  | 1046 | Cmd> echo $vx[0] $vx[1] | 
|---|
|  | 1047 | #  ou bien indexe par une variable | 
|---|
|  | 1048 | Cmd> i = 2 | 
|---|
|  | 1049 | Cmd> echo $vx[i] | 
|---|
|  | 1050 | # Une syntaxe particuliere: $[vname] retourne le contenu de | 
|---|
|  | 1051 | # la variable dont le nom est ds vname | 
|---|
|  | 1052 | Cmd> zzz = 'Commander' | 
|---|
|  | 1053 | Cmd> xxx = 'zzz' | 
|---|
|  | 1054 | Cmd> echo '$[xxx]= '  $[xxx] | 
|---|
|  | 1055 | $[xxx]= Commander | 
|---|
|  | 1056 | \end{verbatim} | 
|---|
|  | 1057 |  | 
|---|
|  | 1058 | Variables d'environnement: L'acces aux variables d'environnement | 
|---|
|  | 1059 | se fait simplement par{\tt \$varenvname}. Attention, les variables locales | 
|---|
|  | 1060 | de l'interpreteur sont prioritaires. | 
|---|
|  | 1061 |  | 
|---|
|  | 1062 | \item[\rond] {\bf Variables particulieres: } \\ | 
|---|
|  | 1063 | {\tt \$retval} ou {\tt \$retstr}  :  chaine specifee sur la derniere commande return | 
|---|
|  | 1064 | {\tt \$status} : code de retour de la derniere commande executee. | 
|---|
|  | 1065 | (variable existe et est rempli - mais il faudra se donner une regle | 
|---|
|  | 1066 | plus claire ...) | 
|---|
|  | 1067 | Arguments des fichiers .pic appeles par la commande exec | 
|---|
|  | 1068 | {\tt \$\# } : nombre d'arguments, a part \$0 | 
|---|
|  | 1069 | {\tt \$0} nom du fichier ou du script | 
|---|
|  | 1070 | {\tt \$1 \$2 \$3} .... les arguments  (pour les scripts et les .pic (exec)) | 
|---|
|  | 1071 |  | 
|---|
|  | 1072 |  | 
|---|
|  | 1073 | \item[\rond] {\bf Structures de controle  } \\ | 
|---|
|  | 1074 | \begin{verbatim} | 
|---|
|  | 1075 | foreach f ( w1 w2 w3 ... ) | 
|---|
|  | 1076 | ... | 
|---|
|  | 1077 | echo $f | 
|---|
|  | 1078 | end | 
|---|
|  | 1079 | \end{verbatim} | 
|---|
|  | 1080 |  | 
|---|
|  | 1081 | Espace avant/apres '(' et avant ')' obligatoire. | 
|---|
|  | 1082 |  | 
|---|
|  | 1083 | \begin{verbatim} | 
|---|
|  | 1084 | foreach v vecname | 
|---|
|  | 1085 | ... | 
|---|
|  | 1086 | echo $v | 
|---|
|  | 1087 | end | 
|---|
|  | 1088 | \end{verbatim} | 
|---|
|  | 1089 |  | 
|---|
|  | 1090 | Boucle de type integer: | 
|---|
|  | 1091 | \begin{verbatim} | 
|---|
|  | 1092 | for i  startInt:endInt[:stepInt] | 
|---|
|  | 1093 | .... | 
|---|
|  | 1094 | echo $i | 
|---|
|  | 1095 | end | 
|---|
|  | 1096 | \end{verbatim} | 
|---|
|  | 1097 |  | 
|---|
|  | 1098 | Boucle de type float | 
|---|
|  | 1099 | \begin{verbatim} | 
|---|
|  | 1100 | for f  startFloat:endFloat[:stepFloat] | 
|---|
|  | 1101 | .... | 
|---|
|  | 1102 | echo $f | 
|---|
|  | 1103 | end | 
|---|
|  | 1104 | \end{verbatim} | 
|---|
|  | 1105 |  | 
|---|
|  | 1106 | Boucle sur les lignes d'un fichier: | 
|---|
|  | 1107 | \begin{verbatim} | 
|---|
|  | 1108 | forinfile line FileName | 
|---|
|  | 1109 | ... | 
|---|
|  | 1110 | echo $line | 
|---|
|  | 1111 | end | 
|---|
|  | 1112 | \end{verbatim} | 
|---|
|  | 1113 |  | 
|---|
|  | 1114 | Instruction {\tt break} pour casser une boucle | 
|---|
|  | 1115 |  | 
|---|
|  | 1116 | \item[\rond] {\bf Les tests  } | 
|---|
|  | 1117 | \begin{verbatim} | 
|---|
|  | 1118 | if ( test ) then | 
|---|
|  | 1119 | endif | 
|---|
|  | 1120 |  | 
|---|
|  | 1121 | if ( test ) then | 
|---|
|  | 1122 | .... | 
|---|
|  | 1123 | else | 
|---|
|  | 1124 | .... | 
|---|
|  | 1125 | endif | 
|---|
|  | 1126 | \end{verbatim} | 
|---|
|  | 1127 |  | 
|---|
|  | 1128 | Espace avant/apres '(' et avant ')' obligatoire. | 
|---|
|  | 1129 |  | 
|---|
|  | 1130 | test de type {\tt a == b} OU {\tt a != b} OU {\tt a < b}  OU {\tt a > b} | 
|---|
|  | 1131 | OU {\tt a <= b} OU {\tt a >= b} | 
|---|
|  | 1132 | les espaces avant l'operateur de comparaison sont obligatoires. | 
|---|
|  | 1133 | {\tt ==} et {\tt !=}  effectue une comparaison de chaines de caracteres. | 
|---|
|  | 1134 | {\tt < , > , <= , >=}une comparaison apres conversion en valeur flottante. | 
|---|
|  | 1135 |  | 
|---|
|  | 1136 | \item[\rond] {\bf Definition de script } \\ | 
|---|
|  | 1137 | \begin{verbatim} | 
|---|
|  | 1138 | defscript scriptname  [description ] | 
|---|
|  | 1139 | .... | 
|---|
|  | 1140 | endscript | 
|---|
|  | 1141 | \end{verbatim} | 
|---|
|  | 1142 |  | 
|---|
|  | 1143 | L'appel a un script se fait simplement a l'aide | 
|---|
|  | 1144 | du nom de script (contrairement aux fichiers | 
|---|
|  | 1145 | de commande qui sont executes a l'aide de la | 
|---|
|  | 1146 | commande {\tt exec} ) | 
|---|
|  | 1147 | \begin{verbatim} | 
|---|
|  | 1148 | Cmd> scriptname arg1 arg2 arg3 .... | 
|---|
|  | 1149 | \end{verbatim} | 
|---|
|  | 1150 |  | 
|---|
|  | 1151 | L'instruction {\tt return} provoque l'arret (et le retour) d'execution d'un | 
|---|
|  | 1152 | script ou d'un fichier de commandes. | 
|---|
|  | 1153 | Commandes {\bf listscript }et {\bf clearscript scriptname} | 
|---|
|  | 1154 | permettet d'avoir la liste des scripts | 
|---|
|  | 1155 | definis / supprimer la definition d'un script | 
|---|
|  | 1156 |  | 
|---|
|  | 1157 | \item[\rond] {\bf Autres commandes} | 
|---|
|  | 1158 | \begin{itemize} | 
|---|
|  | 1159 | \item Instruction {\bf echo } pour ecrire sur cout/stdout | 
|---|
|  | 1160 | \item Instruction {\bf echo2file} pour ecrire a la fin d'un fichier | 
|---|
|  | 1161 | \item Instruction {\bf sleep nsec} (attente de nsec seconds ) | 
|---|
|  | 1162 | \item Instructions {\bf timingon , timingoff , traceon , traceoff } \\ | 
|---|
|  | 1163 | % | 
|---|
|  | 1164 | \item Commande {\bf exec commandfilename [arg1 arg2 ... ] } | 
|---|
|  | 1165 | \item Commandes {\bf help et help keyword/commandname } | 
|---|
|  | 1166 | \item Commandes {\bf listvars , listcommands } | 
|---|
|  | 1167 | \item  Defintion et liste d'alias : {\bf alias aliasname 'string ' } et {\bf  listalias} | 
|---|
|  | 1168 | \end{itemize} | 
|---|
| [2717] | 1169 |  | 
|---|
|  | 1170 | \item[\rond] {\bf Threads d'execution de commandes (Avril 2005)} \\ | 
|---|
|  | 1171 | Possibilite de lancer des commandes (autre que les commandes | 
|---|
|  | 1172 | de l'interpreteur lui-meme) en thread separe (il suffit de mettre un \& | 
|---|
|  | 1173 | a la fin de la commande) \\ | 
|---|
|  | 1174 | Commandes des gestion des threads : \\ | 
|---|
|  | 1175 | {\bf thrlist  ;  cleanthrlist  ;  cancelthr ThId ;   waitthr  } \\ | 
|---|
|  | 1176 | Attention, la possibilite de lancer des commandes en threads separes ne fonctionne que | 
|---|
|  | 1177 | pour des commandes "thread-safe". | 
|---|
|  | 1178 | La plupart de nos commandes de piapp sont  \\ | 
|---|
|  | 1179 | - soit trop rapide,  \\ | 
|---|
|  | 1180 | - soit non "thread-safe"   \\ | 
|---|
|  | 1181 |  | 
|---|
|  | 1182 | \item[\rond] controle d'execution : \\ | 
|---|
|  | 1183 | Possibilite d'arreter l'execution de l'interpreteur (dans une boucle | 
|---|
|  | 1184 | ou dans dans un fichier .pic ... | 
|---|
|  | 1185 | Utiliser la commande {\bf stop} ou {\tt <Cntrl C>} dans PIConsole | 
|---|
|  | 1186 |  | 
|---|
| [2632] | 1187 | \end{itemize} | 
|---|
|  | 1188 |  | 
|---|
| [3229] | 1189 | \soustitre{Classes CExpressionEvaluator et RPNExpressionEvaluator } | 
|---|
| [2632] | 1190 | \begin{itemize} | 
|---|
|  | 1191 | \item[\rond]  Ajout des classes RPNExpressionEvaluator et CExpressionEvaluator | 
|---|
|  | 1192 | d'valuation d'expressions numriques en notation polonaise inverse | 
|---|
|  | 1193 | et avec la syntaxe C . Utilise dans la classe Commander. | 
|---|
|  | 1194 | \item[\rond]   Programme test Test/tcmd.cc | 
|---|
|  | 1195 | \item[\rond]  extrait de {\tt cvs log cexpre.cc } | 
|---|
|  | 1196 | {\small \begin{verbatim} | 
|---|
|  | 1197 | ---------------------------- | 
|---|
|  | 1198 | revision 1.3 | 
|---|
|  | 1199 | date: 2004/03/18 18:15:19;  author: ansari;  state: Exp;  lines: +10 -6 | 
|---|
|  | 1200 | Suite (presque finie) des modifications de l'interpreteur - gestion des variables en particulier - Reste au moins un bug ds CExpressionEvaluator - Reza 18/03/2004 | 
|---|
|  | 1201 | ---------------------------- | 
|---|
|  | 1202 | revision 1.2 | 
|---|
|  | 1203 | date: 2004/03/16 08:47:48;  author: ansari;  state: Exp;  lines: +5 -6 | 
|---|
|  | 1204 | suppression variables inutilisees ds cexpr.cc - Reza 16 Mars 2004 | 
|---|
|  | 1205 | ---------------------------- | 
|---|
|  | 1206 | revision 1.1 | 
|---|
|  | 1207 | date: 2004/03/15 22:19:43;  author: ansari;  state: Exp; | 
|---|
|  | 1208 | Ajout fichiers des classes RPNExpressionEvaluator et CExpressionEvaluator (expression arithmetiques) et MAJ du fichier Makefile et objlist.list - Reza 15 Mars 2003 | 
|---|
|  | 1209 | \end{verbatim} } | 
|---|
|  | 1210 |  | 
|---|
|  | 1211 | \item[\rond] Extrait du message du 3 Mars 2004 | 
|---|
|  | 1212 | \begin{verbatim} | 
|---|
|  | 1213 | Le code est base sur une hierarchie de classe d'expression : | 
|---|
|  | 1214 | Expr --------  NumberExp | 
|---|
|  | 1215 | --------- BinExp ------ AddExp | 
|---|
|  | 1216 | ------ MulExp | 
|---|
|  | 1217 | ------ SubExp | 
|---|
|  | 1218 | ------ DivExp | 
|---|
|  | 1219 | ---------  FuncExp | 
|---|
|  | 1220 | ---------  CExpressionEvaluator | 
|---|
|  | 1221 |  | 
|---|
|  | 1222 | NumberExp  : expression elementaire de nombre, sait actuellement traduire Pi et E | 
|---|
|  | 1223 | tres facile d'ajouter d'autres constantes | 
|---|
|  | 1224 | BinExp: Classe d'operations binaires (deux operandes) a+b a-b a*b a/b | 
|---|
|  | 1225 | avec gestion de niveau de priorite des operateurs | 
|---|
|  | 1226 | On peut facilement ajouter d'autres operateurs binaires (par exemple | 
|---|
|  | 1227 | puissance ^ a^b ) - et les priorites relatives seront gerees en principe. | 
|---|
|  | 1228 | FuncExp: classe d'expression fonctionnelle, avec n arguments f(x1,x2,...x3) | 
|---|
|  | 1229 | actuellemenent, n=0 a n=3 arguments et quelques fonctions | 
|---|
|  | 1230 | usuelles sont decodes ds cette classe (sin,cos,tan, asin, acos, atan, exp, log, | 
|---|
|  | 1231 | atan2, pow ) - voir ds le code | 
|---|
|  | 1232 |  | 
|---|
|  | 1233 | CExpressionEvaluator : C'est la classe de haut niveau a utiliser - | 
|---|
|  | 1234 | la fonction de decodage de la chaine ASCII (qui utilise | 
|---|
|  | 1235 | les fonctionalites des differentes classes est la dedans | 
|---|
|  | 1236 | et ce n'est pas tres long. | 
|---|
|  | 1237 | (+ une classe d'exception specifique). | 
|---|
|  | 1238 | \end{verbatim} | 
|---|
|  | 1239 |  | 
|---|
|  | 1240 | \end{itemize} | 
|---|
|  | 1241 |  | 
|---|
| [3176] | 1242 |  | 
|---|
| [3229] | 1243 | %%%%%%%% | 
|---|
|  | 1244 | \titre{FitsIOServer} | 
|---|
|  | 1245 | %%% | 
|---|
| [3176] | 1246 | \begin{itemize} | 
|---|
|  | 1247 | \item[\rond] Aout 2006 : Ecriture/Lecture des classes Histo,HProf,HistoErr,Histo2D dans fichier FITS. | 
|---|
| [3061] | 1248 | Les Histo2D et leurs projections 1D associ\'ees sont lus et \'ecrits | 
|---|
| [3176] | 1249 | sur plusieurs HDU cons\'ecutifs. | 
|---|
|  | 1250 | \item[\rond]  Juin 2006 : Ajout verification/correction noms de colonne lors de lecture FITS / DataTable, | 
|---|
| [2971] | 1251 | et remplacement throw par un warning lors de lecture fits-healpix avec $nbcols > 1$ \\[1mm] | 
|---|
| [3176] | 1252 | \item[\rond]  { \large Sep 2005-Jan 2006 : Refondation totale du module } | 
|---|
| [2829] | 1253 | \begin{itemize} | 
|---|
| [2905] | 1254 | \item[\rond] Amelioration du programme PrgUtil/scanppf - | 
|---|
|  | 1255 | (scanfits -V1 -lh -rd -header filename) | 
|---|
|  | 1256 | \item[\rond] La classe FitsFile (et donc FitsInFile FitsOutFile) heritent de FitsInOutFile. | 
|---|
|  | 1257 | (Jan 2006) | 
|---|
|  | 1258 | \item[\rond] Fonctionalites classe {\bf FitsManager } etendues - en particulier ScanFile() | 
|---|
|  | 1259 | \item[\rond] Les FitsIOHandler (ancien) heritent de FitsHandlerInterface - | 
|---|
|  | 1260 | Tous les handlers sont pris en charge et enregistre par FitsManager (Jan 2006) | 
|---|
|  | 1261 | \item[\rond] Ajout classe d'initialisation du module {\bf FitsIOServerInitiator }, | 
|---|
|  | 1262 | fichiers fiosinit.h .cc (Dec 2005) | 
|---|
|  | 1263 | \item[\rond]  Classe { \bf SwFitsDataTable } (DataTable avec swap sur FITS) ajoute | 
|---|
|  | 1264 | + classe FitsHandler<BaseDataTable> modifie pour prise | 
|---|
|  | 1265 | en charge de SwFitsDataTable (Dec 2005 - Jan 2006) | 
|---|
|  | 1266 | \item[\rond] Classes {\bf FITSDataSwapper$<$T$>$} modifies (Dec 2005) | 
|---|
| [2854] | 1267 | \item[\rond]  Prise en charge de types TSTRING et TCOMPLEX et TDBLCOMPLEX | 
|---|
|  | 1268 | lors de lecture/ecriture de colonnes FITS. | 
|---|
|  | 1269 | \item[\rond]  Prise en charge de l'ensemble des types de colonnes pour le handler de Fits | 
|---|
|  | 1270 | de DataTable | 
|---|
| [2829] | 1271 | \item[\rond]  Classe {\bf  FitsInOutFile } comme wrapper des fonctions de la librairie cfitsio + | 
|---|
|  | 1272 | classe d'exception spcifique {\bf FitsIOException} , et la classe des types FITS {\bf FitsTypes}. | 
|---|
|  | 1273 | \item[\rond]  Classe template {\bf FitsBlockRW$<$T$>$} pour lecture/criture (tableaux de donnes) | 
|---|
|  | 1274 | sur IMGHDU et Tables. | 
|---|
|  | 1275 | \item[\rond] Classes gestionnaires I/O Fits pour les objets {\bf FitsHandler$<$T$>$} et {\bf FitsManager} | 
|---|
|  | 1276 | \item[\rond] Classes gestionnaire pour les tableaux : {\bf FitsArrayHandler$<$T$>$} | 
|---|
|  | 1277 | \item[\rond] Classes gestionnaire pour les DataTable {\bf FitsHandler$<$BaseDataTable$>$} | 
|---|
|  | 1278 | \item[\rond] Mai 2005 : Classe {\bf FITSDataSwapper$<$T$>$} pour la gestion des | 
|---|
|  | 1279 | SwSegDataBlock sur fichiers FITS | 
|---|
|  | 1280 | \end{itemize} | 
|---|
| [3176] | 1281 | \end{itemize} | 
|---|
| [2829] | 1282 |  | 
|---|
| [3229] | 1283 | \titre{LinAlg} | 
|---|
| [2717] | 1284 | Extension des fonctionalits de la classe {\tt LapackServer<T>} : | 
|---|
|  | 1285 | (Juillet 2004 / cmv , Fvrier 2005 / Reza) | 
|---|
|  | 1286 | \begin{itemize} | 
|---|
| [2911] | 1287 | \item[\rond] Ajout lancement d'exception sur renvoi de code d'erreur par lapack | 
|---|
|  | 1288 | (desactivable par flag au niveau du constructeur de la classe serveur) | 
|---|
| [2717] | 1289 | \item[\rond] Introduction de l'interface Lapack d'inversion des matrices symetriques (21/7/2004) | 
|---|
|  | 1290 | \item[\rond]  Introduction de l'interface Lapack de recherche de valeurs et vecteurs propres | 
|---|
|  | 1291 | (cas general, symetrique et hermitique) (21/7/2004) | 
|---|
|  | 1292 | \item[\rond] Introduction d'un fonction d'interface pour le calculateur de workspace | 
|---|
|  | 1293 | (ilaenv\_) (21/7/2004) | 
|---|
|  | 1294 | \item[\rond] Ajout prog test Tests/tsttminv.cc + Commentaires sur les diverses methodes et sur les matrices FORTRAN (21/7/2004) | 
|---|
|  | 1295 | \item[\rond] Ajout SVD decomp by Divide and Conquer SVD\_DC (23/7/2004) | 
|---|
|  | 1296 | \item[\rond] Ajout  Least Square with SVD DC | 
|---|
|  | 1297 | \item[\rond] Ajout methode calcul de la matrice inverse par Lapack en utilisant la | 
|---|
|  | 1298 | resolution de systemes (07/02/2005) | 
|---|
|  | 1299 | \end{itemize} | 
|---|
|  | 1300 |  | 
|---|
| [3229] | 1301 | \titre{IFFTW} | 
|---|
| [3061] | 1302 | \noindent | 
|---|
|  | 1303 | - Juillet 2007 : Passage a FFTW 3 \\ | 
|---|
|  | 1304 | - Nov 2005 : Correction du bug dans le cas de FFT-1D Backward(complex -> reel) | 
|---|
| [2854] | 1305 | in(1).imag() pouvait etre ecrase. | 
|---|
|  | 1306 |  | 
|---|
| [3229] | 1307 | \titre{PI,PIext,piapp} | 
|---|
|  | 1308 | \soustitre{PI: Classes modifiees - ameliorees} | 
|---|
| [2717] | 1309 | \begin{itemize} | 
|---|
|  | 1310 | \item[\rond] {\bf  PIImageNavigator } \\ | 
|---|
| [2911] | 1311 | Ajout de la classe {\tt PIImageNavigator } permettant de visualiser une image | 
|---|
| [2717] | 1312 | avec ses propres widget zoom / global view et colormap. (Fevrier 2005) \\ | 
|---|
|  | 1313 | Commande {\tt imagnav} ajoute ds piapp/baseexcute.cc . \\ | 
|---|
|  | 1314 | \item[\rond] Avril 2005 - Amelioration de la classe {\bf PIConsole} \\ | 
|---|
|  | 1315 | 1/Envoi Message PIMSG\_Cancel lors de {\tt <Cntl C>} \\ | 
|---|
|  | 1316 | 2/ Correction positionnement curseur lors de rappel de commande, | 
|---|
|  | 1317 | Si possible en fin de commande - mais toujours avec le | 
|---|
|  | 1318 | debut de commande visible.  \\ | 
|---|
|  | 1319 | 3/ Correction (probable) du petit bug sur les derniers caracteres lors de copier/coller | 
|---|
|  | 1320 | ds PIConsole | 
|---|
| [2905] | 1321 | \item[\rond] Codage Options graphiques en text (string) pour PIGraphicAtt  (Nov-Dec 2005) | 
|---|
|  | 1322 | \item[\rond] Corrections diverses trace d'axes  etc ... (Dec 2005) | 
|---|
| [2971] | 1323 | \item[\rond] PIext rendu indpendant de FITS (Avril 2006) - commandes spcifiques dans | 
|---|
|  | 1324 | ProgPI/fitsbtadapter.cc | 
|---|
| [3050] | 1325 | \item[\rond] BUG A corriger, DrawOpaqueString ds PIGraphPS (sortie postscript) | 
|---|
| [2717] | 1326 | \end{itemize} | 
|---|
| [3229] | 1327 | %%%% | 
|---|
|  | 1328 | \soustitre{ Codage texte des options graphiques (11 Mars 2004)} | 
|---|
| [2632] | 1329 | \begin{verbatim} | 
|---|
|  | 1330 | //   Methode retournant un vecteur de string a partir des options | 
|---|
|  | 1331 | virtual int        PIDrawer::OptionToString(vector<string> & opt) const | 
|---|
|  | 1332 | qui vient completer les deux methodes | 
|---|
|  | 1333 | virtual int        PIDrawer:: DecodeOptionString(vector<string> & opt, bool ...) et | 
|---|
|  | 1334 | virtual void       PIDrawer:: GetOptionsHelpInfo(string& info); | 
|---|
|  | 1335 | Ces methodes s'occupent de decoder les options graphiques (et l'aide | 
|---|
|  | 1336 | associe). La methode ajoutee permet de faire l'operation inverse, fabriquer | 
|---|
|  | 1337 | une serie de chaine de caracteres a partir des options graphiques. | 
|---|
|  | 1338 | Il y a aussi la methode | 
|---|
|  | 1339 | virtual int            PIWdgGen::OptionToString(vector<string> & opt) const | 
|---|
|  | 1340 | que j'ai ajoute (rien a faire pour le moment) - ainsi que | 
|---|
|  | 1341 | int PIGraphicAtt::AttToStrings(vector<string> & att) const. | 
|---|
|  | 1342 |  | 
|---|
|  | 1343 | Peux-tu remplir la methode PIGraphicAtt::AttToStrings(vector<string> & att) const. | 
|---|
|  | 1344 | L'implementation par defaut de PIDrawer::OptionToString(vector<string> & opt) const | 
|---|
|  | 1345 | appelle PIGraphicAtt::AttToStrings() -  a laisser donc tel quel. | 
|---|
|  | 1346 |  | 
|---|
|  | 1347 | par contre, pour les autres drawer (PIYfXDrawer, PIFuncDrawer, PIElDrawer, | 
|---|
|  | 1348 | PISurfaceDrawer, PIHisto, PIHisto2D, PINTuple ...) - lorsque | 
|---|
|  | 1349 | DecodeOptionString(vector<string> & opt, bool ...) est modifie, | 
|---|
|  | 1350 | rajouter la methode OptionToString(vector<string> & opt) et verifier le help. | 
|---|
|  | 1351 | Attention, il ne faut pas mettre l'argument opt a zero, mais ajouter des chaines | 
|---|
|  | 1352 | derriere (push_back()) afin de pouvoir cumuler les options de base  + options | 
|---|
|  | 1353 | specifiques. | 
|---|
|  | 1354 |  | 
|---|
|  | 1355 | Comment tester ? | 
|---|
|  | 1356 | Pour tester, tu peux utiliser  la fenetre des options texte ou j'ai ajoute le bouton | 
|---|
|  | 1357 | [GetOption] . Tu peux acceder a cette fenetre a partir de la fenetre des options | 
|---|
|  | 1358 | graphiques <Alt>O , ou directement sur un objet de gestionnaire 2D - par | 
|---|
|  | 1359 | <Alt>T - <Shift>Button-1 permet de selectionner le drawer actif | 
|---|
|  | 1360 | \end{verbatim} | 
|---|
|  | 1361 |  | 
|---|
| [3229] | 1362 | \soustitre{ Trace des axes (11 Mars 2004)} | 
|---|
| [2632] | 1363 | Ajouter la possibilite de specifier l'origine (le point de croisement des axes) | 
|---|
| [2911] | 1364 | lorsque les axes ne sont pas de type 'box' - classes PIAxes et PIElDrawer.  FAIT | 
|---|
| [2632] | 1365 |  | 
|---|
| [3229] | 1366 | \soustitre{ Selection graphique (souris) du drawer actif (11 Mars 2004)} | 
|---|
| [2632] | 1367 | \begin{verbatim} | 
|---|
|  | 1368 | J'ai ajoute la methode PIDrawer::GetDistanceToPoint(double x, double y) | 
|---|
|  | 1369 | // Renvoie une distance au point x,y | 
|---|
|  | 1370 | // 0: au(x) point(s) le(s) plus proche(s) ... 1  au bord xmin/xmax , ymin/ymax | 
|---|
|  | 1371 | // La methode par defaut calcule la distance normalisee au point ((xmin+xmax)/2, | 
|---|
|  | 1372 | (ymin+ymax)/2) | 
|---|
|  | 1373 | virtual double     PIDrawer::GetDistanceToPoint(double x, double y); | 
|---|
|  | 1374 |  | 
|---|
|  | 1375 | ainsi que ce qu'il faut ds PIBaseWdgGen et ds PIDrawer pour exploiter cette | 
|---|
|  | 1376 | methode + code permettant le test ds PIScDrawWdg. | 
|---|
|  | 1377 | (virtual  void      PIDrawer::WdgCoord2DrwCoord(int x, int y, double& xu ... | 
|---|
|  | 1378 | virtual int PIBaseWdgGen:;FindNearestDrawerId(int x, int y) ...) | 
|---|
|  | 1379 | Tu as a t'aoccuper de la methode  PIDrawer::GetDistanceToPoint(double x, double y) | 
|---|
|  | 1380 | qui doit etre redefinie si possible pour chaque drawer, afin de fournir une | 
|---|
|  | 1381 | distance raisonnable au point (x,y) en argument. | 
|---|
|  | 1382 | J'ai juste mis une implementation par defaut (ds PIDrawer) et une implementation | 
|---|
|  | 1383 | partielle pour PIElDrawer (qui trace les axes en particulier) - qu'il faut | 
|---|
|  | 1384 | completer. | 
|---|
|  | 1385 |  | 
|---|
|  | 1386 | Comment tester ? | 
|---|
|  | 1387 | J'ai mis ce qu'il faut ds le gestionnaire 2D (PIScDrawWdg) - | 
|---|
|  | 1388 | <Shift>Button-1 choisit le drawer le plus proche (base sur la | 
|---|
|  | 1389 | valeur de retour de  PIDrawer::GetDistanceToPoint(double x, double y) | 
|---|
|  | 1390 | comme drawer actif. Ce drawer est passe en 'highlight' pendant que | 
|---|
|  | 1391 | le bouton est appuye. | 
|---|
|  | 1392 | \end{verbatim} | 
|---|
|  | 1393 |  | 
|---|
| [3229] | 1394 | \soustitre{ Manipulation interactive des drawers (3 Juin 2004) } | 
|---|
| [2632] | 1395 | La manipulation interactive des drawers ( l'aide d'un menu) a | 
|---|
|  | 1396 | t finalise pour les PIImage PIScDrawWdg PI3DWdg . | 
|---|
|  | 1397 |  | 
|---|
|  | 1398 | \begin{verbatim} | 
|---|
|  | 1399 | o <Alt>D affiche le menu avec les differentes option | 
|---|
|  | 1400 | o Move/Resize: Affichage du rectangle + rectangle milieu | 
|---|
|  | 1401 | (deplacement) + coin bas-droite (deplacement) - | 
|---|
|  | 1402 | clicker ailleurs pour finir | 
|---|
|  | 1403 | o Mouse Select : Le mouse select des drawers est gere | 
|---|
|  | 1404 | maintenant par un PIEventHandler (comme pour Move/ReSize) | 
|---|
|  | 1405 | Drawer actif affiche par le rectangle muni d'un petit coin | 
|---|
|  | 1406 | (petit carre + rond dedans, en bas a droite). | 
|---|
|  | 1407 | Click souris change eventuellement le drawer actif. | 
|---|
|  | 1408 | On termine en clickant ds le petit [carre+rond] | 
|---|
|  | 1409 | \end{verbatim} | 
|---|
|  | 1410 |  | 
|---|
| [3229] | 1411 | \soustitre{ Traceur de bar-graph (classe PIBarGraph) (3 Juin 2004) } | 
|---|
| [2632] | 1412 | Ajout du traceur de bar-graph (classe {\bf PIBarGraph}) ds module PI/ | 
|---|
|  | 1413 | et commande {\tt bargraph}  ds PIext/basexecut.cc . | 
|---|
|  | 1414 | La commande bargraph ne gere pas encore toutes les possibilites | 
|---|
|  | 1415 | de la classe PIBarGraph. \\ | 
|---|
|  | 1416 | Exemple d'utilisation: | 
|---|
|  | 1417 | \begin{verbatim} | 
|---|
|  | 1418 | Cmd> bargraph ' ' -10. 15. 22. 8. 33. 7 -4. | 
|---|
|  | 1419 | Cmd> bargraph 'blue ' -10. 15. 22. 8. 33. 7 -4. | 
|---|
|  | 1420 | Cmd> bargraph 'blue horizontalbars' -10. 15. 22. 8. 33. 7 -4. | 
|---|
|  | 1421 | Cmd> bargraph 'blue horizontalbars barvaluelabel ' -10. 15. 22. 8. 33. 7 -4. | 
|---|
|  | 1422 | Cmd> bargraph 'blue verticalbars nofill barvaluelabel ' -10. 15. 22. 8. 33. 7 -4. | 
|---|
|  | 1423 | Cmd> bargraph 'font=times,bold,16 blue verticalbars nofill barvaluelabel ' \ | 
|---|
|  | 1424 | -10. 15. 2 2. 8. 33. 7 -4. | 
|---|
|  | 1425 | Cmd> bargraph 'font=times,bold,16 blue verticalbars fill barvaluelabel packfrac=0.8' \ | 
|---|
|  | 1426 | -10. 15. 22. 8. 33. 7 -4. | 
|---|
|  | 1427 | \end{verbatim} | 
|---|
|  | 1428 |  | 
|---|
| [3229] | 1429 | \soustitre{ Traceur de lignes de texte (classe PITextDrawer)  (3 Juin 2004) } | 
|---|
| [2632] | 1430 |  | 
|---|
|  | 1431 | Ajout d'une classe de traceur de lignes de texte (classe {\bf PITextDrawer}) et commande | 
|---|
|  | 1432 | {\tt textdrawe}r ds PIext/basexecut.cc . Mais le traceur (et sa commande) | 
|---|
|  | 1433 | doivent etre completes. \\ | 
|---|
|  | 1434 | Exemple d'utilisation: | 
|---|
|  | 1435 | \begin{verbatim} | 
|---|
|  | 1436 | # On affiche qque chose | 
|---|
|  | 1437 | Cmd> openppf demo.ppf | 
|---|
|  | 1438 | Cmd> disp h1d | 
|---|
|  | 1439 | Cmd> textdrawer 'frame line=solid,2 font=times,bold,16 red inset'  \ | 
|---|
|  | 1440 | ' Christophe ' ' Reza Ansari' ' SOPHYA ' | 
|---|
|  | 1441 | \end{verbatim} | 
|---|
|  | 1442 |  | 
|---|
| [3229] | 1443 | \soustitre{ Gestion de re-scale-ing des  axes en 3D  (3 Juin 2004)  } | 
|---|
| [2632] | 1444 |  | 
|---|
|  | 1445 | Mise en place complete (?) de la gestion de re-scale-ing des  axes en 3D | 
|---|
|  | 1446 | avec gestion des options graphiques (texte) - Il est possible en particulier d'imposer | 
|---|
|  | 1447 | les limites de la boites 3D. | 
|---|
|  | 1448 | cela a ete une grosse prise de tete de tout un apres-midi. | 
|---|
|  | 1449 | J'ai eu ensuite mal a la tete une partie de la soiree !  \\ | 
|---|
|  | 1450 | Exemple d'utilisation: | 
|---|
|  | 1451 |  | 
|---|
|  | 1452 | \begin{verbatim} | 
|---|
|  | 1453 |  | 
|---|
|  | 1454 | # On ouvre le fichier demo.ppf | 
|---|
|  | 1455 | Cmd> openppf demo.ppf | 
|---|
|  | 1456 | Cmd> surf mtx1 'colbr32' | 
|---|
|  | 1457 | Cmd> surf mtx1 'colbr32 noautoscale' | 
|---|
|  | 1458 | Cmd> surf mtx1 'colbr32 lim3dbox=-10,60,-10,60,-3,15 autoscale3dbox' | 
|---|
|  | 1459 | #  Affichage avec superposition | 
|---|
|  | 1460 | Cmd> nt3d nt32 x y z - - - - - 'marker=circle,7 red' | 
|---|
|  | 1461 | Cmd> nt3d nt32 x y z - - - - - 'same marker=cross,5 blue ' | 
|---|
|  | 1462 | #  Ou bien : | 
|---|
|  | 1463 | Cmd> nt3d nt32 x y z - - - - - 'marker=circle,7 red noautoscale' | 
|---|
|  | 1464 | Cmd> nt3d nt32 x y z - - - - - 'same marker=cross,5 blue ' | 
|---|
|  | 1465 |  | 
|---|
|  | 1466 | \end{verbatim} | 
|---|
| [3229] | 1467 | \soustitre{piapp (PIext/ProgPI) } | 
|---|
| [2632] | 1468 | \begin{itemize} | 
|---|
| [3050] | 1469 | %%%% | 
|---|
|  | 1470 | \item[\rond] Juillet 2006 : Ameliorations et ajouts divers : \\ | 
|---|
|  | 1471 | - Ajout commande {\bf plot3dw} ({\tt Services2NObjMgr::DisplayPoints3DW() }) \\ | 
|---|
|  | 1472 | - Ajout possibilite d'acces aux caracteristiques des objets par {\tt \$\{objname.att\} }  \\ | 
|---|
|  | 1473 | {\tt (PIACmd::GetVarApp()) } et amelioration verification du nom des objets | 
|---|
|  | 1474 | (methode {\tt NamedObjMgr::CheckName()}) \\ | 
|---|
|  | 1475 | - Operations sur objets: commande {\bf objaoper} ({\tt NObjMgrAdapter::PerformOperation()}) | 
|---|
|  | 1476 |  | 
|---|
|  | 1477 | \begin{verbatim} | 
|---|
|  | 1478 | #  Extracting row / column from matrix | 
|---|
|  | 1479 | Cmd> objaoper matrixname row 23 | 
|---|
|  | 1480 | Cmd> objaoper matrixname col 148 | 
|---|
|  | 1481 | #  Extracting plane from 3D array (slicexy slicexz sliceyz) | 
|---|
|  | 1482 | Cmd> objaoper arr3dname slicexy 14 | 
|---|
|  | 1483 | \end{verbatim} | 
|---|
|  | 1484 | %%%% | 
|---|
| [2971] | 1485 | \item[\rond] Avril 2006: Ajout possibilite de lecture des commandes sur le terminal (stdin) | 
|---|
|  | 1486 | et flag en argument de commande {\tt -small} \\ | 
|---|
|  | 1487 | Extrait de cvs log : | 
|---|
|  | 1488 | \begin{verbatim} | 
|---|
|  | 1489 | revision 1.16 | 
|---|
|  | 1490 | date: 2006/04/26 15:53:18;  author: ansari;  state: Exp;  lines: +20 -11 | 
|---|
|  | 1491 | 1/ Ajout classe de lecture sur stdin (terminal) avec thread separe pour | 
|---|
|  | 1492 | piapp - incluant la possibilite d'utilisation de la librairie GNU readline | 
|---|
|  | 1493 | (fichiers piacmdrdr.cc piacmdrdr.h + fichier makfile specifique makefile_wgrdl | 
|---|
|  | 1494 | pour compil+link avec GNU readline) | 
|---|
|  | 1495 | 2/ MAJ Makefile et modif programme principal piapp.cc avec flag -small | 
|---|
|  | 1496 | et activation thread de lecture sur terminal | 
|---|
|  | 1497 | Reza , 26/04/2006 | 
|---|
|  | 1498 |  | 
|---|
|  | 1499 | ---------------------------- | 
|---|
|  | 1500 | \end{verbatim} | 
|---|
|  | 1501 |  | 
|---|
| [2905] | 1502 | \item[\rond] Jan 2006 : commandes readfits writefits scanfits ont ete ajoutees | 
|---|
|  | 1503 | dans ProgPI/fitsbtadapter.cc en utilisant le nouveau FITS - | 
|---|
|  | 1504 | Le menu OpenFits de PIStdImgApp utilise desormais ces commandes | 
|---|
| [3301] | 1505 | \item {\bf BUG } a corriger pour {\tt imagvav}: | 
|---|
|  | 1506 | La destruction de l'objet et/ou widget pascorrectement geres - | 
|---|
|  | 1507 | provoque des plantages lors de la sortie de l'application. | 
|---|
|  | 1508 | \end{itemize} | 
|---|
|  | 1509 | \soustitre{piapp multi-thread } | 
|---|
|  | 1510 | \begin{itemize} | 
|---|
| [3050] | 1511 | \item[\rond] Avril 2005: Possibilit d'execution de commandes en threads separes, en | 
|---|
|  | 1512 | ajoutant {\bf \&} en fin de ligne de commande. | 
|---|
|  | 1513 | \item[\rond] Janvier 2004: Le multithreading a t mis en oeuvre dans piapp . | 
|---|
| [2717] | 1514 |  | 
|---|
| [2905] | 1515 | \item[\rond] Extrait de {\tt cvs log pistdimgapp.cc } : | 
|---|
| [2632] | 1516 | \begin{verbatim} | 
|---|
| [2717] | 1517 | revision 1.77 | 
|---|
|  | 1518 | date: 2005/04/27 11:55:00;  author: ansari;  state: Exp;  lines: +26 -10 | 
|---|
|  | 1519 | 1/ Prise en charge de DataTable et SwPPFDataTable pour piapp (NObjMgrAdapter) : | 
|---|
|  | 1520 | nomhistadapter.cc et piiinit.cc | 
|---|
|  | 1521 | 2/ Lecture de tous les objets ds un fichier PPF par NamedObjMgr::ReadAll() pour | 
|---|
|  | 1522 | fichier PPF sans nametag. | 
|---|
|  | 1523 | 3/ Ajout bloc try/catch ds PIStdImgApp::Run() (boucle d'evenements) | 
|---|
|  | 1524 | Reza , 27 Avril 2005 | 
|---|
|  | 1525 | ---------------------------- | 
|---|
|  | 1526 | revision 1.76 | 
|---|
|  | 1527 | date: 2005/04/19 09:13:49;  author: ansari;  state: Exp;  lines: +3 -1 | 
|---|
|  | 1528 | Ajout de l option nodisp ds les affichages des NamedObjMgr, prise en compte de | 
|---|
|  | 1529 | <Cntrl C> (Msg_Cancel) pour arreter l'execution de l'interpreteur ds PIStdImgApp | 
|---|
|  | 1530 | et remplacement commande breakexe par stop ds PIACmd - Reza 19/4/2005 | 
|---|
|  | 1531 | ---------------------------- | 
|---|
|  | 1532 | revision 1.75 | 
|---|
|  | 1533 | date: 2005/04/19 06:56:52;  author: ansari;  state: Exp;  lines: +5 -4 | 
|---|
|  | 1534 | Remis en marche la possibilite d'execution d'un .pic au lancement de piapp - | 
|---|
|  | 1535 | Reza 19/4/2005 | 
|---|
|  | 1536 | ---------------------------- | 
|---|
|  | 1537 | revision 1.74 | 
|---|
|  | 1538 | date: 2005/02/18 14:09:47;  author: ansari;  state: Exp;  lines: +62 -37 | 
|---|
|  | 1539 | Modifications pour l'utilisation viewer PIImageNavigator (ajout commande imagnav | 
|---|
|  | 1540 | ) - Reza 18 Fev 2005 | 
|---|
|  | 1541 | ---------------------------- | 
|---|
|  | 1542 | revision 1.73 | 
|---|
|  | 1543 | date: 2004/11/19 17:41:07;  author: ansari;  state: Exp;  lines: +26 -0 | 
|---|
|  | 1544 | Ajout commandes addoval addfoval pour trace d'ellipse - Reza 19/11/2004 | 
|---|
|  | 1545 | ---------------------------- | 
|---|
| [2632] | 1546 | revision 1.71 | 
|---|
|  | 1547 | date: 2004/09/07 07:10:18;  author: ansari;  state: Exp;  lines: +35 -0 | 
|---|
|  | 1548 | Ajout bloc try/catch ds piacmd.cc (thread execution commandes) et ds pistdimgapp.cc ( | 
|---|
|  | 1549 | methode process, thread boucle d'evts) - Reza 07/09/2004 | 
|---|
|  | 1550 | ---------------------------- | 
|---|
|  | 1551 | revision 1.70 | 
|---|
|  | 1552 | date: 2004/01/06 18:44:56;  author: ansari;  state: Exp;  lines: +11 -1 | 
|---|
|  | 1553 | Suite debugging gestion lock entre threads ds piapp - A l'air de | 
|---|
|  | 1554 | marcher sur OSF1 et Linux ...   Reza 06/01/2004 | 
|---|
|  | 1555 | ---------------------------- | 
|---|
|  | 1556 | revision 1.69 | 
|---|
|  | 1557 | date: 2004/01/06 17:05:25;  author: ansari;  state: Exp;  lines: +33 -7 | 
|---|
|  | 1558 | Suite debug piapp multithread : on ne peut pas utiliser ZSync() ds un if (destructeur | 
|---|
|  | 1559 | appele de suite) - Reza 06/01/2004 | 
|---|
|  | 1560 | ---------------------------- | 
|---|
|  | 1561 | revision 1.68 | 
|---|
|  | 1562 | date: 2004/01/04 19:02:43;  author: ansari;  state: Exp;  lines: +43 -13 | 
|---|
|  | 1563 | Suite des modifs pour piapp multi-threads | 
|---|
|  | 1564 | 1) Ajout Mutex de synchronisation ds ls classe NamedObjMgr | 
|---|
|  | 1565 | 2) Suite controle de gestion d'appel aux methodes de PIStdImgApp depuis | 
|---|
|  | 1566 | la classe elle-meme, a travers le NamedObjMgr | 
|---|
|  | 1567 | 3) Modification de la boucle d'evenements, avec un thread de reveil | 
|---|
|  | 1568 | periodique | 
|---|
|  | 1569 | Reza, 4 Janvier 2004 | 
|---|
|  | 1570 | \end{verbatim} | 
|---|
| [2905] | 1571 | \item[\rond] Extrait de {\tt cvs log pistdimgapp.cc } : | 
|---|
| [2632] | 1572 | \begin{verbatim} | 
|---|
|  | 1573 | ---------------------------- | 
|---|
|  | 1574 | revision 1.62 | 
|---|
|  | 1575 | date: 2003/11/27 10:51:58;  author: ansari;  state: Exp;  lines: +45 -20 | 
|---|
|  | 1576 | Suite modification/adaptations a la classe PIACmd qui herite maintenent de SOPHYA::Co | 
|---|
|  | 1577 | mmander - Reza 27/11/2003 | 
|---|
|  | 1578 | ---------------------------- | 
|---|
|  | 1579 | revision 1.61 | 
|---|
|  | 1580 | date: 2003/11/26 23:01:55;  author: ansari;  state: Exp;  lines: +20 -1755 | 
|---|
|  | 1581 | Modification du code de PIACmd : La classe PIACmd herite maintenant de la classe Comm | 
|---|
|  | 1582 | ander (de SysTools) - Reza 26/11/2003 | 
|---|
|  | 1583 | ---------------------------- | 
|---|
|  | 1584 | revision 1.60 | 
|---|
|  | 1585 | date: 2003/07/21 21:13:10;  author: cmv;  state: Exp;  lines: +3 -3 | 
|---|
|  | 1586 | - introduction notion de numero de ligne dans expression ntuple | 
|---|
|  | 1587 | modif prototype PlotExprFunc NTLoopExprFunc (add _nl _nstart _nend) | 
|---|
|  | 1588 | modif int_4 -> int_8_exprf (long long) pour _nl (DecodeLoopParameters, | 
|---|
|  | 1589 | PrepareNTExpressionCFile, LinkExprFunc,...) | 
|---|
|  | 1590 | - doc pour _nl _nstart _nend et arragement repartition RegisterHelp/RegisterCommand | 
|---|
|  | 1591 | (rz + cmv 21/7/2003) | 
|---|
|  | 1592 | ---------------------------- | 
|---|
|  | 1593 | \end{verbatim} | 
|---|
|  | 1594 | \end{itemize} | 
|---|
|  | 1595 |  | 
|---|
| [3229] | 1596 | \titre{Documentation (Manual/) } | 
|---|
|  | 1597 | %%%% | 
|---|
| [2632] | 1598 | Documentation des classes de SysTools. \\ | 
|---|
|  | 1599 | Extrait message du 12 Aout 2004 : \\ | 
|---|
|  | 1600 | \begin{verbatim} | 
|---|
|  | 1601 | ---> Au sujet de la doc (Manual/) | 
|---|
|  | 1602 | J'ai installe doxygen sur le Mac, version 1.3.8 - | 
|---|
|  | 1603 | Il faut updater le fichier de config de depart (dox_sophya.conf) | 
|---|
|  | 1604 | Pour ma part, j'ai du modifier mkmf (en version privee) - | 
|---|
|  | 1605 | En effet, il n'y avait pas le program doxysearch - Je ne sais pas si c'est general | 
|---|
|  | 1606 | ou specifique Mac. | 
|---|
|  | 1607 |  | 
|---|
|  | 1608 | J'ai aussi modifie certaines options de doxygen (en version privee) | 
|---|
|  | 1609 | EXTRACT_LOCAL_CLASSES  --> NO   (au lieu de YES) | 
|---|
|  | 1610 | DETAILS_AT_TOP  ---> YES     (au lieu de No) | 
|---|
|  | 1611 | SORT_MEMBER_DOCS  ---> NO    (au lieu de YES) | 
|---|
|  | 1612 |  | 
|---|
| [2829] | 1613 | Si on est d'accord, on peut modifier ces options ds le fichier dox_sophya.conf et | 
|---|
| [2632] | 1614 | utiliser la fonction update de doxygen (doxygen -u) | 
|---|
|  | 1615 | \end{verbatim} | 
|---|
|  | 1616 |  | 
|---|
| [3229] | 1617 | \titre{Mgr} | 
|---|
| [3095] | 1618 | \begin{itemize} | 
|---|
|  | 1619 | \item Avril-Mai 2005 : Basculement vers la nouvelle version de scripts | 
|---|
| [2911] | 1620 | de gestion du code (module {\bf BuildMgr/ } ) | 
|---|
|  | 1621 | On n'a plus a se preoccuper des indications de cette section | 
|---|
| [2829] | 1622 |  | 
|---|
| [3095] | 1623 | \item | 
|---|
| [2829] | 1624 | Septembre 2003 (17/9/2003) :  Changement DPCDEVREP, DPCBASEREP | 
|---|
|  | 1625 | en SOPHYADEVREP , SOPHYABASEREP , EROSCXX en SOPHYACXX | 
|---|
| [3095] | 1626 | \end{itemize} | 
|---|
| [2829] | 1627 |  | 
|---|
|  | 1628 |  | 
|---|
|  | 1629 |  | 
|---|
| [3229] | 1630 | \titre{Plan de modifs pour SOPHYA V 2.x PI/piapp V 4.x } | 
|---|
| [2829] | 1631 |  | 
|---|
| [3095] | 1632 | {\bf Sep 2006} : La grande majorit\'e des modifs pr\'evues en 2003 ont \'et\'e | 
|---|
|  | 1633 | effectu\'ees. Reste \`a faire , si besoin : | 
|---|
|  | 1634 | \begin{itemize} | 
|---|
|  | 1635 | \item SophyaLib::TArray/ | 
|---|
| [2632] | 1636 | \begin{verbatim} | 
|---|
|  | 1637 | - Ajouter une classe de base abstraite GenericMatrix<T> | 
|---|
|  | 1638 | avec methode d'acces aux elements, nb de lignes, nb de colonnes, | 
|---|
|  | 1639 | - Introduire les TinyMatrix  (TinyMatrix<T, int L, int C>) | 
|---|
|  | 1640 | avec passage de/vers TMatrix<T> (et TinyVector<T, int N>) ? | 
|---|
|  | 1641 | - Introduire des matrices creuses simples SpareMatrix<T> | 
|---|
|  | 1642 | - Introduire les DiagonalMatrix<T> | 
|---|
| [3095] | 1643 | Remarque: Les TMatrix TinyMatrix et  SparseMatrix heritent de GenericMatrix | 
|---|
| [2632] | 1644 | \end{verbatim} | 
|---|
|  | 1645 |  | 
|---|
| [3095] | 1646 | \item PI/ piapp | 
|---|
| [2632] | 1647 | \begin{verbatim} | 
|---|
| [3095] | 1648 | o Ajouter un traceur de  ApplePie (BarChart fait ) | 
|---|
| [2632] | 1649 | o Ajouter un traceur de Lego-Plot | 
|---|
|  | 1650 | o (?) Une fonction pour faire facilement une fenetre d'alerte ou d'info (?) | 
|---|
|  | 1651 | o Voir comment on pourrait "joindre" deux objets ayant l'interface NTupleInterface | 
|---|
|  | 1652 | pour pouvoir plotter des objets, l'un vs l'autre | 
|---|
|  | 1653 | o (???) Introduire quelque chose du style | 
|---|
|  | 1654 | AddDialogue("Cmd", "dialogue-description) | 
|---|
|  | 1655 | qui pourrait fabriquer automatiquement une fenetre avec des champs a remplir | 
|---|
|  | 1656 | pour les commandes usuelles (???) | 
|---|
|  | 1657 | \end{verbatim} | 
|---|
| [3095] | 1658 | \end{itemize} | 
|---|
| [2632] | 1659 |  | 
|---|
|  | 1660 |  | 
|---|
|  | 1661 | \end{document} | 
|---|