source: Sophya/trunk/SophyaLib/Manual/modifs.tex@ 4086

Last change on this file since 4086 was 4072, checked in by ansari, 13 years ago

description des changements lies aux traces en coord. polaires ds le fichier modifs.tex, Reza 9 Mai 2012

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