Changeset 2575 in Sophya for trunk/SophyaLib/TArray/tmatrix.h
- Timestamp:
- Jul 29, 2004, 2:31:16 PM (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/TArray/tmatrix.h
r2564 r2575 15 15 // Creation / destruction 16 16 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); 18 18 TMatrix(const TMatrix<T>& a); 19 19 TMatrix(const TMatrix<T>& a, bool share); … … 48 48 inline sa_size_t NCol() const {return size_[macoli_]; } // back-compat Peida 49 49 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); 51 51 //! 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); } 54 54 // Reallocation de place 55 55 void Realloc(sa_size_t r,sa_size_t c, short mm=BaseArray::SameMemoryMapping, bool force=false); … … 103 103 // operations avec matrices 104 104 //! += : 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); } 106 106 //! -= : 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 108 109 TMatrix<T> Multiply(const TMatrix<T>& b, short mm=BaseArray::SameMemoryMapping) const; 109 // ! *= : matrix product : C = (*this)*B110 inline TMatrix<T>& operator *= (const TMatrix<T>& b)111 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); } 112 113 113 114 // I/O print, ... … … 201 202 the original matrix elements. */ 202 203 template <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;} 205 206 206 207 … … 215 216 inline TMatrix<T> operator + (const TMatrix<T>& a,const TMatrix<T>& b) 216 217 {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; } 220 219 221 220 … … 225 224 inline TMatrix<T> operator - (const TMatrix<T>& a,const TMatrix<T>& b) 226 225 {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 230 228 231 229 // Surcharge d'operateurs C = A * B
Note:
See TracChangeset
for help on using the changeset viewer.