Changeset 813 in Sophya for trunk/SophyaLib/TArray/tmatrix.h


Ignore:
Timestamp:
Apr 5, 2000, 5:44:19 PM (25 years ago)
Author:
ansari
Message:

Correction bug/amelioarions TArray,TMatrix,TVector - Reza 5/4/2000

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/TArray/tmatrix.h

    r804 r813  
    3434  void Realloc(uint_4 r,uint_4 c, short mm=SameMemoryMapping, bool force=false);
    3535
    36   // Sub-matrix extraction $CHECK$ Reza 03/2000  Doit-on declarer cette methode const ?
    37   TMatrix<T> operator () (Range rline, Range rcol) const ;
     36  // Sub-matrix extraction $CHECK$ Reza 03/2000  Doit-on declarer ces methode const ?
     37  TMatrix<T> SubMatrix(Range rline, Range rcol) const ;
     38  inline TMatrix<T> operator () (Range rline, Range rcol) const
     39                    { return SubMatrix(rline, rcol); }
     40  // Lignes et colonnes de la matrice
     41  inline TMatrix<T> Row(uint_4 ir) const
     42                    { return SubMatrix(Range(ir,ir), Range(0,NCols()-1)); }
     43  inline TMatrix<T> Column(uint_4 ic) const
     44                    { return SubMatrix(Range(0,NRows()-1), Range(ic,ic)); }
    3845
    3946  // Inline element acces methods
     
    5360  inline  TMatrix<T>& operator = (IdentityMatrix imx) { return SetIdentity(imx); }
    5461
     62  inline  TMatrix<T>&  operator = (Sequence seq)    { SetSeq(seq); return(*this); }
     63
    5564  // Operations diverses  avec une constante
    56   inline  TMatrix<T>&  operator = (T x)             { Set(x); return(*this); }
     65  inline  TMatrix<T>&  operator = (T x)             { SetT(x); return(*this); }
    5766  inline  TMatrix<T>&  operator += (T x)            { Add(x); return(*this); }
    5867  inline  TMatrix<T>&  operator -= (T x)            { Sub(x); return(*this); }
     
    6170
    6271  //  operations avec matrices
    63   inline  TMatrix<T>&  operator += (const TMatrix<T>& a)  { return AddElt(a); }
    64   inline  TMatrix<T>&  operator -= (const TMatrix<T>& a)  { return SubElt(a); }
     72  inline  TMatrix<T>&  operator += (const TMatrix<T>& a)  { AddElt(a); return(*this); }
     73  inline  TMatrix<T>&  operator -= (const TMatrix<T>& a)  { SubElt(a); return(*this); }
     74  // Produit matriciel Multiply : C = (*this)*B
     75  TMatrix<T>  Multiply(const TMatrix<T>& b, short mm=SameMemoryMapping) const;
     76  inline  TMatrix<T>&  operator *= (const TMatrix<T>& b)
     77          { this->Set(Multiply(b));  return(*this); }
    6578
    66   // Input-Output
     79  // I/O print, ...
     80  virtual string InfoString() const;
    6781  virtual void  Print(ostream& os, int_4 maxprt=-1, bool si=false) const ;
    68 
    69   // Produit matriciel
    70   TMatrix<T>  Multiply(const TMatrix<T>& b, short mm=SameMemoryMapping) const;
    71   //  inline TMatrix<T>& operator *= (const TMatrix<T>& b)
    7282
    7383protected:
     
    98108
    99109
     110// Surcharge d'operateurs C = A (+,-) B
     111// $CHECK$ Reza 3/4/2000 Pas necessaire  de redefinir les operateurs
     112// Defini au niveau de TArray<T> - Pour ameliorer l'efficacite
     113// Doit-on le faire aussi pour les constantes ? - Fin de $CHECK$ Reza 3/4/2000
     114
     115template <class T>
     116inline TMatrix<T> operator + (const TMatrix<T>& a,const TMatrix<T>& b)
     117    {TMatrix<T> result(a); result.SetTemp(true); result.AddElt(b); return result;}
     118
     119template <class T>
     120inline TMatrix<T> operator - (const TMatrix<T>& a,const TMatrix<T>& b)
     121    {TMatrix<T> result(a); result.SetTemp(true); result.SubElt(b); return result;}
     122
    100123// Surcharge d'operateurs C = A * B
    101124
    102125template <class T> inline TMatrix<T> operator * (const TMatrix<T>& a, const TMatrix<T>& b)
    103 { TMatrix<T> result(a); result.SetTemp(true); result.Multiply(b);  return result;}
     126{ TMatrix<T> result(a); result.SetTemp(true); return(result.Multiply(b)); }
    104127
    105128typedef TMatrix<r_8> Matrix;
Note: See TracChangeset for help on using the changeset viewer.