Index: trunk/SophyaLib/NTools/cimage.cc
===================================================================
--- trunk/SophyaLib/NTools/cimage.cc	(revision 1087)
+++ trunk/SophyaLib/NTools/cimage.cc	(revision 1092)
@@ -5,5 +5,5 @@
 // LAL (Orsay) / IN2P3-CNRS  DAPNIA/SPP (Saclay) / CEA
 
-// $Id: cimage.cc,v 1.5 1999-10-21 15:25:42 ansari Exp $        
+// $Id: cimage.cc,v 1.6 2000-07-26 13:15:29 ansari Exp $        
 
 
@@ -723,6 +723,6 @@
 // redimensionnement de l'histo pour avoir une bonne signification stat.
 for(;;) {
-  float max1,max2;
-  int imax1,imax2;
+  r_8 max1,max2;
+  int_4 imax1,imax2;
   rc = H.MaxiLocal(max1,imax1,max2,imax2);
   float rap = 1.;
@@ -742,5 +742,5 @@
 
 TRY {
-  xbmax = H.FitMax(2,0.5f,deb-2);
+  xbmax = H.FitMax(2,0.5,deb-2);
   if(deb>1) cout<<"H.FitMax = "<<xbmax<<endl;
 } CATCHALL {
@@ -750,8 +750,9 @@
 
 TRY {
-  float sdroit = -2.;
-  H.EstimeWidthS(0.5f,sgbmax,sdroit);
-  if(sgbmax<=0.) sgbmax = H.FindWidth(0.5f,deb-2);
-  sgbmax /= 2.36;
+  r_8 sdroit = -2., dum=sgbmax;
+  H.EstimeWidthS(0.5,dum,sdroit);
+  if(dum<=0.) dum = H.FindWidth(0.5,deb-2);
+  dum /= 2.36;
+  sgbmax = dum;
   if(deb>1) cout<<"H.FindWidth = "<<sgbmax<<" (droit="<<sdroit<<")"<<endl;
 } CATCHALL {
Index: trunk/SophyaLib/NTools/perandom.cc
===================================================================
--- trunk/SophyaLib/NTools/perandom.cc	(revision 1087)
+++ trunk/SophyaLib/NTools/perandom.cc	(revision 1092)
@@ -15,5 +15,5 @@
 
 //++
-FunRan::FunRan(FunRan::Func f, float xMin, float xMax, int nBin)
+FunRan::FunRan(FunRan::Func f, r_8 xMin, r_8 xMax, int_4 nBin)
 //
 //	Createur.
@@ -22,8 +22,8 @@
 {
   (*this)(0) = f(BinLowEdge(0));
-  for(int i=1; i<nBin; i++)
+  for(int_4 i=1; i<nBin; i++)
     (*this)(i) = (*this)(i-1) + f(BinLowEdge(i));
     
-  for(int j=0; j<nBin; j++)
+  for(int_4 j=0; j<nBin; j++)
     (*this)(j) /= (*this)(nBin-1);
   END_CONSTRUCTOR
@@ -31,12 +31,12 @@
 
 //++
-FunRan::FunRan(double *tab, int nBin)
-//
-//	Createur.
-//--
-: Histo(0, (float)(nBin), nBin)
+FunRan::FunRan(r_8 *tab, int_4 nBin)
+//
+//	Createur.
+//--
+: Histo(0, (r_8)(nBin), nBin)
 {
   (*this)(0) = tab[0];
-  for(int i=1; i<nBin; i++)
+  for(int_4 i=1; i<nBin; i++)
     (*this)(i) = (*this)(i-1) + tab[i];
 
@@ -46,14 +46,14 @@
   }
 
-  for(int j=0; j<nBin; j++)
+  for(int_4 j=0; j<nBin; j++)
     (*this)(j) /= (*this)(nBin-1);
   END_CONSTRUCTOR
 }
 
-FunRan::FunRan(double *tab, int nBin, float xMin, float xMax)
+FunRan::FunRan(r_8 *tab, int_4 nBin, r_8 xMin, r_8 xMax)
 : Histo(xMin, xMax, nBin)
 {
   (*this)(0) = tab[0];
-  for(int i=1; i<nBin; i++)
+  for(int_4 i=1; i<nBin; i++)
     (*this)(i) = (*this)(i-1) + tab[i];
 
@@ -63,5 +63,5 @@
   }
 
-  for(int j=0; j<nBin; j++)
+  for(int_4 j=0; j<nBin; j++)
     (*this)(j) /= (*this)(nBin-1);
   END_CONSTRUCTOR
@@ -69,16 +69,16 @@
 
 //++
-int FunRan::BinRandom()
+int_4 FunRan::BinRandom()
 //
 //	Tirage avec retour du numero de bin.
 //--
 {
-  double z=drand01();
+  r_8 z=drand01();
   if (z <= 0) return 0;
-  if (z >= 1) return bins-1;
+  if (z >= 1) return mBins-1;
   
   // recherche du premier bin plus grand que z
-  int iBin = 0;
-  for (; iBin<bins; iBin++)
+  int_4 iBin = 0;
+  for (; iBin<mBins; iBin++)
     if (z < (*this)(iBin)) break;
 
@@ -87,31 +87,31 @@
 
 //++
-double FunRan::Random()
+r_8 FunRan::Random()
 //
 //	Tirage avec retour abscisse du bin interpole.
 //--
 {
-  double z=drand01();
-  if (z <= 0) return min;
-  if (z >= 1) return max;
+  r_8 z=drand01();
+  if (z <= 0) return mMin;
+  if (z >= 1) return mMax;
   // cas z <= tab[0] 
   if (z <= (*this)(0)) {
-    double t = min + binWidth/(*this)(0) * z;
+    r_8 t = mMin + binWidth/(*this)(0) * z;
     return t;
   }
 
   // recherche du premier bin plus grand que z
-  int iBin = 0;
-  for (; iBin<bins; iBin++)
+  int_4 iBin = 0;
+  for (; iBin<mBins; iBin++)
     if (z < (*this)(iBin)) break;
 
   // interpolation pour trouver la valeur du tirage aleatoire
-  double t1 = (*this)(iBin-1);
-  double x1 = BinLowEdge(iBin-1);
-  double t2 = (*this)(iBin);
-  double x2 = x1 + binWidth;
-  double t = x1 + (x2-x1) / (t2-t1) * (z-t1);
-  if (t < min) t = min;
-  if (t > max) t = max;
+  r_8 t1 = (*this)(iBin-1);
+  r_8 x1 = BinLowEdge(iBin-1);
+  r_8 t2 = (*this)(iBin);
+  r_8 x2 = x1 + binWidth;
+  r_8 t = x1 + (x2-x1) / (t2-t1) * (z-t1);
+  if (t < mMin) t = mMin;
+  if (t > mMax) t = mMax;
   return(t);
 }
@@ -129,5 +129,5 @@
 
 //++
-FunRan2D::FunRan2D(double *tab, int nBinX, int nBinY)
+FunRan2D::FunRan2D(r_8 *tab, int_4 nBinX, int_4 nBinY)
 //
 //	Createur.
@@ -135,8 +135,8 @@
 {
   // Tirage en X, somme sur les Y.
-   double* tabX = new double[nBinX];
-   for (int i=0; i<nBinX; i++) {
+   r_8* tabX = new r_8[nBinX];
+   for (int_4 i=0; i<nBinX; i++) {
      tabX[i] = 0;
-     for (int j=0; j<nBinY; j++) {
+     for (int_4 j=0; j<nBinY; j++) {
        tabX[i] += tab[i*nBinY +j];
      }
@@ -147,5 +147,5 @@
    ranY = new(FunRan*[nBinX]);
    
-   for (int k=0; k<nBinX; k++)
+   for (int_4 k=0; k<nBinX; k++)
       ranY[k] = new FunRan(tab + nBinY*k, nBinY);
    
@@ -155,5 +155,5 @@
 
 //++
-FunRan2D::FunRan2D(double **tab, int nBinX, int nBinY)
+FunRan2D::FunRan2D(r_8 **tab, int_4 nBinX, int_4 nBinY)
 //
 //	Createur.
@@ -161,8 +161,8 @@
 {
   // Tirage en X, somme sur les Y.
-   double* tabX = new double[nBinX];
-   for (int i=0; i<nBinX; i++) {
+   r_8* tabX = new r_8[nBinX];
+   for (int_4 i=0; i<nBinX; i++) {
      tabX[i] = 0;
-     for (int j=0; j<nBinY; j++) {
+     for (int_4 j=0; j<nBinY; j++) {
        tabX[i] += tab[i][j];
      }
@@ -172,5 +172,5 @@
    ranY = new(FunRan*[nBinX]);
    
-   for (int k=0; k<nBinX; k++)
+   for (int_4 k=0; k<nBinX; k++)
     if (tabX[k] != 0) 
       ranY[k] = new FunRan(tab[k], nBinY);
@@ -184,5 +184,5 @@
 FunRan2D::~FunRan2D()
 {
-  for (int i=nx-1; i>=0; i--)
+  for (int_4 i=nx-1; i>=0; i--)
     delete ranY[i];
     
@@ -193,5 +193,5 @@
 
 //++
-void FunRan2D::BinRandom(int& x, int& y)
+void FunRan2D::BinRandom(int_4& x, int_4& y)
 //
 //	Tirage avec retour du numeros de bin.
@@ -204,5 +204,5 @@
 
 //++
-void FunRan2D::Random(double& x, double& y)
+void FunRan2D::Random(r_8& x, r_8& y)
 //
 //	Tirage avec retour abscisse et ordonnee
@@ -211,5 +211,5 @@
 {
   x = ranX->Random();
-  int i = int(ceil(x));
+  int_4 i = int_4(ceil(x));
   //  FAILNIL(ranY[i]);  Ne compile pas $CHECK$ Reza 22/04/99
   y = ranY[i]->Random();
Index: trunk/SophyaLib/NTools/perandom.h
===================================================================
--- trunk/SophyaLib/NTools/perandom.h	(revision 1087)
+++ trunk/SophyaLib/NTools/perandom.h	(revision 1092)
@@ -13,27 +13,27 @@
 class FunRan : public Histo {
 public:
-  typedef double (*Func)(double);
-  FunRan(Func f, float xMin=0.0, float xMax=1.0, int nBin=100);
-  FunRan(double *tab, int nBin);
-  FunRan(double *tab, int nBin, float xMin, float xMax);
-  void IFunRan(double *tab, int nBin);
-  double Random(void);
-  int BinRandom(void);
+  typedef r_8 (*Func)(r_8);
+  FunRan(Func f, r_8 xMin=0.0, r_8 xMax=1.0, int_4 nBin=100);
+  FunRan(r_8 *tab, int_4 nBin);
+  FunRan(r_8 *tab, int_4 nBin, r_8 xMin, r_8 xMax);
+  void IFunRan(r_8 *tab, int_4 nBin);
+  r_8 Random(void);
+  int_4 BinRandom(void);
 };
 
 class FunRan2D EXC_AWARE {
 public:
-//  typedef double (*Func)(double, double);
-//  FunRan2D(Func f, float xMin=0.0, float xMax=1.0, int nBinX=100,
-//                   float yMin=0.0, float yMax=1.0, int nBinY=100);
-  FunRan2D(double *tab, int nBinX, int nBinY);
-  FunRan2D(double **tab, int nBinX, int nBinY);
+//  typedef r_8 (*Func)(r_8, r_8);
+//  FunRan2D(Func f, r_8 xMin=0.0, r_8 xMax=1.0, int_4 nBinX=100,
+//                   r_8 yMin=0.0, r_8 yMax=1.0, int_4 nBinY=100);
+  FunRan2D(r_8 *tab, int_4 nBinX, int_4 nBinY);
+  FunRan2D(r_8 **tab, int_4 nBinX, int_4 nBinY);
   ~FunRan2D();
-  void Random(double& x, double& y);
-  void BinRandom(int& x, int& y);
+  void Random(r_8& x, r_8& y);
+  void BinRandom(int_4& x, int_4& y);
 private:
   FunRan* ranX;
   FunRan** ranY;
-  int nx;
+  int_4 nx;
 };
 
