Changeset 1757 in Sophya


Ignore:
Timestamp:
Nov 13, 2001, 4:31:56 PM (24 years ago)
Author:
lemeur
Message:

restructuration de l'acces au tableau

File:
1 edited

Legend:

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

    r1683 r1757  
    2222
    2323//! Default constructor
    24 TriangularMatrix()   {};
     24TriangularMatrix()   {;};
    2525//! 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) ); };
     26TriangularMatrix(int rowSize)  : long_diag_((uint_4)rowSize)
     27  {
     28    elem_.ReSize((uint_4) (rowSize*(rowSize+1)/2) );
     29  }
    2730//! 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_) {;}
    2932
    3033//! resize the matrix with a new number of rows
     
    6669  }
    6770
     71TriangularMatrix<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
     83inline TriangularMatrix<T>& operator = (const TriangularMatrix<T>& a)
     84                                                           {return Set(a);}
     85
     86TriangularMatrix<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
     98void CloneOrShare(const  TriangularMatrix<T>& a)
     99  {
     100    long_diag_ = a.long_diag_;
     101    elem_.CloneOrShare(a.elem_);
     102  }
     103
    68104
    69105//! Return number of rows
    70106inline  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
    71111
    72112void Print(int nbLignes=0)
Note: See TracChangeset for help on using the changeset viewer.