Index: trunk/SophyaLib/TArray/tmatrix.h
===================================================================
--- trunk/SophyaLib/TArray/tmatrix.h	(revision 762)
+++ trunk/SophyaLib/TArray/tmatrix.h	(revision 772)
@@ -14,11 +14,6 @@
 namespace SOPHYA {
 
-template <class T> class TVector;
-template <class T> class TMatrixRC;
-
 template <class T>
 class TMatrix : public AnyDataObj {
-  friend class TMatrixRC<T>;
-  friend class TVector<T>;
 public:
 
@@ -103,13 +98,4 @@
   TMatrix<T> Mul(const TMatrix<T>& b) const;
 
-  // Pivot de Gauss : diagonalise la matrice A, en effectuant les memes
-  // operations sur la matrice B
-  TMatrix<T> Inverse() const;
-  static T GausPiv(TMatrix<T>& A, TMatrix<T>& B);
-
-  // Acces aux rangees et colonnes
-  TMatrixRC<T> Row(uint_4 r) const;
-  TMatrixRC<T> Col(uint_4 c) const;
-  TMatrixRC<T> Diag() const;
 
 protected:
@@ -203,113 +189,4 @@
 { FIO_TMatrix<T> fio(&obj);  fio.Read(is);  return(is); }
 
-/////////////////////////////////////////////////////////////////////////
-// Classe de lignes/colonnes de matrices
-enum TRCKind {TmatrixRow=0, TmatrixCol=1, TmatrixDiag=2};
-template <class T>
-class TMatrixRC {
-  friend class TVector<T>;
-  friend class TMatrix<T>;
-public:
-  TMatrixRC();
-
-  virtual ~TMatrixRC() {}
-
-  int_4 Next();
-  int_4 Prev();
-  int_4 SetCol(int_4 c);
-  int_4 SetRow(int_4 r);
-  int_4 SetDiag();
-
-  static uint_4 Step(const TMatrix<T>& m, TRCKind rckind);
-  static T* Org(const TMatrix<T>&, TRCKind rckind, uint_4 ind=0);
-
-  TRCKind Kind() const { return kind; }
-  uint_4 NElts() const;
-  T& operator()(uint_4 i);
-  T  operator()(uint_4 i) const;
-
-  TMatrixRC<T>& operator = (const TMatrixRC<T>& rc);
-  TVector<T> GetVect() const;
-
-  TMatrixRC<T>& operator += (const TMatrixRC<T>& rc);
-  TMatrixRC<T>& operator -= (const TMatrixRC<T>& rc);
-
-  TMatrixRC<T>& operator *= (T x);
-  TMatrixRC<T>& operator /= (T x);
-  TMatrixRC<T>& operator -= (T x);
-  TMatrixRC<T>& operator += (T x);
-
-  TMatrixRC<T>& LinComb(T a, T b, const TMatrixRC& rc, uint_4 first=0);
-  TMatrixRC<T>& LinComb(T b, const TMatrixRC<T>& rc, uint_4 first=0);
-
-  uint_4 IMaxAbs(uint_4 first=0);
-
-  static void Swap(TMatrixRC<T>& rc1, TMatrixRC<T>& rc2);
-
-protected:
-  TMatrixRC(TMatrix<T>& m, TRCKind kind, uint_4 index=0);
-  TMatrix<T>* matrix;
-  inline static double Abs_Value(uint_1 v) {return (double) v;}
-  inline static double Abs_Value(uint_2 v) {return (double) v;}
-  inline static double Abs_Value(int_2 v)  {return (v>0)? (double) v: (double) -v;}
-  inline static double Abs_Value(int_4 v)  {return (v>0)? (double) v: (double) -v;}
-  inline static double Abs_Value(int_8 v)  {return (v>0)? (double) v: (double) -v;}
-  inline static double Abs_Value(uint_4 v) {return (double) v;}
-  inline static double Abs_Value(uint_8 v) {return (double) v;}
-  inline static double Abs_Value(r_4 v)    {return (double) fabsf(v);}
-  inline static double Abs_Value(r_8 v)    {return fabs(v);}
-  inline static double Abs_Value(complex<float> v)
-                {return sqrt(v.real()*v.real()+v.imag()*v.imag());}
-  inline static double Abs_Value(complex<double> v)
-                {return sqrt(v.real()*v.real()+v.imag()*v.imag());}
-
-  T*          data;
-  int_4       index;
-  uint_4      step;
-  TRCKind     kind;
-};
-
-
-template <class T>
-inline T operator * (const TMatrixRC<T>& a, const TMatrixRC<T>& b)
-  {
-  if ( a.NElts() != b.NElts() )
-    throw(SzMismatchError("TMatrixRC::operator * size mismatch\n"));
-  if ( a.Kind() != b.Kind() )
-    throw(SzMismatchError("TMatrixRC::operator * type mismatch\n"));
-  T sum = 0;
-  for(uint_4 i=0; i<a.NElts(); i++) sum += a(i)*b(i);
-  return sum;
-  }
-
-template <class T>
-inline uint_4 TMatrixRC<T>::Step(const TMatrix<T>& m, TRCKind rckind)
-  { switch (rckind) { case TmatrixRow  : return 1;
-                      case TmatrixCol  : return m.mNc;
-                      case TmatrixDiag : return m.mNc+1; }
-    return 0; }
-
-template <class T>
-inline T* TMatrixRC<T>::Org(const TMatrix<T>& m, TRCKind rckind, uint_4 index)
-  { switch (rckind) { case TmatrixRow  : return const_cast<T *>(m.Data()) + index * m.mNc;
-                      case TmatrixCol  : return const_cast<T *>(m.Data()) + index;
-                      case TmatrixDiag : return const_cast<T *>(m.Data()); }
-    return NULL; }
-
-template <class T> inline uint_4 TMatrixRC<T>::NElts() const
-  { if (!matrix) return 0;
-    switch (kind) { case TmatrixRow  : return matrix->mNc;
-                    case TmatrixCol  : return matrix->mNr;
-                    case TmatrixDiag : return matrix->mNc; }
-    return 0; }
-
-template <class T>
-inline T& TMatrixRC<T>::operator()(uint_4 i) {return data[i*step];}
-template <class T>
-inline T  TMatrixRC<T>::operator()(uint_4 i) const {return data[i*step];}
-
-////////////////////////////////////////////////////////////////
-// Typedef pour simplifier et compatibilite Peida
-typedef TMatrixRC<r_8> MatrixRC;
 
 } // Fin du namespace
