Changeset 2717 in Sophya
- Timestamp:
- May 13, 2005, 11:50:41 AM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/Manual/modifs.tex
r2716 r2717 226 226 - Ajout programme de test Tests/ppftswap.cc 227 227 \item[\rond] Avril 2005 - Ajout de wrapper de lecture/ecriture PPF pour les vecteurs de 228 la librairie standard (classe PPFWrapperSTLVector <T>) fichier ppfwrapstlv.h228 la librairie standard (classe PPFWrapperSTLVector$<$T$>$ ) fichier ppfwrapstlv.h 229 229 \item[\rond] Ajout de la classes utilitaire PPF\_TPointer\_IO$<$T$>$ 230 230 (fichiers ppftpointer.h .cc) … … 237 237 238 238 239 240 \subsection{Segmented Data Block} 239 \subsection{Nouvelles classes} 240 \begin{itemize} 241 \item[\rond] Ajout de la classe {\bf TimeStamp} pour la manipulation de date et heure - 242 calcul de duree. - Ajout du prog. test Tests/ttimestamp.cc (Mars 2003) 243 \item[\rond] { \bf Segmented Data Block :} \\ 241 244 Mars-Avril 2005: Introduction des classes similaires aux NDataBlock, mais permettant 242 245 de gerer des blocs de donnees segementes, pour tout type de donnees, de structures 243 et de classes (template pour tout type <T>). 244 Extrait du log CVS du 2005/04/07 245 \begin{verbatim} 246 1/ Ajout de la classe SegDataBlock<T> (et l'interface SegDBInterface<T>) 246 et de classes (template pour tout type T). 247 \begin{enumerate} 248 \item Ajout de la classe {\tt SegDataBlock<T>} (et l'interface { \tt SegDBInterface<T>} ) 247 249 pour la gestion de blocs de donnees segmentes (segdatablock.h) et son 248 gestionnaire PPF FIO_SegDataBlock<T>(fichier fiosegdb.h )249 2/ Ajout de la classe SwSegDataBlock<T>(Data bloc segmente avec gestion250 de swap) et la classe swapper PPF PPFDataSwapper<T>(fichiers250 gestionnaire PPF {\tt FIO\_SegDataBlock<T>} (fichier fiosegdb.h ) 251 \item Ajout de la classe {\tt SwSegDataBlock<T>} (Data bloc segmente avec gestion 252 de swap) et la classe swapper PPF {\tt PPFDataSwapper<T>} (fichiers 251 253 ppfswapper.h et swsegdb.h) 252 \end{verbatim} 254 \item Ajout programme de test Tests/tstsegdb.cc 255 \end{enumerate} 256 \end{itemize} 253 257 254 258 … … 379 383 -------- SwPPFDataTable 380 384 \end{verbatim} 381 {\bf BaseDataTable} : Classe de base, avec qques methodes virtuelles 385 386 \noindent {\bf BaseDataTable} : Classe de base, avec qques methodes virtuelles 382 387 pures, implementent la presque totalite des fonctionalites, en particulier 383 388 celles de l'interface NTupleInterface. 384 389 385 {\bf DataTable} : Implementation concrete de BaseDataTable avec donnees en 386 memoire (utilise SegDataBlock<T> pour stocker les colonnes) 387 388 {\bf SwPPFDataTable} : Implementation concrete de BaseDataTable avec donnees 389 en swap sur stream PPF (POutPersist)- Utilise (SwSegDataBlock<T> avec 390 un data-swapper PPF (classe PPFDataSwapper<T> ) 390 \noindent {\bf DataTable} : Implementation concrete de BaseDataTable avec donnees en 391 memoire \\ 392 (utilise SegDataBlock$<$T$>$ pour stocker les colonnes) 393 394 \noindent {\bf SwPPFDataTable} : Implementation concrete de BaseDataTable avec donnees 395 en swap sur stream PPF (POutPersist)- \\ 396 Utilise (SwSegDataBlock$<$T$>$ avec 397 un data-swapper PPF (classe PPFDataSwapper$<$T$>$ ) 391 398 392 399 DataTable et SwPPFDataTable respecte +/- les conventions SOPHYA , … … 399 406 400 407 Classe de gestion de persistence commune : \\ 401 {\bf ObjFileIO <BaseDataTable>}408 {\bf ObjFileIO$<$BaseDataTable$>$ } 402 409 403 410 Lit et ecrit les DataTable et SwPPFDataTable … … 406 413 ecrit comme DataTable - mais cette possibilite pourra 407 414 peut-etre codee ulterieurement (d'ou l'interet en particulier 408 d'un gestionnaire commun ObjFileIO <BaseDataTable>415 d'un gestionnaire commun ObjFileIO$<$BaseDataTable$>$ 409 416 410 417 (les operateurs habituel $<<$ et $>>$ sur PIn/OutPersist sont definies) 411 418 412 \begin{verbatim} 413 Actuellement, les colonnes peuvent etre de type 414 int_4 , int_8 , r_4 , r_8 , string 415 On pourra ajouter apres les types suivants : 416 complex<r_4> , complex<r_8> , TimeStamp 419 Actuellement, les colonnes peuvent etre de type \\ 420 {\tt int\_4 , int\_8 , r\_4 , r\_8 , string } \\ 421 On pourra ajouter apres les types suivants : \\ 422 {\tt complex<r\_4> , complex<r\_8> , TimeStamp } 417 423 418 424 Dans BaseDataTable, il reste a remplir la methode 419 BaseDataTable ::FillFromASCIIFile(string const& fn) 420 BaseDataTable :: Print(int num, int nmax=1) const 421 (on peut utiliser LineToString(sa_size_t n) const425 {\tt BaseDataTable ::FillFromASCIIFile(string const \& fn) } \\ 426 {\tt BaseDataTable :: Print(int num, int nmax=1) const } 427 (on peut utiliser { \tt LineToString(sa\_size\_t n) const } 422 428 423 429 Par contre, les merges et copie sont prevues, 424 430 on doit en principe pouvoir ecrire par exemple: 431 \begin{verbatim} 425 432 SwPPFDataTable swdt; 426 433 PInPersist pis("swdt.ppf"); … … 428 435 DataTable dt; 429 436 dt = swdt; // Pour tout charger en memoire 437 \end{verbatim} 430 438 431 439 On peut aussi ajouter des methodes d'acces aux variables membres pour enrichier l'interface. 432 440 433 PLUS IMPORTANT : il reste a ecrire la classe FITS_BaseDataTable ou FITS_DataTable 434 pour I/O sur fichiers FITS - j'ai regarde FITS_XNTuple qu'on pourra simplifier enormement 441 {\bf PLUS IMPORTANT : } \\ 442 Il reste a ecrire la classe FITS\_BaseDataTable ou FITS\_DataTable 443 pour I/O sur fichiers FITS - j'ai regarde {\tt FITS\_XNTuple} qu'on pourra simplifier enormement 435 444 et que devrait etre assez rapide. 436 Il faut aussi faire une classe SwFITSDataTable, en recopiant pas mal de chose ds la classe437 SwPPFDataTable- On pourrait peut-etre avoir une classe intermediaire qui regroupe438 tout ce qui est commun a SwFITSDataTable et SwPPFDataTable, mais a voir.439 L'element cle sera le codage de FITSDataSwapper<T>qui implemente440 les deux methodes de DataSwapperInterface<T>- le reste devrait etre du copier/coller445 Il faut aussi faire une classe {\tt SwFITSDataTable}, en recopiant pas mal de chose ds la classe 446 {\tt SwPPFDataTable} - On pourrait peut-etre avoir une classe intermediaire qui regroupe 447 tout ce qui est commun a {\tt SwFITSDataTable et SwPPFDataTable} , mais a voir. 448 L'element cle sera le codage de {\tt FITSDataSwapper<T>} qui implemente 449 les deux methodes de {\tt DataSwapperInterface<T>} - le reste devrait etre du copier/coller 441 450 essentiellement. 442 451 443 PIAPP :452 {\bf DataTable cote PIAPP :} \\ 444 453 Cote piapp, les DataTable et SwPPFDataTable sont pris en charge par 445 NOMAdapter_DataTable(qui prend en charge tous les 'BaseDataTable' )446 Il faudrait peut-etre rajouter deux commandes : 454 {\tt NOMAdapter\_DataTable} (qui prend en charge tous les 'BaseDataTable' ) 455 Il faudrait peut-etre rajouter deux commandes : \\ 447 456 newdt ou newdatatable 448 newdt ncol col1 [col2 .... ] 457 newdt ncol col1 [col2 .... ] \\ 449 458 avec possibilite de specifier coli sous fome de X:colname ou X = D,F,S,I,L ... 450 459 et puis dtfromascii ... 451 460 452 461 Voir Tests/tnt.cc pour exemple d'utilisation : 462 \begin{verbatim} 453 463 DataTable dt(64); 454 464 dt.AddIntegerColumn("line"); … … 465 475 POutPersist po("dtable.ppf"); 466 476 po << dt; 477 \end{verbatim} 467 478 468 479 Pour SwPPFDataTable, il faut juste creer un stream PPF avant, qui doit rester 469 ouvert tant que le SwPPFDataTable est actif 480 ouvert tant que le SwPPFDataTable est actif: \\ 481 \begin{verbatim} 470 482 POutPersist po("swdtable.ppf"); 471 483 SwPPFDataTable dt(po, 64); 472 473 \end{verbatim} 484 \end{verbatim} 485 474 486 475 487 \section{SkyMap , Samba } … … 521 533 \subsection{Classe SOPHYA::Commander (module SysTools) } 522 534 535 Mars-Avril 2004 : 523 536 Classe d'interprteur de ligne de commande inspire de C-Shell, 524 537 destine a etre incluee dans des applications C/C++. \\ 525 ( Programme test Test/tcmd.cc ) 538 ( Programme test Test/tcmd.cc ) \\ 539 Avril 2005 : Introduction de la possibilite d'execution de commandes 540 en multithreads \\ 541 Avril 2005 : Controle strict sur les noms de variables, limites 542 aux caracteres alphanumeriques + underscore - Adaptation 543 de l'algorithme de substitution en consequence. 526 544 527 545 {\bf Mini guide de l'interpreteur - Message du 19 Mars 2004 } \ … … 701 719 \item Defintion et liste d'alias : {\bf alias aliasname 'string ' } et {\bf listalias} 702 720 \end{itemize} 721 722 \item[\rond] {\bf Threads d'execution de commandes (Avril 2005)} \\ 723 Possibilite de lancer des commandes (autre que les commandes 724 de l'interpreteur lui-meme) en thread separe (il suffit de mettre un \& 725 a la fin de la commande) \\ 726 Commandes des gestion des threads : \\ 727 {\bf thrlist ; cleanthrlist ; cancelthr ThId ; waitthr } \\ 728 Attention, la possibilite de lancer des commandes en threads separes ne fonctionne que 729 pour des commandes "thread-safe". 730 La plupart de nos commandes de piapp sont \\ 731 - soit trop rapide, \\ 732 - soit non "thread-safe" \\ 733 734 \item[\rond] controle d'execution : \\ 735 Possibilite d'arreter l'execution de l'interpreteur (dans une boucle 736 ou dans dans un fichier .pic ... 737 Utiliser la commande {\bf stop} ou {\tt <Cntrl C>} dans PIConsole 738 703 739 \end{itemize} 704 740 … … 756 792 \end{itemize} 757 793 794 \section{LinAlg} 795 Extension des fonctionalits de la classe {\tt LapackServer<T>} : 796 (Juillet 2004 / cmv , Fvrier 2005 / Reza) 797 \begin{itemize} 798 \item[\rond] Introduction de l'interface Lapack d'inversion des matrices symetriques (21/7/2004) 799 \item[\rond] Introduction de l'interface Lapack de recherche de valeurs et vecteurs propres 800 (cas general, symetrique et hermitique) (21/7/2004) 801 \item[\rond] Introduction d'un fonction d'interface pour le calculateur de workspace 802 (ilaenv\_) (21/7/2004) 803 \item[\rond] Ajout prog test Tests/tsttminv.cc + Commentaires sur les diverses methodes et sur les matrices FORTRAN (21/7/2004) 804 \item[\rond] Ajout SVD decomp by Divide and Conquer SVD\_DC (23/7/2004) 805 \item[\rond] Ajout Least Square with SVD DC 806 \item[\rond] Ajout methode calcul de la matrice inverse par Lapack en utilisant la 807 resolution de systemes (07/02/2005) 808 \end{itemize} 809 758 810 \section{PI,PIext,piapp} 811 \subsection{PI: Classes modifiees - ameliorees} 812 \begin{itemize} 813 \item[\rond] {\bf PIImageNavigator } \\ 814 Ajout de la classe {\tt PIImageNavigator } permmettant de visualiser une image 815 avec ses propres widget zoom / global view et colormap. (Fevrier 2005) \\ 816 Commande {\tt imagnav} ajoute ds piapp/baseexcute.cc . \\ 817 \item[\rond] Avril 2005 - Amelioration de la classe {\bf PIConsole} \\ 818 1/Envoi Message PIMSG\_Cancel lors de {\tt <Cntl C>} \\ 819 2/ Correction positionnement curseur lors de rappel de commande, 820 Si possible en fin de commande - mais toujours avec le 821 debut de commande visible. \\ 822 3/ Correction (probable) du petit bug sur les derniers caracteres lors de copier/coller 823 ds PIConsole 824 \end{itemize} 825 % 826 % 759 827 \subsection{ Codage texte des options graphiques (11 Mars 2004)} 760 828 \begin{verbatim} … … 899 967 \begin{itemize} 900 968 \item Le multithreading a t mis en oeuvre dans piapp (janvier 2004). 901 \item Il faut par contre ajouter des possibilits de controle du thread 902 d'execution des commandes. 969 \item Possibilit d'execution de commandes en multithread (Avril 2005) 970 \item {\bf BUG } a corriger pour {\tt imagvav}: 971 La destruction de l'objet et/ou widget pascorrectement geres - 972 provoque des plantages lors de la sortie de l'application. 973 903 974 \item Extrait de {\tt cvs log pistdimgapp.cc } : 904 975 \begin{verbatim} 976 revision 1.77 977 date: 2005/04/27 11:55:00; author: ansari; state: Exp; lines: +26 -10 978 1/ Prise en charge de DataTable et SwPPFDataTable pour piapp (NObjMgrAdapter) : 979 nomhistadapter.cc et piiinit.cc 980 2/ Lecture de tous les objets ds un fichier PPF par NamedObjMgr::ReadAll() pour 981 fichier PPF sans nametag. 982 3/ Ajout bloc try/catch ds PIStdImgApp::Run() (boucle d'evenements) 983 Reza , 27 Avril 2005 984 ---------------------------- 985 revision 1.76 986 date: 2005/04/19 09:13:49; author: ansari; state: Exp; lines: +3 -1 987 Ajout de l option nodisp ds les affichages des NamedObjMgr, prise en compte de 988 <Cntrl C> (Msg_Cancel) pour arreter l'execution de l'interpreteur ds PIStdImgApp 989 et remplacement commande breakexe par stop ds PIACmd - Reza 19/4/2005 990 ---------------------------- 991 revision 1.75 992 date: 2005/04/19 06:56:52; author: ansari; state: Exp; lines: +5 -4 993 Remis en marche la possibilite d'execution d'un .pic au lancement de piapp - 994 Reza 19/4/2005 995 ---------------------------- 996 revision 1.74 997 date: 2005/02/18 14:09:47; author: ansari; state: Exp; lines: +62 -37 998 Modifications pour l'utilisation viewer PIImageNavigator (ajout commande imagnav 999 ) - Reza 18 Fev 2005 1000 ---------------------------- 1001 revision 1.73 1002 date: 2004/11/19 17:41:07; author: ansari; state: Exp; lines: +26 -0 1003 Ajout commandes addoval addfoval pour trace d'ellipse - Reza 19/11/2004 1004 ---------------------------- 905 1005 revision 1.71 906 1006 date: 2004/09/07 07:10:18; author: ansari; state: Exp; lines: +35 -0
Note:
See TracChangeset
for help on using the changeset viewer.