Index: trunk/SophyaLib/BaseTools/Makefile
===================================================================
--- trunk/SophyaLib/BaseTools/Makefile	(revision 1364)
+++ trunk/SophyaLib/BaseTools/Makefile	(revision 1371)
@@ -12,5 +12,5 @@
  
 $(OBJ)ctimer.o: ctimer.cc $(INC)machdefs.h ctimer.h
-$(OBJ)cxxcmplnk.o: cxxcmplnk.cc pdlmgr.h \
+$(OBJ)cxxcmplnk.o: cxxcmplnk.cc cxxcmplnk.h \
  $(INC)machdefs.h
 $(OBJ)datacards.o: datacards.cc $(INC)machdefs.h \
@@ -48,3 +48,3 @@
  srandgen.h smathconst.h
 $(OBJ)strutil.o: strutil.c strutil.h
-$(OBJ)timing.o: timing.c
+$(OBJ)timing.o: timing.c timing.h
Index: trunk/SophyaLib/BaseTools/pexceptions.h
===================================================================
--- trunk/SophyaLib/BaseTools/pexceptions.h	(revision 1364)
+++ trunk/SophyaLib/BaseTools/pexceptions.h	(revision 1371)
@@ -212,5 +212,4 @@
 #define EXC_ABORT_ALL(_x)
 
-#define EXC_AWARE
 
 #define END_CONSTRUCTOR
Index: trunk/SophyaLib/BaseTools/sversion.h
===================================================================
--- trunk/SophyaLib/BaseTools/sversion.h	(revision 1364)
+++ trunk/SophyaLib/BaseTools/sversion.h	(revision 1371)
@@ -3,6 +3,6 @@
 
 #define SOPHYA_VERSION   0.9 
-#define SOPHYA_REVISION  98
-#define SOPHYA_TAG       "V_Oct2000"
+#define SOPHYA_REVISION  99
+#define SOPHYA_TAG       "V_Dec2000"
 
 #endif
Index: trunk/SophyaLib/HiStats/Makefile
===================================================================
--- trunk/SophyaLib/HiStats/Makefile	(revision 1364)
+++ trunk/SophyaLib/HiStats/Makefile	(revision 1371)
@@ -3,7 +3,7 @@
 all: $(LIB)libHiStats.a
 clean:
-	rm -f $(OBJ)hisprof.o $(OBJ)histinit.o $(OBJ)histos.o $(OBJ)histos2.o $(OBJ)ntuple.o $(OBJ)xntuple.o
+	rm -f $(OBJ)hisprof.o $(OBJ)histinit.o $(OBJ)histos.o $(OBJ)histos2.o $(OBJ)ntupintf.o $(OBJ)ntuple.o $(OBJ)xntuple.o
 	rm -f $(LIB)libHiStats.a
-$(LIB)libHiStats.a : $(OBJ)hisprof.o $(OBJ)histinit.o $(OBJ)histos.o $(OBJ)histos2.o $(OBJ)ntuple.o $(OBJ)xntuple.o
+$(LIB)libHiStats.a : $(OBJ)hisprof.o $(OBJ)histinit.o $(OBJ)histos.o $(OBJ)histos2.o $(OBJ)ntupintf.o $(OBJ)ntuple.o $(OBJ)xntuple.o
 	$(ARCXX) $(ARCXXFLAGS) $@ $?
 ifeq ($(CXX),cxx)
@@ -50,5 +50,5 @@
  $(INC)ndatablock.h \
  $(INC)utilarr.h histos2.h hisprof.h ntuple.h \
- $(INC)ntupintf.h xntuple.h
+ ntupintf.h xntuple.h
 $(OBJ)histos.o: histos.cc $(INC)machdefs.h histos.h \
  $(INC)objfio.h \
@@ -89,4 +89,6 @@
  $(INC)ndatablock.h \
  $(INC)utilarr.h
+$(OBJ)ntupintf.o: ntupintf.cc ntupintf.h \
+ $(INC)machdefs.h
 $(OBJ)ntuple.o: ntuple.cc $(INC)strutil.h \
  $(INC)perrors.h \
@@ -96,6 +98,5 @@
  $(INC)anydataobj.h \
  $(INC)ppersist.h \
- $(INC)gnumd5.h \
- $(INC)ntupintf.h \
+ $(INC)gnumd5.h ntupintf.h \
  $(INC)dvlist.h \
  $(INC)mutyv.h
@@ -104,6 +105,5 @@
  $(INC)pexceptions.h \
  $(INC)gnumd5.h \
- $(INC)perrors.h xntuple.h \
- $(INC)ntupintf.h \
+ $(INC)perrors.h xntuple.h ntupintf.h \
  $(INC)dvlist.h \
  $(INC)objfio.h \
Index: trunk/SophyaLib/HiStats/ntupintf.cc
===================================================================
--- trunk/SophyaLib/HiStats/ntupintf.cc	(revision 1371)
+++ trunk/SophyaLib/HiStats/ntupintf.cc	(revision 1371)
@@ -0,0 +1,189 @@
+
+#include "ntupintf.h"
+#include <stdlib.h>
+#include <stdio.h>
+
+/*!
+   \class SOPHYA::NTupleInterface
+   \ingroup HiStats
+   Interface class (pure virtual) defining generic operations on NTuple,
+   a 2-dimensional data set with named columns
+*/
+
+//++
+// Class	NTupleInterface
+// Lib	Outils++ 
+// include	ntupintf.h
+//
+//	Interface permettant de construire des vues NTuples (tableau lignes-colonnes) 
+//	pour differents objets. Toutes les methodes ont une implementation par defaut. 
+//--
+
+//++
+// NTupleInterface()
+//	Constructeur.
+// virtual ~NTupleInterface()
+//	Destructeur
+// uint_4  NbLines() const 
+//	Nombre de lignes du tableau
+// uint_4  NbColumns() const 
+//	Nombre de colonnes du tableau
+// r_8 *  GetLineD(int n) const
+//	Renvoie un tableau avec le contenu de la ligne "n"
+// r_8	GetCell(int n, int k) const
+//	Renvoie le contenu de la cellule correspondant a la ligne "n"
+//	et colonne "k"
+// r_8  GetCell(int n, string const & nom) const
+//	Renvoie le contenu de la cellule correspondant a la ligne "n"
+//	pour la colonne identifiee par "nom"
+// string  GetCelltoString(int n, int k) const
+//	Renvoie le contenu de la cellule correspondant a la ligne "n"
+//	et colonne "k", sous forme de chaine de caracteres.
+// string  GetCell(int n, string const & nom) const
+//	Renvoie le contenu de la cellule correspondant a la ligne "n"
+//	pour la colonne identifiee par "nom", sous forme de chaine de caracteres.
+// void GetMinMax(int k, double& min, double& max)  const
+//	Renvoie la valeur mini et maxi de la colonne numero "k"
+// void	GetMinMax(string const & nom, double& min, double& max)
+//	Renvoie la valeur mini et maxi de la colonne identifiee par "nom"
+// int  ColumnIndex(string const & nom)  const
+//	Renvoie le numero de colonne identifiee par "nom". Renvoie -1 (negatif)
+//	si colonne "nom" n'existe pas.
+// string ColumnName(int k) const
+//	Renvoie le nom de la colonne numero "k"
+// string VarList_C(const char* nomx=NULL) const
+//	Renvoie une chaine avec les declarations "C" pour les
+//	variables avec les noms de colonnes
+// string  LineHeaderToString()
+//	Renvoie une chaine avec les noms de colonnes, utilisables pour l'impression
+// string  LineToString(int n)
+//	Renvoie une chaine avec le contenu de la ligne "n", utilisable pour l'impression
+//--
+
+/* --Methode-- */
+NTupleInterface::NTupleInterface()
+{
+}
+/* --Methode-- */
+NTupleInterface::~NTupleInterface()
+{
+}
+
+//! Retuns the number of lines (rows) of the data set
+/* --Methode-- */
+uint_4 NTupleInterface::NbLines() const
+{
+return(0);
+}
+
+//! Retuns the number of columns of the data set 
+/* --Methode-- */
+uint_4 NTupleInterface::NbColumns() const
+{
+return(0);
+}
+
+//! Retuns the content of a given line 
+/*! 
+   An array (double *) containg all cells of a given line, converted to 
+   float values is returned
+*/
+/* --Methode-- */
+r_8 * NTupleInterface::GetLineD(int ) const
+{
+return(NULL);
+}
+
+//! Returns the content of a given cell
+/*!
+    The cell is identified by the line and column number. Its content is
+    converted to a floating value.
+*/
+/* --Methode-- */
+r_8 NTupleInterface::GetCell(int , int ) const
+{
+return(0.);
+}
+
+//! Returns the content of a given cell
+/*!
+    The cell is identified by the line number and column name. Its content is
+    converted to a floating value.
+*/
+/* --Methode-- */
+r_8 NTupleInterface::GetCell(int n, string const & nom) const
+{
+return(GetCell(n, ColumnIndex(nom)));
+}
+
+//! Returns the string representation of a given cell
+/*!
+    The cell is identified by the line and column number. Its content is
+    converted to a string.
+*/
+string NTupleInterface::GetCelltoString(int n, int k) const
+{
+char strg[64];
+//sprintf(strg,"C%d= %g\n", k, GetCell(n, k));
+sprintf(strg,"%g\n", GetCell(n, k));
+return(strg);
+}
+
+//! Returns the string representation of a given cell
+/*!
+    The cell is identified by the line number and column name. Its content is
+    converted to a string.
+*/
+string NTupleInterface::GetCelltoString(int n, string const & nom) const
+{
+return(GetCelltoString(n, ColumnIndex(nom)));
+}
+
+//! Returns the minimum and maximum values for a given column
+/* --Methode-- */
+void NTupleInterface::GetMinMax(int , double& min, double& max)   const
+{
+min = max = 0.;
+}
+
+/* --Methode-- */
+//! Returns the minimum and maximum values for a given named column
+void NTupleInterface::GetMinMax(string const & , double& min, double& max)   const
+{
+min = max = 0.;
+}
+
+/* --Methode-- */
+//! Returns the column index given the column name
+int NTupleInterface::ColumnIndex(string const & nom)  const
+{
+return(-1);
+}
+
+/* --Methode-- */
+//! Returns the column name corresponding to a column index.
+string NTupleInterface::ColumnName(int k) const
+{
+return("");
+}
+
+/* --Methode-- */
+string NTupleInterface::VarList_C(const char*) const
+{
+return("");
+}
+
+/* --Methode-- */
+string NTupleInterface::LineHeaderToString() const
+{
+return("");
+}
+
+/* --Methode-- */
+string NTupleInterface::LineToString(int ) const
+{
+return("");
+}
+
+
+
Index: trunk/SophyaLib/HiStats/ntupintf.h
===================================================================
--- trunk/SophyaLib/HiStats/ntupintf.h	(revision 1371)
+++ trunk/SophyaLib/HiStats/ntupintf.h	(revision 1371)
@@ -0,0 +1,51 @@
+// This may look like C code, but it is really -*- C++ -*-
+// Interface de type NTuple           Reza 05/99
+// LAL-IN2P3/CNRS               CEA-DAPNIA      
+
+#ifndef NTUPLEINTERFACE_H_SEEN
+#define NTUPLEINTERFACE_H_SEEN
+
+#include "machdefs.h"
+#include <string>
+
+namespace SOPHYA {  
+
+class NTupleInterface {
+public:
+  			NTupleInterface(); 
+  virtual		~NTupleInterface();
+// Nombre de lignes du NTuple  (Nb d'entrees)  
+  virtual uint_4        NbLines() const ;
+// Nombre de colonnes (nb de variables)
+  virtual uint_4        NbColumns() const ;
+// La ligne numero n, sous forme d'un tableau de double
+  virtual r_8 *         GetLineD(int n) const ;
+// Cellule de la ligne n, colonne k
+  virtual r_8		GetCell(int n, int k) const ;
+// Cellule de la ligne n, colonne nom
+  virtual r_8		GetCell(int n, string const & nom) const ;
+// Cellule de la ligne n, colonne k, converti en chaine de caracteres
+  virtual string	GetCelltoString(int n, int k) const ;
+// Cellule de la ligne n, colonne nom, converti en chaine de caracteres
+  virtual string	GetCelltoString(int n, string const & nom) const ;
+// Min et Max pour la colonne k
+  virtual void		GetMinMax(int k, double& min, double& max)   const ; 
+// Min et Max pour la colonne nom
+  virtual void		GetMinMax(string const & nom, double& min, double& max)   const ;
+// Numero de colonne pour nom 
+  virtual int           ColumnIndex(string const & nom)  const ;
+// Nom de colonne numero k
+  virtual string        ColumnName(int k) const;
+// Declaration des variables style C
+  virtual string	VarList_C(const char* nomx=NULL) const ;
+// Entete et liste de variable, pouvant servir a l'impression
+  virtual string        LineHeaderToString() const;
+// Contenu de la ligne n, pouvant servir a l'impression
+  virtual string        LineToString(int n) const;  
+};
+
+} // namespace SOPHYA
+
+#endif   /*  NTUPLEINTERFACE_H_SEEN  */
+
+
Index: trunk/SophyaLib/HiStats/ntuple.cc
===================================================================
--- trunk/SophyaLib/HiStats/ntuple.cc	(revision 1364)
+++ trunk/SophyaLib/HiStats/ntuple.cc	(revision 1371)
@@ -10,4 +10,11 @@
 #define LENNAME 8
 #define LENNAME1  (LENNAME+1)
+
+/*!
+   \class SOPHYA::NTuple
+   \ingroup HiStats
+   Simple NTuple class (a Table or 2-D data set) with floating value
+   columns. 
+*/
 
 //++
Index: trunk/SophyaLib/HiStats/objlist.list
===================================================================
--- trunk/SophyaLib/HiStats/objlist.list	(revision 1364)
+++ trunk/SophyaLib/HiStats/objlist.list	(revision 1371)
@@ -3,4 +3,5 @@
 histos.o
 histos2.o
+ntupintf.o
 ntuple.o
 xntuple.o
Index: trunk/SophyaLib/HiStats/xntuple.cc
===================================================================
--- trunk/SophyaLib/HiStats/xntuple.cc	(revision 1364)
+++ trunk/SophyaLib/HiStats/xntuple.cc	(revision 1371)
@@ -13,4 +13,12 @@
 #define MAXLEN 128
 #define BADVAL -1.e19
+
+/*!
+   \class SOPHYA::XNTuple
+   \ingroup HiStats
+   NTuple class (a Table or 2-D data set) with the possibility of having
+   columns with int, float or string type content. In addition, this class
+   can handle large data sets, using swap space on disk.
+*/
 
 //++
Index: trunk/SophyaLib/NTools/Makefile
===================================================================
--- trunk/SophyaLib/NTools/Makefile	(revision 1364)
+++ trunk/SophyaLib/NTools/Makefile	(revision 1371)
@@ -3,7 +3,7 @@
 all: $(LIB)libNTools.a
 clean:
-	rm -f $(OBJ)cimage.o $(OBJ)cspline.o $(OBJ)datatypes.o $(OBJ)dates.o $(OBJ)difeq.o $(OBJ)dynccd.o $(OBJ)fct1dfit.o $(OBJ)fct2dfit.o $(OBJ)fftmserver.o $(OBJ)fftpserver.o $(OBJ)fftserver.o $(OBJ)fftservintf.o $(OBJ)generaldata.o $(OBJ)generalfit.o $(OBJ)imageop.o $(OBJ)integ.o $(OBJ)median.o $(OBJ)ntoolsinit.o $(OBJ)ntupintf.o $(OBJ)objfitter.o $(OBJ)perandom.o $(OBJ)poly.o $(OBJ)rk4cdifeq.o $(OBJ)simplesort.o $(OBJ)tabmath.o $(OBJ)datime.o $(OBJ)fftmayer_r4.o $(OBJ)fftmayer_r8.o $(OBJ)fftpackc.o $(OBJ)matxop.o $(OBJ)nbmath.o $(OBJ)nbtri.o
+	rm -f $(OBJ)cimage.o $(OBJ)cspline.o $(OBJ)datatypes.o $(OBJ)dates.o $(OBJ)difeq.o $(OBJ)dynccd.o $(OBJ)fct1dfit.o $(OBJ)fct2dfit.o $(OBJ)fftmserver.o $(OBJ)fftpserver.o $(OBJ)fftservintf.o $(OBJ)generaldata.o $(OBJ)generalfit.o $(OBJ)imageop.o $(OBJ)integ.o $(OBJ)median.o $(OBJ)ntoolsinit.o $(OBJ)objfitter.o $(OBJ)perandom.o $(OBJ)poly.o $(OBJ)rk4cdifeq.o $(OBJ)simplesort.o $(OBJ)tabmath.o $(OBJ)datime.o $(OBJ)fftmayer_r4.o $(OBJ)fftmayer_r8.o $(OBJ)fftpackc.o $(OBJ)matxop.o $(OBJ)nbmath.o $(OBJ)nbtri.o
 	rm -f $(LIB)libNTools.a
-$(LIB)libNTools.a : $(OBJ)cimage.o $(OBJ)cspline.o $(OBJ)datatypes.o $(OBJ)dates.o $(OBJ)datime.o $(OBJ)difeq.o $(OBJ)dynccd.o $(OBJ)fct1dfit.o $(OBJ)fct2dfit.o $(OBJ)fftmayer_r4.o $(OBJ)fftmayer_r8.o $(OBJ)fftmserver.o $(OBJ)fftpackc.o $(OBJ)fftpserver.o $(OBJ)fftserver.o $(OBJ)fftservintf.o $(OBJ)generaldata.o $(OBJ)generalfit.o $(OBJ)integ.o $(OBJ)matxop.o $(OBJ)median.o $(OBJ)nbmath.o $(OBJ)nbtri.o $(OBJ)ntoolsinit.o $(OBJ)ntupintf.o $(OBJ)objfitter.o $(OBJ)perandom.o $(OBJ)poly.o $(OBJ)rk4cdifeq.o $(OBJ)simplesort.o $(OBJ)tabmath.o
+$(LIB)libNTools.a : $(OBJ)cimage.o $(OBJ)cspline.o $(OBJ)datatypes.o $(OBJ)dates.o $(OBJ)datime.o $(OBJ)difeq.o $(OBJ)dynccd.o $(OBJ)fct1dfit.o $(OBJ)fct2dfit.o $(OBJ)fftmayer_r4.o $(OBJ)fftmayer_r8.o $(OBJ)fftmserver.o $(OBJ)fftpackc.o $(OBJ)fftpserver.o $(OBJ)fftservintf.o $(OBJ)generaldata.o $(OBJ)generalfit.o $(OBJ)integ.o $(OBJ)matxop.o $(OBJ)median.o $(OBJ)nbmath.o $(OBJ)nbtri.o $(OBJ)ntoolsinit.o $(OBJ)objfitter.o $(OBJ)perandom.o $(OBJ)poly.o $(OBJ)rk4cdifeq.o $(OBJ)simplesort.o $(OBJ)tabmath.o
 	$(ARCXX) $(ARCXXFLAGS) $@ $?
 ifeq ($(CXX),cxx)
@@ -82,6 +82,7 @@
  $(INC)gnumd5.h \
  $(INC)ndatablock.h \
- $(INC)utilarr.h generaldata.h ntupintf.h \
- poly.h peida.h $(INC)utils.h \
+ $(INC)utilarr.h generaldata.h \
+ $(INC)ntupintf.h poly.h peida.h \
+ $(INC)utils.h \
  $(INC)perrors.h fmath.h nbconst.h tabmath.h
 $(OBJ)fct2dfit.o: fct2dfit.cc $(INC)machdefs.h \
@@ -98,6 +99,7 @@
  $(INC)gnumd5.h \
  $(INC)ndatablock.h \
- $(INC)utilarr.h generaldata.h ntupintf.h \
- poly.h peida.h $(INC)utils.h \
+ $(INC)utilarr.h generaldata.h \
+ $(INC)ntupintf.h poly.h peida.h \
+ $(INC)utils.h \
  $(INC)perrors.h fmath.h nbconst.h tabmath.h \
  simps2d.h
@@ -132,19 +134,4 @@
  $(INC)utilarr.h \
  $(INC)tvector.h fftpackc.h
-$(OBJ)fftserver.o: fftserver.cc fftserver.h \
- $(INC)tvector.h \
- $(INC)tmatrix.h \
- $(INC)machdefs.h \
- $(INC)tarray.h \
- $(INC)basarr.h \
- $(INC)anydataobj.h \
- $(INC)mutyv.h \
- $(INC)dvlist.h \
- $(INC)objfio.h \
- $(INC)ppersist.h \
- $(INC)pexceptions.h \
- $(INC)gnumd5.h \
- $(INC)ndatablock.h \
- $(INC)utilarr.h
 $(OBJ)fftservintf.o: fftservintf.cc fftservintf.h \
  $(INC)machdefs.h \
@@ -177,6 +164,7 @@
  $(INC)gnumd5.h \
  $(INC)ndatablock.h \
- $(INC)utilarr.h generaldata.h ntupintf.h \
- poly.h peida.h $(INC)utils.h \
+ $(INC)utilarr.h generaldata.h \
+ $(INC)ntupintf.h poly.h peida.h \
+ $(INC)utils.h \
  $(INC)perrors.h fmath.h
 $(OBJ)generalfit.o: generalfit.cc $(INC)machdefs.h \
@@ -193,6 +181,7 @@
  $(INC)gnumd5.h \
  $(INC)ndatablock.h \
- $(INC)utilarr.h generaldata.h ntupintf.h \
- poly.h peida.h $(INC)utils.h \
+ $(INC)utilarr.h generaldata.h \
+ $(INC)ntupintf.h poly.h peida.h \
+ $(INC)utils.h \
  $(INC)perrors.h fmath.h \
  $(INC)sopemtx.h
@@ -210,6 +199,7 @@
  $(INC)gnumd5.h \
  $(INC)ndatablock.h \
- $(INC)utilarr.h generaldata.h ntupintf.h \
- poly.h peida.h $(INC)utils.h \
+ $(INC)utilarr.h generaldata.h \
+ $(INC)ntupintf.h poly.h peida.h \
+ $(INC)utils.h \
  $(INC)perrors.h fmath.h
 $(OBJ)median.o: median.cc
@@ -231,9 +221,8 @@
  $(INC)dvlist.h \
  $(INC)ndatablock.h \
- $(INC)utilarr.h generaldata.h ntupintf.h \
- cimage.h $(INC)fioarr.h tabmath.h nbconst.h \
- dates.h datime.h
-$(OBJ)ntupintf.o: ntupintf.cc ntupintf.h \
- $(INC)machdefs.h
+ $(INC)utilarr.h generaldata.h \
+ $(INC)ntupintf.h cimage.h \
+ $(INC)fioarr.h tabmath.h nbconst.h dates.h \
+ datime.h
 $(OBJ)objfitter.o: objfitter.cc objfitter.h \
  $(INC)machdefs.h \
@@ -259,5 +248,5 @@
  $(INC)histos2.h \
  $(INC)hisprof.h generalfit.h generaldata.h \
- ntupintf.h poly.h peida.h
+ $(INC)ntupintf.h poly.h peida.h
 $(OBJ)perandom.o: perandom.cc $(INC)machdefs.h \
  $(INC)pexceptions.h perandom.h \
Index: trunk/SophyaLib/NTools/dates.h
===================================================================
--- trunk/SophyaLib/NTools/dates.h	(revision 1364)
+++ trunk/SophyaLib/NTools/dates.h	(revision 1371)
@@ -1,2 +1,6 @@
+//   Gestion de dates 
+//        E. Aubourg       1995-2000
+// DAPNIA/SPP (Saclay) / CEA    LAL - IN2P3/CNRS  (Orsay)
+
 #ifndef DATES_SEEN
 #define DATES_SEEN
@@ -7,8 +11,10 @@
 #include "pexceptions.h"
 
+// namespace SOPHYA {  
+
 class TimeZone;
 // <summary> Dates, conversions, operations </summary>
 // Classe generale de date et heure, operation, TU/TL ...
-class Date EXC_AWARE {
+class Date  {
 public:
   // Enumerations jours et mois
@@ -122,5 +128,5 @@
 // <summary> Gestion des fuseaux horaires </summary>
 // Classe de gestion des fuseaux horaires. Tient compte des heures d'ete.
-class TimeZone EXC_AWARE {
+class TimeZone  {
 public:
   char code[4];
@@ -144,3 +150,5 @@
 extern TimeZone* gTimeZone;
 
+// }  namespace SOPHYA
+
 #endif
Index: trunk/SophyaLib/NTools/difeq.h
===================================================================
--- trunk/SophyaLib/NTools/difeq.h	(revision 1364)
+++ trunk/SophyaLib/NTools/difeq.h	(revision 1371)
@@ -1,3 +1,7 @@
 // This may look like C code, but it is really -*- C++ -*-
+//  Simple differential equation solver 
+//        E. Aubourg 1996-
+// DAPNIA/SPP (Saclay) / CEA    LAL - IN2P3/CNRS  (Orsay)
+
 #ifndef DIFEQ_H_SEEN
 #define DIFEQ_H_SEEN
@@ -15,5 +19,5 @@
 // On resoud de facon generale un systeme de n equations differentielles,
 // donnant les derivees fpi de n fonctions fi.
-class DiffEqFunction EXC_AWARE {
+class DiffEqFunction  {
 public:
   // Constructeur. n = nombre de fonctions dans le systeme
@@ -155,5 +159,5 @@
 // Beaucoup de fonctions renvoient l'objet pour pouvoir faire une
 // notation chainee s.Step(...).Start(...).Solve(...)
-class DiffEqSolver EXC_AWARE {
+class DiffEqSolver  {
 public:
   // Constructeurs. L'equadif est donnee sous forme de DiffEqFunction.
Index: trunk/SophyaLib/NTools/fftpserver.cc
===================================================================
--- trunk/SophyaLib/NTools/fftpserver.cc	(revision 1364)
+++ trunk/SophyaLib/NTools/fftpserver.cc	(revision 1371)
@@ -6,6 +6,8 @@
 
 /*! 
-\class SOPHYA::FFTPackServer
-A class that calculates Fourier transforms forwards and backwards.
+  \class SOPHYA::FFTPackServer
+  \ingroup NTools
+  An implementation of FFTServerInterface based on fftpack, for 
+  one dimensional arrays.
 
 The class calls the c library ``fftpack'', which is accessible and documented
@@ -23,45 +25,4 @@
 */
 
-/* \fn virtual void FFTServer::fftf(int l, r_4* inout)
-  \param l length of array
-  \param inout input array /output forward FFT (original array destroyed)
-*/
-/*! \fn virtual void FFTServer::fftb(int l, r_4* inout)
-  \param l length of array
-  \param inout input array /output backward FFT (original array destroyed)
-*/
-/* \fn virtual void FFTServer::fftf(int l, r_8* inout)
-  \param l length of array
-  \param inout input array /output forward FFT (original array destroyed)
-  \param inout input/output array (original array destroyed)
-*/
-/* \fn virtual void FFTServer::fftb(int l, r_8* inout)
-  \param l length of array
-  \param inout input array /output backward FFT(original array destroyed)
-*/
-/*\fn  virtual void FFTServer::fftf(int l, complex<r_4>* inout)
-  \param l length of array
-  \param inout input array /output forward FFT (original array destroyed)
-*/
-/* \fn virtual void FFTServer::fftb(int l, complex<r_4>* inout)
-  \param l length of array
-  \param inout input array /output backward FFT (original array destroyed)
-*/
-/* \fn virtual void FFTServer::fftf(int l, complex<r_8>* inout)
-  \param l length of array
-  \param inout input array /output forward FFT (original array destroyed)
-*/
-/* \fn virtual void FFTServer::fftb(int l, complex<r_8>* inout)
-  \param l length of array
-  \param inout input array /output backward FFT(original array destroyed)
-*/
-/*\fn  virtual void FFTServer::fftf(Vector& in, Vector& out)
-  \param in input array
-  \param out forward FFT
-*/
-/* \fn virtual void FFTServer::fftb(Vector& in, Vector& out)
-  \param in input array
-  \param out backward FFT
-*/
 
 FFTPackServer::FFTPackServer()
Index: trunk/SophyaLib/NTools/fftpserver.h
===================================================================
--- trunk/SophyaLib/NTools/fftpserver.h	(revision 1364)
+++ trunk/SophyaLib/NTools/fftpserver.h	(revision 1371)
@@ -1,2 +1,6 @@
+//   FFT (Fast Fourier Transform) Server based on FFTPack
+//        R. Ansari     1999-2000
+// DAPNIA/SPP (Saclay) / CEA    LAL - IN2P3/CNRS  (Orsay)
+
 #ifndef  FFTPServer_H_SEEN
 #define  FFTPServer_H_SEEN
Index: trunk/SophyaLib/NTools/fftserver.cc
===================================================================
--- trunk/SophyaLib/NTools/fftserver.cc	(revision 1364)
+++ 	(revision )
@@ -1,204 +1,0 @@
-#include "fftserver.h"
-#include <iostream.h>
-
-extern "C" {
-  int rffti_(int *n, float *wsave);             //fftpack functions
-  int rfftf_(int *n, float *r__, float *wsave);
-  int rfftb_(int *n, float *r__, float *wsave);
-  int dffti_(int *n, double *wsave);
-  int dfftf_(int *n, double *r__, double *wsave);
-  int dfftb_(int *n, double *r__, double *wsave);
-  int cffti_(int *n, float *wsave);
-  int cfftf_(int *n, float *c__, float *wsave);
-  int cfftb_(int *n, float *c__, float *wsave);
-  int cdffti_(int *n, double *wsave);
-  int cdfftf_(int *n, double *c__, double *wsave);
-  int cdfftb_(int *n, double *c__, double *wsave);
-           }
-
-FFTServer::FFTServer()
-{
-  sz_rfft = 0;     //the working array and its size for the different
-  ws_rfft = NULL;  //possible numerical types
-  sz_cfft = 0;
-  ws_cfft = NULL;
-  sz_cdfft = 0;
-  ws_cdfft = NULL;
-}
-
-FFTServer::~FFTServer()
-{
-if (ws_rfft) delete[] ws_rfft;
-if (ws_cfft) delete[] ws_cfft;
-if (ws_cdfft) delete[] ws_cdfft;
-}
-
-void FFTServer::checkint_rfft(int l)
-{
-  if (sz_rfft == l) return;       //checkint functions check and reallocate
-                                  //memory for the work arrays when performing
-  if (ws_rfft) delete[] ws_rfft;  //a transform
-  sz_rfft = l;
-  ws_rfft = new float[2*l+15];
-  rffti_(&l, ws_rfft);
-}
-
-void FFTServer::checkint_cfft(int l)
-{
-  if (sz_cfft == l) return;
-
-  if (ws_cfft) delete[] ws_cfft;
-  sz_cfft = l;
-  ws_cfft = new float[4*l+15];
-  cffti_(&l, ws_cfft);
-}
-
-void FFTServer::checkint_dfft(int l)
-{
-  if (sz_dfft == l) return;
-
-  if (ws_dfft) delete[] ws_dfft;
-  sz_dfft = l;
-  ws_dfft = new double[2*l+15];
-  dffti_(&l, ws_dfft);
-}
-
-void FFTServer::checkint_cdfft(int l)
-{
-  if (sz_cdfft == l) return;
-
-  if (ws_cdfft) delete[] ws_cdfft;
-  sz_cdfft = l;
-  ws_cdfft = new double[4*l+15];
-  cdffti_(&l, ws_cdfft);
-}
-
-/* In general forward transformations are resorted since fftpack functions
-   return inverse transformations */
-
-void FFTServer::fftf(int l, float* inout)
-{
-  checkint_rfft(l);
-  rfftf_(&l, inout, ws_rfft);
-  for (int k= 2;k<=(l+1)/2;k++) inout[2*k-2]=-inout[2*k-2];
-}
-
-void FFTServer::fftf(int l, double* inout)
-{
-  checkint_dfft(l);
-  dfftf_(&l, inout, ws_dfft);
-  for (int k= 2;k<=(l+1)/2;k++) inout[2*k-2]=-inout[2*k-2];
-}
-
-void FFTServer::fftf(int l, complex<float>* inout)
-{
-  checkint_cfft(l);
-  float* foo = new float[2*l];
-  int i;
-  for (i=0;i<l;i++){
-    foo[2*i]=inout[i].real();
-    foo[2*i+1]=inout[i].imag();
-  }
-  cfftf_(&l, foo, ws_cfft);
-  inout[0]=complex<float> (foo[0],foo[1]);
-  for (i=1;i<l;i++) inout[l-i]= complex<float> (foo[2*i], foo[2*i+1]);
-  delete[] foo;
-}
-
-void FFTServer::fftf(int l, complex<double>* inout)
-{
-  checkint_cdfft(l);
-  double* foo=new double[2*l];
-  int i;
-  for (i=0;i<l;i++){
-    foo[2*i]=inout[i].real();
-    foo[2*i+1]=inout[i].imag();
-  }
-  cdfftf_(&l, foo, ws_cdfft);
-  inout[0]=complex<double> (foo[0],foo[1]);
-  for (i=1;i<l;i++) {
-    inout[l-i]= complex<double> (foo[2*i],foo[2*i+1]);
-  }
-  delete[] foo;
-}
-
-void FFTServer::fftb(int l, float* inout)
-{
-  checkint_rfft(l);
-  rfftf_(&l, inout, ws_rfft);
-}
-
-void FFTServer::fftb(int l, double* inout)
-{
-  checkint_dfft(l);
-  dfftf_(&l, inout, ws_dfft);
-}
-
-void FFTServer::fftb(int l, complex<float>* inout)
-{
-  checkint_cfft(l);
-  float* foo = new float[2*l];
-  int i;
-  for (i=0;i<l;i++){
-    foo[2*i]=inout[i].real();
-    foo[2*i+1]=inout[i].imag();
-  }
-  cfftf_(&l, foo, ws_cfft);
-  for (i=0;i<l;i++) inout[i]=complex<float> (foo[2*i],foo[2*i+1]);
-  delete[] foo;
-}
-
-void FFTServer::fftb(int l, complex<double>* inout)
-{
-  checkint_cdfft(l);
-  double* foo = new double[2*l];
-  int i;
-  for (i=0;i<l;i++){
-    foo[2*i]=inout[i].real();
-    foo[2*i+1]=inout[i].imag();
-  }
-  cdfftf_(&l, foo, ws_cdfft);
-  for (i=0;i<l;i++) inout[i]=complex<double> (foo[2*i],foo[2*i+1]);
-  delete[] foo;
-}
-
-void FFTServer::fftf(Vector& in, Vector& out)
-{
-  int l = in.NElts();
-/* ----- Si c'etait un Vector<float> on aurait ecrit comme ca 
-   Pour le moment Vector est double, on passe donc par un tableau 
-   intermediare
-// La transformee sur le tableau de flaot se fait en place,
-// on utilise donc out comme in-out
-  out = in;
-  fftf_float(l, out.Data() );
-  ------------------------------------------------------------- */
-  float * inout = new float[l];
-  int i;
-  for(i=0; i<l; i++) inout[i] = in(i);
-  fftf(l, inout);
-  out.Realloc(l);
-  for(i=0; i<l; i++) out(i) = inout[i];
-  delete[] inout;
-}
-
-void FFTServer::fftb(Vector& in, Vector& out)
-{
-  int l = in.NElts();
-/* ----- Si c'etait un Vector<float> on aurait ecrit comme ca 
-   Pour le moment Vector est double, on passe donc par un tableau 
-   intermediare
-// La transformee sur le tableau de flaot se fait en place,
-// on utilise donc out comme in-out
-  out = in;
-  fftf_float(l, out.Data() );
-  ------------------------------------------------------------- */
-  float * inout = new float[l];
-  int i;
-  for(i=0; i<l; i++) inout[i] = in(i);
-  fftb(l, inout);
-  out.Realloc(l);
-  for(i=0; i<l; i++) out(i) = inout[i];
-  delete[] inout;
-}
-
Index: trunk/SophyaLib/NTools/fftserver.h
===================================================================
--- trunk/SophyaLib/NTools/fftserver.h	(revision 1364)
+++ 	(revision )
@@ -1,103 +1,0 @@
-#ifndef  FFTServ_H_SEEN
-#define  FFTServ_H_SEEN
-
-#include <complex>
-#include "tvector.h"
-
-class FFTServer{
- public:
-  FFTServer();
-  virtual ~FFTServer();
-  virtual void fftf(int l, float* inout);
-  virtual void fftb(int l, float* inout);
-  virtual void fftf(int l, double* inout);
-  virtual void fftb(int l, double* inout);
-  virtual void fftf(int l, complex<float>* inout);
-  virtual void fftb(int l, complex<float>* inout);
-  virtual void fftf(int l, complex<double>* inout);
-  virtual void fftb(int l, complex<double>* inout);
-  virtual void fftf(Vector& in, Vector& out);
-  virtual void fftb(Vector& in, Vector& out);
-
- protected:
-  virtual void checkint_rfft(int l);
-  virtual void checkint_dfft(int l);
-  virtual void checkint_cfft(int l);
-  virtual void checkint_cdfft(int l);
-
-  int sz_rfft;
-  float* ws_rfft;
-
-  int sz_cfft;
-  float* ws_cfft;
-
-  int sz_dfft;
-  double* ws_dfft;
-
-  int sz_cdfft;
-  double* ws_cdfft;
-};
-#endif
-
-/*! \class FFTServer
- \brief An FFT server
-
-A class that calculates Fourier transforms forwards and backwards.
-
-The class calls the c library ``fftpack'', which is accessible and documented
-at http://www.netlib.org/fftpack/.  However, the class functions do not
-necessarily correspond with the equivalent fftpack function.  For example,
-fftpack "forward" transformations are in fact inverse fourier transformations.
-Otherwise, the output is in the fftpack format.
-
-Complex input must be entered using the <complex> template.  Otherwise,
-all input is assumed to be real.
-
-Due to the way that fftpack manages
-its work arrays, an object can run faster if the length of the input arrays
-does not change.  For example, if you need to do a series of FFT's
-of differing length, it may be more efficient to create an fftserver object
-for each length.
-*/
-
-/*! \fn virtual void FFTServer::fftf(int l, float* inout)
-  \param l length of array
-  \param inout input array /output forward FFT (original array destroyed)
-*/
-/*! \fn virtual void FFTServer::fftb(int l, float* inout)
-  \param l length of array
-  \param inout input array /output backward FFT (original array destroyed)
-*/
-/*! \fn virtual void FFTServer::fftf(int l, double* inout)
-  \param l length of array
-  \param inout input array /output forward FFT (original array destroyed)
-  \param inout input/output array (original array destroyed)
-*/
-/*! \fn virtual void FFTServer::fftb(int l, double* inout)
-  \param l length of array
-  \param inout input array /output backward FFT(original array destroyed)
-*/
-/*!\fn  virtual void FFTServer::fftf(int l, complex<float>* inout)
-  \param l length of array
-  \param inout input array /output forward FFT (original array destroyed)
-*/
-/*! \fn virtual void FFTServer::fftb(int l, complex<float>* inout)
-  \param l length of array
-  \param inout input array /output backward FFT (original array destroyed)
-*/
-/*! \fn virtual void FFTServer::fftf(int l, complex<double>* inout)
-  \param l length of array
-  \param inout input array /output forward FFT (original array destroyed)
-*/
-/*! \fn virtual void FFTServer::fftb(int l, complex<double>* inout)
-  \param l length of array
-  \param inout input array /output backward FFT(original array destroyed)
-*/
-/*!\fn  virtual void FFTServer::fftf(Vector& in, Vector& out)
-  \param in input array
-  \param out forward FFT
-*/
-/*! \fn virtual void FFTServer::fftb(Vector& in, Vector& out)
-  \param in input array
-  \param out backward FFT
-*/
Index: trunk/SophyaLib/NTools/fftservintf.cc
===================================================================
--- trunk/SophyaLib/NTools/fftservintf.cc	(revision 1364)
+++ trunk/SophyaLib/NTools/fftservintf.cc	(revision 1371)
@@ -2,4 +2,11 @@
 
 
+/*!
+  \class SOPHYA::FFTServerInterface
+  \ingroup NTools
+  Defines the interface for FFT (Fast Fourier Transform) operations.
+  Warning: The interface is likely to be changed and simplified,
+  using only SOPHYA::TArray Objects.
+*/
 
 /* --Methode-- */
Index: trunk/SophyaLib/NTools/fftservintf.h
===================================================================
--- trunk/SophyaLib/NTools/fftservintf.h	(revision 1364)
+++ trunk/SophyaLib/NTools/fftservintf.h	(revision 1371)
@@ -1,2 +1,6 @@
+//   FFT (Fast Fourier Transform) Server Interface
+//        R. Ansari     1999-2000
+// DAPNIA/SPP (Saclay) / CEA    LAL - IN2P3/CNRS  (Orsay)
+
 #ifndef  FFTServerIntf_H_SEEN
 #define  FFTServerIntf_H_SEEN
Index: trunk/SophyaLib/NTools/integ.h
===================================================================
--- trunk/SophyaLib/NTools/integ.h	(revision 1364)
+++ trunk/SophyaLib/NTools/integ.h	(revision 1371)
@@ -1,8 +1,6 @@
 // This may look like C code, but it is really -*- C++ -*-
-//
-// integ.h
-//
-// $Id: integ.h,v 1.6 1999-11-05 13:08:29 ansari Exp $
-//
+// Simple integrator 
+//        E. Aubourg        1996-...
+// DAPNIA/SPP (Saclay) / CEA    LAL - IN2P3/CNRS  (Orsay)
 
 #ifndef INTEG_H_SEEN
@@ -17,5 +15,5 @@
 class GeneralFunction;
 
-class Integrator EXC_AWARE {
+class Integrator {
 public:
   typedef double(*FUNC)(double);
Index: trunk/SophyaLib/NTools/ntupintf.cc
===================================================================
--- trunk/SophyaLib/NTools/ntupintf.cc	(revision 1364)
+++ 	(revision )
@@ -1,150 +1,0 @@
-
-#include "ntupintf.h"
-#include <stdlib.h>
-#include <stdio.h>
-
-//++
-// Class	NTupleInterface
-// Lib	Outils++ 
-// include	ntupintf.h
-//
-//	Interface permettant de construire des vues NTuples (tableau lignes-colonnes) 
-//	pour differents objets. Toutes les methodes ont une implementation par defaut. 
-//--
-
-//++
-// NTupleInterface()
-//	Constructeur.
-// virtual ~NTupleInterface()
-//	Destructeur
-// uint_4  NbLines() const 
-//	Nombre de lignes du tableau
-// uint_4  NbColumns() const 
-//	Nombre de colonnes du tableau
-// r_8 *  GetLineD(int n) const
-//	Renvoie un tableau avec le contenu de la ligne "n"
-// r_8	GetCell(int n, int k) const
-//	Renvoie le contenu de la cellule correspondant a la ligne "n"
-//	et colonne "k"
-// r_8  GetCell(int n, string const & nom) const
-//	Renvoie le contenu de la cellule correspondant a la ligne "n"
-//	pour la colonne identifiee par "nom"
-// string  GetCelltoString(int n, int k) const
-//	Renvoie le contenu de la cellule correspondant a la ligne "n"
-//	et colonne "k", sous forme de chaine de caracteres.
-// string  GetCell(int n, string const & nom) const
-//	Renvoie le contenu de la cellule correspondant a la ligne "n"
-//	pour la colonne identifiee par "nom", sous forme de chaine de caracteres.
-// void GetMinMax(int k, double& min, double& max)  const
-//	Renvoie la valeur mini et maxi de la colonne numero "k"
-// void	GetMinMax(string const & nom, double& min, double& max)
-//	Renvoie la valeur mini et maxi de la colonne identifiee par "nom"
-// int  ColumnIndex(string const & nom)  const
-//	Renvoie le numero de colonne identifiee par "nom". Renvoie -1 (negatif)
-//	si colonne "nom" n'existe pas.
-// string ColumnName(int k) const
-//	Renvoie le nom de la colonne numero "k"
-// string VarList_C(const char* nomx=NULL) const
-//	Renvoie une chaine avec les declarations "C" pour les
-//	variables avec les noms de colonnes
-// string  LineHeaderToString()
-//	Renvoie une chaine avec les noms de colonnes, utilisables pour l'impression
-// string  LineToString(int n)
-//	Renvoie une chaine avec le contenu de la ligne "n", utilisable pour l'impression
-//--
-
-/* --Methode-- */
-NTupleInterface::NTupleInterface()
-{
-}
-/* --Methode-- */
-NTupleInterface::~NTupleInterface()
-{
-}
-
-/* --Methode-- */
-uint_4 NTupleInterface::NbLines() const
-{
-return(0);
-}
-/* --Methode-- */
-uint_4 NTupleInterface::NbColumns() const
-{
-return(0);
-}
-
-/* --Methode-- */
-r_8 * NTupleInterface::GetLineD(int ) const
-{
-return(NULL);
-}
-
-/* --Methode-- */
-r_8 NTupleInterface::GetCell(int , int ) const
-{
-return(0.);
-}
-
-/* --Methode-- */
-r_8 NTupleInterface::GetCell(int n, string const & nom) const
-{
-return(GetCell(n, ColumnIndex(nom)));
-}
-
-string NTupleInterface::GetCelltoString(int n, int k) const
-{
-char strg[64];
-//sprintf(strg,"C%d= %g\n", k, GetCell(n, k));
-sprintf(strg,"%g\n", GetCell(n, k));
-return(strg);
-}
-
-string NTupleInterface::GetCelltoString(int n, string const & nom) const
-{
-return(GetCelltoString(n, ColumnIndex(nom)));
-}
-
-/* --Methode-- */
-void NTupleInterface::GetMinMax(int , double& min, double& max)   const
-{
-min = max = 0.;
-}
-
-/* --Methode-- */
-void NTupleInterface::GetMinMax(string const & , double& min, double& max)   const
-{
-min = max = 0.;
-}
-
-/* --Methode-- */
-int NTupleInterface::ColumnIndex(string const & nom)  const
-{
-return(-1);
-}
-
-/* --Methode-- */
-string NTupleInterface::ColumnName(int k) const
-{
-return("");
-}
-
-/* --Methode-- */
-string NTupleInterface::VarList_C(const char*) const
-{
-return("");
-}
-
-/* --Methode-- */
-string NTupleInterface::LineHeaderToString() const
-{
-return("");
-}
-
-/* --Methode-- */
-string NTupleInterface::LineToString(int ) const
-{
-return("");
-}
-
-
-
Index: trunk/SophyaLib/NTools/ntupintf.h
===================================================================
--- trunk/SophyaLib/NTools/ntupintf.h	(revision 1364)
+++ 	(revision )
@@ -1,48 +1,0 @@
-// This may look like C code, but it is really -*- C++ -*-
-// Interface de type NTuple           Reza 05/99
-// LAL-IN2P3/CNRS               CEA-DAPNIA      
-
-#ifndef NTUPLEINTERFACE_H_SEEN
-#define NTUPLEINTERFACE_H_SEEN
-
-#include "machdefs.h"
-#include <string>
-
-class NTupleInterface {
-public:
-  			NTupleInterface(); 
-  virtual		~NTupleInterface();
-// Nombre de lignes du NTuple  (Nb d'entrees)  
-  virtual uint_4        NbLines() const ;
-// Nombre de colonnes (nb de variables)
-  virtual uint_4        NbColumns() const ;
-// La ligne numero n, sous forme d'un tableau de double
-  virtual r_8 *         GetLineD(int n) const ;
-// Cellule de la ligne n, colonne k
-  virtual r_8		GetCell(int n, int k) const ;
-// Cellule de la ligne n, colonne nom
-  virtual r_8		GetCell(int n, string const & nom) const ;
-// Cellule de la ligne n, colonne k, converti en chaine de caracteres
-  virtual string	GetCelltoString(int n, int k) const ;
-// Cellule de la ligne n, colonne nom, converti en chaine de caracteres
-  virtual string	GetCelltoString(int n, string const & nom) const ;
-// Min et Max pour la colonne k
-  virtual void		GetMinMax(int k, double& min, double& max)   const ; 
-// Min et Max pour la colonne nom
-  virtual void		GetMinMax(string const & nom, double& min, double& max)   const ;
-// Numero de colonne pour nom 
-  virtual int           ColumnIndex(string const & nom)  const ;
-// Nom de colonne numero k
-  virtual string        ColumnName(int k) const;
-// Declaration des variables style C
-  virtual string	VarList_C(const char* nomx=NULL) const ;
-// Entete et liste de variable, pouvant servir a l'impression
-  virtual string        LineHeaderToString() const;
-// Contenu de la ligne n, pouvant servir a l'impression
-  virtual string        LineToString(int n) const;  
-};
-
-
-#endif   /*  NTUPLEINTERFACE_H_SEEN  */
-
-
Index: trunk/SophyaLib/NTools/objlist.list
===================================================================
--- trunk/SophyaLib/NTools/objlist.list	(revision 1364)
+++ trunk/SophyaLib/NTools/objlist.list	(revision 1371)
@@ -13,5 +13,4 @@
 fftpackc.o
 fftpserver.o
-fftserver.o
 fftservintf.o
 generaldata.o
@@ -23,5 +22,4 @@
 nbtri.o
 ntoolsinit.o
-ntupintf.o
 objfitter.o
 perandom.o
Index: trunk/SophyaLib/NTools/perandom.h
===================================================================
--- trunk/SophyaLib/NTools/perandom.h	(revision 1364)
+++ trunk/SophyaLib/NTools/perandom.h	(revision 1371)
@@ -1,5 +1,6 @@
 // This may look like C code, but it is really -*- C++ -*-
-
 // Nombres aleatoires pour Peida.
+//        C. Magneville   1996-2000
+// DAPNIA/SPP (Saclay) / CEA    LAL - IN2P3/CNRS  (Orsay)
 
 #ifndef PERANDOM_SEEN
@@ -10,4 +11,6 @@
 #include "histos.h"
 #include "nbrandom.h"
+
+namespace SOPHYA {  
 
 class FunRan : public Histo {
@@ -22,5 +25,5 @@
 };
 
-class FunRan2D EXC_AWARE {
+class FunRan2D  {
 public:
 //  typedef r_8 (*Func)(r_8, r_8);
@@ -38,3 +41,5 @@
 };
 
+} // namespace SOPHYA
+
 #endif
Index: trunk/SophyaLib/NTools/rzvect.h
===================================================================
--- trunk/SophyaLib/NTools/rzvect.h	(revision 1364)
+++ 	(revision )
@@ -1,76 +1,0 @@
-// This may look like C code, but it is really -*- C++ -*-
-/*  Classe vecteurs de type non constant (template)     */
-/*                    E. Aubourg, E. Lesquoy            */
-/*        Modifs             R. Ansari 04/95            */
-
-#ifndef RZVECT_SEEN
-#define RZVECT_SEEN
-
-#include "machdefs.h"
-#include "pexceptions.h"
-#include "perrors.h"
-
-template <class T>
-class RzVect EXC_AWARE {
-public:
-                    RzVect(int n, T* data);
-                    RzVect(int n);
-  virtual           ~RzVect();
-  inline int&       NImgRef()         {return nImgRef;}
-  inline int&       Shareable()       {return shareable;}   
-  inline T&         operator[](int i);
-  inline const T&   operator[](int i) const;
-  int               IElem(int k) const;
-  float             FElem(int k) const;
-  double            DElem(int k) const;
-  
-  T*                p;
-  int               nElt;
-  
-private:
-  int           nImgRef;    // Combien d'images font reference au meme RzVect ?
-                                                // Le constructeur le met a *** 1 ***
-                                                // Donc une image doit le changer lorsqu'elle pointe sans allouer.
-  int           shareable;  // Dit si le RzVect peut etre partage. Mis a 0 par exemple si
-                            // le tableau de nombres est en memoire partagee.
-  int           ownTable;   // Dit si le RzVect peut faire delete du tableau.
-};
-
-template <class T>
-inline T& RzVect<T>::operator[](int i)
-{
-  #ifdef RGCHECK
-  if (i<0 || i>=nElt) THROW(rangeCheckErr);
-  #endif
-  return p[i];
-}
-
-template <class T>
-inline const T& RzVect<T>::operator[](int i) const
-{
-  #ifdef RGCHECK
-  if (i<0 || i>=nElt) THROW(rangeCheckErr);
-  #endif
-  return p[i];
-}
-
-template <class T>
-inline int RzVect<T>::IElem(int k) const
-{
-  return (int) (*this)[k];
-}
-
-template <class T>
-inline float RzVect<T>::FElem(int k) const
-{
-  return (float) (*this)[k];
-}
-
-template <class T>
-inline double RzVect<T>::DElem(int k) const
-{
-  return (double) (*this)[k];
-}
-
-#endif
-
Index: trunk/SophyaLib/NTools/simplesort.h
===================================================================
--- trunk/SophyaLib/NTools/simplesort.h	(revision 1364)
+++ trunk/SophyaLib/NTools/simplesort.h	(revision 1371)
@@ -1,5 +1,5 @@
 // This may look like C code, but it is really -*- C++ -*-
 //
-// $Id: simplesort.h,v 1.2 1999-10-21 15:25:52 ansari Exp $
+// $Id: simplesort.h,v 1.3 2001-01-05 17:06:31 ansari Exp $
 //
 
@@ -12,5 +12,7 @@
 #include "peida.h"
 
-class SimpleSort EXC_AWARE {
+namespace SOPHYA {  
+
+class SimpleSort  {
 public:
   SimpleSort(int nElts);
@@ -90,7 +92,5 @@
 }  
 
-
-
-
+} // namespace SOPHYA
 
 #endif // SIMPLESORT_SEEN
Index: trunk/SophyaLib/NTools/tabmath.cc
===================================================================
--- trunk/SophyaLib/NTools/tabmath.cc	(revision 1364)
+++ trunk/SophyaLib/NTools/tabmath.cc	(revision 1371)
@@ -19,5 +19,5 @@
 }
 
-TabFExp* ptabFExp;
+TabFExp* SOPHYA::ptabFExp;
 
 ////////////////////////////////////
@@ -39,3 +39,3 @@
 }
 
-TabFSin* ptabFSin;
+TabFSin* SOPHYA::ptabFSin;
Index: trunk/SophyaLib/NTools/tabmath.h
===================================================================
--- trunk/SophyaLib/NTools/tabmath.h	(revision 1364)
+++ trunk/SophyaLib/NTools/tabmath.h	(revision 1371)
@@ -1,7 +1,15 @@
 // This may look like C code, but it is really -*- C++ -*-
+// Tabulated math functions
+//   E. Aubourg, C. Magneville  1996-2000
+// DAPNIA/SPP (Saclay) / CEA    LAL - IN2P3/CNRS  (Orsay)
+
+#ifndef TABMATH_H_SEEN
+#define TABMATH_H_SEEN
+
 #include <math.h>
 #include "peida.h"
 #include "nbconst.h"
 
+namespace SOPHYA {  
 
 ///////////////////////////////
@@ -9,5 +17,5 @@
 ///////////////////////////////
 
-class TabFExp EXC_AWARE {
+class TabFExp  {
 public:
   TabFExp();
@@ -30,5 +38,5 @@
 ////////////////////////////////////
 
-class TabFSin EXC_AWARE {
+class TabFSin  {
 public:
   TabFSin(int ntab = 0);
@@ -52,2 +60,6 @@
 #define tabFSin(_x_) ((*ptabFSin)(_x_))
 #define tabFCos(_x_) ((*ptabFSin)(_x_+Pis2))
+
+} // namespace SOPHYA
+
+#endif
Index: trunk/SophyaLib/SUtils/datacards.cc
===================================================================
--- trunk/SophyaLib/SUtils/datacards.cc	(revision 1364)
+++ trunk/SophyaLib/SUtils/datacards.cc	(revision 1371)
@@ -1,10 +1,10 @@
-/// $Id: datacards.cc,v 1.5 2000-10-24 17:35:03 ansari Exp $
-//
-// Datacards, acquisition EROS II
-//
-//
-// Eric Aubourg, Decembre 95
-//
-// DAPNIA/SPP (Saclay) / CEA
+//
+// $Id: datacards.cc,v 1.6 2001-01-05 17:06:03 ansari Exp $
+//
+//
+// Eric Aubourg, R. Ansari 1995-2000
+//               PEIDA (EROS) - SOPHYA
+// LAL (Orsay) / IN2P3-CNRS  DAPNIA/SPP (Saclay) / CEA
+
 
 #include "machdefs.h"
Index: trunk/SophyaLib/Samba/alm.h
===================================================================
--- trunk/SophyaLib/Samba/alm.h	(revision 1364)
+++ trunk/SophyaLib/Samba/alm.h	(revision 1371)
@@ -1,2 +1,6 @@
+//   Class for representing spherical harmonic coefficients
+//              G. Le Meur      2000
+// DAPNIA/SPP (Saclay) / CEA    LAL - IN2P3/CNRS  (Orsay)
+
 #ifndef ALM_SEEN
 #define ALM_SEEN
@@ -7,4 +11,5 @@
 #include "tvector.h"
 
+namespace SOPHYA {  
 
 /*! class for the coefficients \f$a_{lm}\f$ of the development of a function defined on a sphere, in spherical harmonics */
@@ -74,4 +79,5 @@
   };
 
+} // namespace SOPHYA
 
 #endif
Index: trunk/SophyaLib/Samba/bruit.h
===================================================================
--- trunk/SophyaLib/Samba/bruit.h	(revision 1364)
+++ trunk/SophyaLib/Samba/bruit.h	(revision 1371)
@@ -1,4 +1,10 @@
+// Noise generators
+//        R. Ansari , F. Couchot   1998
+// DAPNIA/SPP (Saclay) / CEA    LAL - IN2P3/CNRS  (Orsay)
+
 #ifndef BRUIT_H_SEEN
 #define BRUIT_H_SEEN
+
+namespace SOPHYA {  
 
 class NoiseGenerator {
@@ -104,4 +110,5 @@
 };
 
+} // namespace SOPHYA
 
 #endif
Index: trunk/SophyaLib/Samba/circle.h
===================================================================
--- trunk/SophyaLib/Samba/circle.h	(revision 1364)
+++ trunk/SophyaLib/Samba/circle.h	(revision 1371)
@@ -1,2 +1,6 @@
+//   Geometry handling class 
+//        R. Ansari , G. Le Meur   2000
+// DAPNIA/SPP (Saclay) / CEA    LAL - IN2P3/CNRS  (Orsay)
+
 #ifndef CIRCLE_H_SEEN
 #define CIRCLE_H_SEEN
@@ -8,4 +12,6 @@
 #include "utilgeom.h"
 #include "geometry.h"
+
+namespace SOPHYA {  
 
 class Circle : public Geometry
@@ -92,3 +98,5 @@
 }
 
+} // namespace SOPHYA
+
 #endif
Index: trunk/SophyaLib/Samba/geometry.h
===================================================================
--- trunk/SophyaLib/Samba/geometry.h	(revision 1364)
+++ trunk/SophyaLib/Samba/geometry.h	(revision 1371)
@@ -1,2 +1,6 @@
+//   Geometry handling class 
+//        R. Ansari , G. Le Meur   2000
+// DAPNIA/SPP (Saclay) / CEA    LAL - IN2P3/CNRS  (Orsay)
+
 #ifndef GEOMETRY_SEEN
 #define GEOMETRY_SEEN
@@ -4,4 +8,13 @@
 
 #include "unitvector.h"
+
+namespace SOPHYA {  
+
+/*!
+  \class SOPHYA::Geometry
+  \ingroup Samba
+  Base class (pure virtual) for geometry handling and coordinate
+  system transforms
+*/
 
 class Geometry
@@ -13,4 +26,5 @@
 };
 
+} // namespace SOPHYA
 
 #endif
Index: trunk/SophyaLib/Samba/mlobe.cc
===================================================================
--- trunk/SophyaLib/Samba/mlobe.cc	(revision 1364)
+++ trunk/SophyaLib/Samba/mlobe.cc	(revision 1371)
@@ -3,4 +3,15 @@
 
 #include "timing.h"
+
+/*!
+  \class SOPHYA::MainLobe
+  \ingroup Samba
+  Class for computation of main lobe.
+  The lobe values are computed in pixels laying on nc slices 
+  with hexagonal  pavement around theta=0 , phi=0. The lobe is 
+  gaussian with sigma=sig. The slices are built every 
+  dels*sigma.  
+*/
+
 // #include "nbrandom.h"
 //++ 
Index: trunk/SophyaLib/Samba/mlobe.h
===================================================================
--- trunk/SophyaLib/Samba/mlobe.h	(revision 1364)
+++ trunk/SophyaLib/Samba/mlobe.h	(revision 1371)
@@ -1,4 +1,8 @@
-#ifndef SCSKYU_H_SEEN
-#define SCSKYU_H_SEEN
+// Class for representing the main antenna lobe
+//        R. Ansari            1998-2000
+// DAPNIA/SPP (Saclay) / CEA    LAL - IN2P3/CNRS  (Orsay)
+
+#ifndef MLOBE_H_SEEN
+#define MLOBE_H_SEEN
 
 #include <math.h>
@@ -8,4 +12,5 @@
 
 
+namespace SOPHYA {  
 
 // Classe MainLobe
@@ -47,4 +52,5 @@
 };
 
+} // namespace SOPHYA
 
 #endif
Index: trunk/SophyaLib/Samba/sambainit.cc
===================================================================
--- trunk/SophyaLib/Samba/sambainit.cc	(revision 1364)
+++ trunk/SophyaLib/Samba/sambainit.cc	(revision 1371)
@@ -2,4 +2,16 @@
 
 #include "sambainit.h"
+
+/*!
+   \defgroup Samba Samba module
+   This module contains various classes for CMB analysis, such as
+   spherical harmonic decomposition and synthesis
+*/
+
+/*!
+  \class SOPHYA::SambaInitiator
+  \ingroup Samba
+  Array Matrices and Vector initiator
+*/
 
 int SambaInitiator::FgInit = 0;
Index: trunk/SophyaLib/Samba/sambainit.h
===================================================================
--- trunk/SophyaLib/Samba/sambainit.h	(revision 1364)
+++ trunk/SophyaLib/Samba/sambainit.h	(revision 1371)
@@ -9,4 +9,6 @@
 #include "skymapinit.h"
 #include "ntoolsinit.h"
+
+namespace SOPHYA {  
 
 class SambaInitiator : public SkyMapInitiator {
@@ -22,4 +24,6 @@
 #define SophyaInit() SambaInitiator sambainitiator
 
+} // namespace SOPHYA
+
 #endif
 
Index: trunk/SophyaLib/Samba/scan.h
===================================================================
--- trunk/SophyaLib/Samba/scan.h	(revision 1364)
+++ trunk/SophyaLib/Samba/scan.h	(revision 1371)
@@ -1,11 +1,16 @@
+//   Class for managing sky scanning
+//        R. Ansari , G. Le Meur   1998-2000
+// DAPNIA/SPP (Saclay) / CEA    LAL - IN2P3/CNRS  (Orsay)
+
 #ifndef SCAN_H_SEEN
 #define SCAN_H_SEEN
 
 
-// includes PEIDA
 #include "ppersist.h"
 #include <iostream.h>
 #include "dvlist.h"
 #include "ndatablock.h"
+
+namespace SOPHYA {  
 
 class FIO_Scan;
@@ -188,4 +193,5 @@
 };
 
+} // namespace SOPHYA
 
 #endif /* SCAN_H_SEEN */
Index: trunk/SophyaLib/SkyMap/Makefile
===================================================================
--- trunk/SophyaLib/SkyMap/Makefile	(revision 1364)
+++ trunk/SophyaLib/SkyMap/Makefile	(revision 1371)
@@ -100,5 +100,6 @@
  $(INC)piocmplx.h \
  $(INC)fiondblock.h
-$(OBJ)longlat.o: longlat.cc longlat.h utilgeom.h
+$(OBJ)longlat.o: longlat.cc longlat.h \
+ $(INC)machdefs.h utilgeom.h
 $(OBJ)mapoperation.o: mapoperation.cc \
  $(INC)machdefs.h mapoperation.h \
@@ -177,5 +178,5 @@
  $(INC)fiondblock.h
 $(OBJ)unitvector.o: unitvector.cc unitvector.h vector3d.h longlat.h \
- utilgeom.h
+ $(INC)machdefs.h utilgeom.h
 $(OBJ)utilgeom.o: utilgeom.cc utilgeom.h
 $(OBJ)vector3d.o: vector3d.cc $(INC)machdefs.h \
Index: trunk/SophyaLib/SkyMap/longlat.h
===================================================================
--- trunk/SophyaLib/SkyMap/longlat.h	(revision 1364)
+++ trunk/SophyaLib/SkyMap/longlat.h	(revision 1371)
@@ -1,5 +1,10 @@
+//   Geometry handling class 
+//       B. Revenu, R. Ansari , G. Le Meur   2000
+// DAPNIA/SPP (Saclay) / CEA    LAL - IN2P3/CNRS  (Orsay)
+
 #ifndef LONGLAT_H_SEEN
 #define LONGLAT_H_SEEN
 
+#include "machdefs.h"
 #include <math.h>
 #include <iostream.h>
@@ -13,4 +18,6 @@
   latitude=Pi/2-theta
 */
+
+namespace SOPHYA {  
 
 class LongLat
@@ -45,3 +52,5 @@
 }
 
+} // namespace SOPHYA
+
 #endif
Index: trunk/SophyaLib/SkyMap/mapoperation.cc
===================================================================
--- trunk/SophyaLib/SkyMap/mapoperation.cc	(revision 1364)
+++ trunk/SophyaLib/SkyMap/mapoperation.cc	(revision 1371)
@@ -13,5 +13,5 @@
 #include "mapoperation.h"
 /*!
- * \class MapOperations
+ * \class SOPHYA::MapOperations
  * This class is for simple operations on maps
  */
Index: trunk/SophyaLib/SkyMap/mapoperation.h
===================================================================
--- trunk/SophyaLib/SkyMap/mapoperation.h	(revision 1364)
+++ trunk/SophyaLib/SkyMap/mapoperation.h	(revision 1371)
@@ -40,4 +40,5 @@
   { MapOperations<T> a; a.meanSig(dbl,gmoy,gsig); } 
 
-}
+}  // namespace SOPHYA
+
 #endif
Index: trunk/SophyaLib/SkyMap/pixelmap.h
===================================================================
--- trunk/SophyaLib/SkyMap/pixelmap.h	(revision 1364)
+++ trunk/SophyaLib/SkyMap/pixelmap.h	(revision 1371)
@@ -10,11 +10,15 @@
 namespace SOPHYA {
 
-//! General map of pixels on part of sphere or whole sphere
-/*! Class hierarchy :
+/*!
+ \class SOPHYA::PixelMap
+ \ingroup SkyMap
+ General map of pixels on part of sphere or whole sphere.
+
+ Class hierarchy :
 \verbatim
    PixelMap
      SphericalMap
          SphereThetaPhi
-         SphereGorski
+         SphereHEALPix
          SphereIco
       LocalMap
Index: trunk/SophyaLib/SkyMap/skymapinit.cc
===================================================================
--- trunk/SophyaLib/SkyMap/skymapinit.cc	(revision 1364)
+++ trunk/SophyaLib/SkyMap/skymapinit.cc	(revision 1371)
@@ -10,4 +10,15 @@
 #include "localmap.h"
  
+/*!
+   \defgroup SkyMap SkyMap module
+   This module contains classes for handling partial and full sky (spherical) maps
+*/
+
+/*!
+  \class SOPHYA::SkyMapInitiator
+  \ingroup SkyMap
+  Class handling initialization for module SkyMap
+*/
+
 int SkyMapInitiator::FgInit = 0;
 
Index: trunk/SophyaLib/SkyMap/sphericalmap.h
===================================================================
--- trunk/SophyaLib/SkyMap/sphericalmap.h	(revision 1364)
+++ trunk/SophyaLib/SkyMap/sphericalmap.h	(revision 1371)
@@ -22,5 +22,9 @@
 namespace SOPHYA {
 
-
+/*!
+  \class SOPHYA::SphericalMap
+  \ingroup SkyMap
+  Base class (pure virtual) for 4Pi spherical maps
+*/
 
 template<class T>
Index: trunk/SophyaLib/SkyMap/unitvector.h
===================================================================
--- trunk/SophyaLib/SkyMap/unitvector.h	(revision 1364)
+++ trunk/SophyaLib/SkyMap/unitvector.h	(revision 1371)
@@ -1,2 +1,6 @@
+//   3-D Geometry 
+//        B. Revenu, G. Le Meur   2000
+// DAPNIA/SPP (Saclay) / CEA    LAL - IN2P3/CNRS  (Orsay)
+
 #ifndef UNITVECTOR_H_SEEN
 #define UNITVECTOR_H_SEEN
@@ -6,4 +10,6 @@
 #include <string.h>
 #include "vector3d.h"
+
+namespace SOPHYA { 
 
 class UnitVector : public Vector3d 
@@ -31,4 +37,6 @@
 };
 
+} // namespace SOPHYA
+
 #endif
 
Index: trunk/SophyaLib/SkyMap/vector3d.h
===================================================================
--- trunk/SophyaLib/SkyMap/vector3d.h	(revision 1364)
+++ trunk/SophyaLib/SkyMap/vector3d.h	(revision 1371)
@@ -1,2 +1,6 @@
+//   3-D Geometry 
+//        B. Revenu, G. Le Meur   2000
+// DAPNIA/SPP (Saclay) / CEA    LAL - IN2P3/CNRS  (Orsay)
+
 #ifndef VECTOR3D_H_SEEN
 #define VECTOR3D_H_SEEN
@@ -28,4 +32,6 @@
 */
 
+namespace SOPHYA { 
+ 
 class Vector3d 
 {
@@ -142,4 +148,6 @@
 }
 
+} // namespace SOPHYA
+
 #endif
 
Index: trunk/SophyaLib/SkyT/skyinit.h
===================================================================
--- trunk/SophyaLib/SkyT/skyinit.h	(revision 1364)
+++ trunk/SophyaLib/SkyT/skyinit.h	(revision 1371)
@@ -8,4 +8,6 @@
 // Classe d''initialisation pour les modules de PEIDA++
 #include "ntoolsinit.h"
+
+namespace SOPHYA {  
 
 class SkyTInitiator : public NToolsInitiator {
@@ -20,4 +22,6 @@
 #define PeidaInit() SkyTInitiator _skytinitiator_
 
+} // namespace SOPHYA
+
 #endif
 
Index: trunk/SophyaLib/SysTools/pdlmgr.cc
===================================================================
--- trunk/SophyaLib/SysTools/pdlmgr.cc	(revision 1364)
+++ trunk/SophyaLib/SysTools/pdlmgr.cc	(revision 1371)
@@ -1,4 +1,6 @@
+//
 // Gestionnaire de lien dynamique   -   R. Ansari 12/98
 // LAL (Orsay) / IN2P3-CNRS  DAPNIA/SPP (Saclay) / CEA
+//
 
 #include "pdlmgr.h"
Index: trunk/SophyaLib/TArray/tarrinit.cc
===================================================================
--- trunk/SophyaLib/TArray/tarrinit.cc	(revision 1364)
+++ trunk/SophyaLib/TArray/tarrinit.cc	(revision 1371)
@@ -7,5 +7,5 @@
 /*!
    \defgroup TArray TArray module
-   This module contains arrays matrixes and vectors.
+   This module contains template arrays, matrices and vectors.
 */
 
