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


Ignore:
Timestamp:
Jul 29, 2004, 2:31:16 PM (21 years ago)
Author:
ansari
Message:

1/ Remplacement des methodes Add/Sub/Mul/DivElt(a) par

Add/Sub/Mul/DivElt(TArray a, TArray res)

2/ Operateurs += -= A+B A-B TArray et TMatrix/TVecteur modifies en consequence
3/ Ajout methode TArray::ScalarProduct()
4/ Methode TArray::SetT renomme en SetCst() SetT garde en alias
5/ Ajout parametre bool fzero (mise a zero) ajoute ds constructeur et

ReSize() de TMatrix et TVecteur.

Reza 29/07/2004

File:
1 edited

Legend:

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

    r2564 r2575  
    1515  // Creation / destruction
    1616  TMatrix();
    17   TMatrix(sa_size_t r,sa_size_t c, short mm=BaseArray::AutoMemoryMapping);
     17  TMatrix(sa_size_t r,sa_size_t c, short mm=BaseArray::AutoMemoryMapping, bool fzero=true);
    1818  TMatrix(const TMatrix<T>& a);
    1919  TMatrix(const TMatrix<T>& a, bool share);
     
    4848  inline sa_size_t NCol()  const {return size_[macoli_]; } // back-compat Peida
    4949
    50   void ReSize(sa_size_t r,sa_size_t c, short mm=BaseArray::SameMemoryMapping);
     50  void ReSize(sa_size_t r,sa_size_t c, short mm=BaseArray::SameMemoryMapping, bool fzero=true);
    5151  //! a synonym (alias) for method ReSize(sa_size_t, sa_size_t, short)
    52   inline void SetSize(sa_size_t r,sa_size_t c, short mm=BaseArray::SameMemoryMapping)
    53                  { ReSize(r, c, mm); }
     52  inline void SetSize(sa_size_t r,sa_size_t c, short mm=BaseArray::SameMemoryMapping, bool fzero=true)
     53                 { ReSize(r, c, mm, fzero); }
    5454  // Reallocation de place
    5555  void Realloc(sa_size_t r,sa_size_t c, short mm=BaseArray::SameMemoryMapping, bool force=false);
     
    103103  //  operations avec matrices
    104104  //! += : add a matrix
    105   inline  TMatrix<T>&  operator += (const TMatrix<T>& a)  { AddElt(a); return(*this); }
     105  inline  TMatrix<T>&  operator += (const TMatrix<T>& a)  { AddElt(a,*this); return(*this); }
    106106  //! -= : substract a matrix
    107   inline  TMatrix<T>&  operator -= (const TMatrix<T>& a)  { SubElt(a); return(*this); }
     107  inline  TMatrix<T>&  operator -= (const TMatrix<T>& a)  { SubElt(a,*this); return(*this); }
     108
    108109  TMatrix<T>  Multiply(const TMatrix<T>& b, short mm=BaseArray::SameMemoryMapping) const;
    109   //! *= : matrix product : C = (*this)*B
    110   inline  TMatrix<T>&  operator *= (const TMatrix<T>& b)
    111           { this->Set(Multiply(b));  return(*this); }
     110  //A supprimer ? Reza Juillet 2004 ! *= : matrix product : C = (*this)*B
     111  //  inline  TMatrix<T>&  operator *= (const TMatrix<T>& b)
     112  //       { this->Set(Multiply(b));  return(*this); }
    112113
    113114  // I/O print, ...
     
    201202  the original matrix elements.  */
    202203template <class T> inline TMatrix<T> operator - (const TMatrix<T>& a)
    203     {TMatrix<T> result; result.CloneOrShare(a); result.SetTemp(true);
    204     result.NegateElt(); return result;}
     204    {TMatrix<T> result; result.SetTemp(true);
     205    a.NegateElt(result); return result;}
    205206
    206207
     
    215216inline TMatrix<T> operator + (const TMatrix<T>& a,const TMatrix<T>& b)
    216217    {TMatrix<T> result; result.SetTemp(true);
    217     if (b.IsTemp())  { result.Share(b); result.AddElt(a); }
    218     else { result.CloneOrShare(a); result.AddElt(b); }
    219     return result; }
     218    a.AddElt(b, result);     return result; }
    220219
    221220
     
    225224inline TMatrix<T> operator - (const TMatrix<T>& a,const TMatrix<T>& b)
    226225    {TMatrix<T> result; result.SetTemp(true);
    227     if (b.IsTemp())  { result.Share(b); result.SubElt(a, true); }
    228     else { result.CloneOrShare(a); result.SubElt(b); }
    229     return result; }
     226    a.SubElt(b, result);     return result; }
     227   
    230228
    231229// Surcharge d'operateurs C = A * B
Note: See TracChangeset for help on using the changeset viewer.