Changeset 1757 in Sophya
- Timestamp:
- Nov 13, 2001, 4:31:56 PM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/TArray/triangmtx.h
r1683 r1757 22 22 23 23 //! Default constructor 24 TriangularMatrix() { };24 TriangularMatrix() {;}; 25 25 //! instanciate a triangular matrix from the number of rows 26 TriangularMatrix(int rowSize) : long_diag_((uint_4)rowSize) {elem_.ReSize((uint_4) (rowSize*(rowSize+1)/2) ); }; 26 TriangularMatrix(int rowSize) : long_diag_((uint_4)rowSize) 27 { 28 elem_.ReSize((uint_4) (rowSize*(rowSize+1)/2) ); 29 } 27 30 //! Copy constructor (possibility of sharing datas) 28 TriangularMatrix(const TriangularMatrix<T>& a, bool share=false) : elem_(a.elem_, share), long_diag_(a.long_diag_) {;}31 TriangularMatrix(const TriangularMatrix<T>& a, bool share=false) : elem_(a.elem_, share), long_diag_(a.long_diag_) {;} 29 32 30 33 //! resize the matrix with a new number of rows … … 66 69 } 67 70 71 TriangularMatrix<T>& Set(const TriangularMatrix<T>& a) 72 { 73 if (this != &a) 74 { 75 if (a.Size() < 1) 76 throw RangeCheckError(" TriangularMatrix<T>::Set()- Array a not allocated ! "); 77 } 78 if (Size() < 1) CloneOrShare(a); 79 else CopyElt(a); 80 return(*this); 81 } 82 83 inline TriangularMatrix<T>& operator = (const TriangularMatrix<T>& a) 84 {return Set(a);} 85 86 TriangularMatrix<T>& CopyElt(const TriangularMatrix<T>& a) 87 { 88 if (Size() < 1) 89 throw RangeCheckError("TriangularMatrix<T>::CopyElt(const TriangularMatrix<T>& ) - Not Allocated Array ! "); 90 if (Size() != a.Size() ) 91 throw(SzMismatchError("TriangularMatrix<T>::CopyElt(const TriangularMatrix<T>&) SizeMismatch")) ; 92 long_diag_ = a.long_diag_; 93 int k; 94 for (k=0; k< Size(); k++) elem_(k) = a.elem_(k); 95 return(*this); 96 } 97 98 void CloneOrShare(const TriangularMatrix<T>& a) 99 { 100 long_diag_ = a.long_diag_; 101 elem_.CloneOrShare(a.elem_); 102 } 103 68 104 69 105 //! Return number of rows 70 106 inline int_4 rowNumber() const {return (int_4)long_diag_;} 107 108 //! Return size of the total array 109 inline int_4 Size() const {return elem_.Size();} 110 71 111 72 112 void Print(int nbLignes=0)
Note:
See TracChangeset
for help on using the changeset viewer.