Index: trunk/SophyaLib/NTools/poly.cc
===================================================================
--- trunk/SophyaLib/NTools/poly.cc	(revision 805)
+++ trunk/SophyaLib/NTools/poly.cc	(revision 938)
@@ -31,5 +31,5 @@
 
 Poly::Poly(int degre)
-: Vector(degre+1), dirty(0), deg(0)
+: TVector<r_8>(degre+1), dirty(0), deg(0)
 {
   END_CONSTRUCTOR
@@ -41,5 +41,5 @@
 //	Constructeur par copie.
 //--
-:Vector(a), dirty(a.dirty), deg(a.deg)
+:TVector<r_8>(a), dirty(a.dirty), deg(a.deg)
 {
   END_CONSTRUCTOR
@@ -111,5 +111,5 @@
 
 //++
-int Poly::Roots(Vector& roots) const
+int Poly::Roots(TVector<r_8>& roots) const
 //
 //	Retourne dans roots les racines réelles, si on sait
@@ -179,5 +179,5 @@
 {
   if (this == &a) return *this;
-  Vector::operator=(a);
+  TVector<r_8>::operator=(a);
 
   UpdateDeg();
@@ -275,5 +275,5 @@
 
 //++
-double Poly::Fit(Vector const& x, Vector const& y, int degre)
+double Poly::Fit(TVector<r_8> const& x, TVector<r_8> const& y, int degre)
 //
 //	Ajustement polynomial par moindre carrés. Un polynôme de
@@ -287,5 +287,5 @@
   Realloc(degre);
 
-  Matrix a(degre+1, n);
+  TMatrix<r_8> a(degre+1, n);
 
   for (int c=0; c<n; c++) {
@@ -297,6 +297,6 @@
   }
 
-  LinFitter lf;
-  double rc = lf.LinFit(a,y,(Vector&)*this);
+  LinFitter<r_8> lf;
+  double rc = lf.LinFit(a,y,(TVector<r_8>&)*this);
   UpdateDeg();
   return rc;
@@ -304,6 +304,6 @@
 
 //++
-double Poly::Fit(Vector const& x, Vector const& y, Vector const& erry2, int degre,
-                 Vector& errCoef)
+double Poly::Fit(TVector<r_8> const& x, TVector<r_8> const& y,
+       TVector<r_8> const& erry2, int degre,TVector<r_8>& errCoef)
 //
 //	Ajustement polynomial par moindre carrés. Un polynôme de
@@ -320,5 +320,5 @@
   errCoef.Realloc(degre+1);
 
-  Matrix a(degre+1, n);
+  TMatrix<r_8> a(degre+1, n);
 
   for (int c=0; c<n; c++) {
@@ -330,6 +330,6 @@
   }
 
-  LinFitter lf;
-  double rc = lf.LinFit(a,y,erry2,(Vector&)*this,errCoef);
+  LinFitter<r_8> lf;
+  double rc = lf.LinFit(a,y,erry2,(TVector<r_8>&)*this,errCoef);
   UpdateDeg();
   return rc;
@@ -371,5 +371,5 @@
 is >> dg;
 dobj->Realloc(dg,true);
-is >> *((Vector *) dobj);
+is >> *((TVector<r_8> *) dobj);
 dobj->UpdateDeg();
 }
@@ -381,5 +381,5 @@
 dobj->Realloc(dobj->deg,true);
 os << dobj->deg;
-os << *((Vector *) dobj);
+os << *((TVector<r_8> *) dobj);
 }
 
@@ -417,5 +417,5 @@
 //	Crée un polynôme de degrés partiels degreX et degreY.
 //--
-:Vector((degreX+1)*(degreY+1)), dirty(0),
+:TVector<r_8>((degreX+1)*(degreY+1)), dirty(0),
  maxDegX(degreX), maxDegY(degreY), degX(0), degY(0), deg(0)
 {
@@ -429,5 +429,5 @@
 //	de deux polynômes à une variable, p2(x,y)=px(x)py(y)
 //--
-:Vector((polX.Degre()+1)*(polY.Degre()+1)), dirty(0),
+:TVector<r_8>((polX.Degre()+1)*(polY.Degre()+1)), dirty(0),
  maxDegX(polX.Degre()), maxDegY(polY.Degre()),
  degX(polX.Degre()), degY(polY.Degre()), deg(degX+degY)
@@ -444,5 +444,5 @@
 //	Constructeur par copie.
 //--
-:Vector(a), dirty(a.dirty),
+:TVector<r_8>(a), dirty(a.dirty),
  maxDegX(a.maxDegX), maxDegY(a.maxDegY),
  degX(a.degX), degY(a.degY), deg(a.deg)
@@ -484,5 +484,5 @@
   UpdateDegIfDirty();
   Poly2 tmp(*this);
-  Vector::Realloc((degreX+1)*(degreY+1));
+  TVector<r_8>::Realloc((degreX+1)*(degreY+1));
   DataBlock().Reset();
   maxDegX = degreX;
@@ -554,6 +554,6 @@
 
 //++
-double Poly2::Fit(Vector const& x, Vector const& y, Vector const& z,
-                  int degreX, int degreY)
+double Poly2::Fit(TVector<r_8> const& x, TVector<r_8> const& y,
+                 TVector<r_8> const& z, int degreX, int degreY)
 //
 //	Ajustement par moindre carrés z = P(x,y), degrés partiels imposés.
@@ -566,5 +566,5 @@
   Realloc(degreX, degreY);
 
-  Matrix a((degreX+1)*(degreY+1), n);
+  TMatrix<r_8> a((degreX+1)*(degreY+1), n);
 
   for (int c=0; c<n; c++) {
@@ -580,6 +580,6 @@
   }
 
-  LinFitter lf;
-  double rc = lf.LinFit(a,z,(Vector&)*this);
+  LinFitter<r_8> lf;
+  double rc = lf.LinFit(a,z,(TVector<r_8>&)*this);
   UpdateDeg();
   return rc;
@@ -588,7 +588,7 @@
 
 //++
-double Poly2::Fit(Vector const& x, Vector const& y, Vector const& z,
-                  Vector const& errz2, int degreX, int degreY,
-                  Vector& errCoef)
+double Poly2::Fit(TVector<r_8> const& x, TVector<r_8> const& y, TVector<r_8> const& z,
+                  TVector<r_8> const& errz2, int degreX, int degreY,
+                  TVector<r_8>& errCoef)
 //
 //	Ajustement par moindre carrés z = P(x,y), degrés partiels imposés,
@@ -604,5 +604,5 @@
   errCoef.Realloc((degreX+1)*(degreY+1));
 
-  Matrix a((degreX+1)*(degreY+1), n);
+  TMatrix<r_8> a((degreX+1)*(degreY+1), n);
 
   for (int c=0; c<n; c++) {
@@ -618,6 +618,6 @@
   }
 
-  LinFitter lf;
-  double rc = lf.LinFit(a,z,errz2,(Vector&)*this,errCoef);
+  LinFitter<r_8> lf;
+  double rc = lf.LinFit(a,z,errz2,(TVector<r_8>&)*this,errCoef);
   UpdateDeg();
   return rc;
@@ -625,6 +625,6 @@
 
 //++
-double Poly2::Fit(Vector const& x, Vector const& y, Vector const& z,
-                  int degre)
+double Poly2::Fit(TVector<r_8> const& x, TVector<r_8> const& y,
+                              TVector<r_8> const& z, int degre)
 //
 //	Ajustement par moindre carrés z = P(x,y), degré total imposé.
@@ -637,6 +637,6 @@
   Realloc(degre, degre);   // certains vaudront 0, impose.
 
-  Matrix a((degre+1)*(degre+2)/2, n);
-  Vector cf((degre+1)*(degre+2)/2);
+  TMatrix<r_8> a((degre+1)*(degre+2)/2, n);
+  TVector<r_8> cf((degre+1)*(degre+2)/2);
 #define C_INDEX(i,j) ((i) + (j)*(2*degre+3-(j))/2)
 
@@ -654,5 +654,5 @@
   }
 
-  LinFitter lf;
+  LinFitter<r_8> lf;
   double rc = lf.LinFit(a,z,cf);
 
@@ -670,7 +670,7 @@
 
 //++
-double Poly2::Fit(Vector const& x, Vector const& y, Vector const& z,
-                  Vector const& errz2, int degre,
-                  Vector& errCoef)
+double Poly2::Fit(TVector<r_8> const& x, TVector<r_8> const& y,
+               TVector<r_8> const& z,TVector<r_8> const& errz2,
+                              int degre, TVector<r_8>& errCoef)
 //
 //	Ajustement par moindre carrés z = P(x,y), degré total imposé,
@@ -687,7 +687,7 @@
 #define C_INDEX(i,j) ((i) + (j)*(2*degre+3-(j))/2)
 
-  Matrix a((degre+1)*(degre+2)/2, n);
-  Vector cf((degre+1)*(degre+2)/2);
-  Vector ecf((degre+1)*(degre+2)/2);
+  TMatrix<r_8> a((degre+1)*(degre+2)/2, n);
+  TVector<r_8> cf((degre+1)*(degre+2)/2);
+  TVector<r_8> ecf((degre+1)*(degre+2)/2);
 
   for (int c=0; c<n; c++) {
@@ -704,5 +704,5 @@
   }
 
-  LinFitter lf;
+  LinFitter<r_8> lf;
   double rc = lf.LinFit(a,z,errz2,cf,ecf);
 
@@ -875,5 +875,5 @@
 is >> dgx >> dgy;
 dobj->Realloc(dgx,dgy);
-is >> *((Vector *) dobj);
+is >> *((TVector<r_8> *) dobj);
 dobj->UpdateDeg();
 }
@@ -883,5 +883,5 @@
 if(dobj == NULL) return;
 os << dobj->maxDegX << dobj->maxDegY;
-os << *((Vector *) dobj);
+os << *((TVector<r_8> *) dobj);
 }
 
