Changeset 1156 in Sophya for trunk/SophyaLib/TArray/tarray.h


Ignore:
Timestamp:
Aug 29, 2000, 6:10:32 PM (25 years ago)
Author:
ansari
Message:

Introduction du type sa_size_t (taille des tableaux), operateur - (TArray::operator - et NegateElt()) - Reza 29/8/2000

File:
1 edited

Legend:

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

    r1113 r1156  
    2929  // Creation / destruction
    3030  TArray();
    31   TArray(uint_4 ndim, const uint_4 * siz, uint_4 step =1);
    32   TArray(uint_4 nx, uint_4 ny=0, uint_4 nz=0, uint_4 nt=0, uint_4 nu=0);
    33   TArray(uint_4 ndim, const uint_4 * siz, NDataBlock<T> & db, bool share=false, uint_4 step=1, uint_8 offset=0);
    34   TArray(uint_4 ndim, const uint_4 * siz, T* values, uint_4 step=1, uint_8 offset=0, Bridge* br=NULL);
     31  TArray(int_4 ndim, const sa_size_t * siz, sa_size_t step =1);
     32  TArray(sa_size_t nx, sa_size_t ny=0, sa_size_t nz=0, sa_size_t nt=0, sa_size_t nu=0);
     33  TArray(int_4 ndim, const sa_size_t * siz, NDataBlock<T> & db, bool share=false, sa_size_t step=1, sa_size_t offset=0);
     34  TArray(int_4 ndim, const sa_size_t * siz, T* values, sa_size_t step=1, sa_size_t offset=0, Bridge* br=NULL);
    3535  TArray(const TArray<T>& a);
    3636  TArray(const TArray<T>& a, bool share);
     
    5757
    5858  void Share(const TArray<T>& a);
    59   void ReSize(uint_4 ndim, uint_4 * siz, uint_4 step=1);
    60   void Realloc(uint_4 ndim, uint_4 * siz, uint_4 step=1, bool force=false);
     59  void ReSize(int_4 ndim, sa_size_t * siz, sa_size_t step=1);
     60  void Realloc(int_4 ndim, sa_size_t * siz, sa_size_t step=1, bool force=false);
    6161
    6262  // Compacts size=1 array dimensions
     
    8888  // ---- Access to data
    8989  // Definition of virtual element acces method inherited from BaseArray class
    90   virtual MuTyV & ValueAtPosition(uint_8 ip) const;
     90  virtual MuTyV & ValueAtPosition(sa_size_t ip) const;
    9191
    9292  // Data Access: operator overloaded inline acces methods
    93   inline T const& operator()(uint_4 ix, uint_4 iy, uint_4 iz) const ;
    94   inline T&       operator()(uint_4 ix, uint_4 iy, uint_4 iz);
    95   inline T const& operator()(uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it, uint_4 iu=0) const ;
    96   inline T&       operator()(uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it, uint_4 iu=0);
    97   inline T const& operator[](uint_8 ip) const ;
    98   inline T&       operator[](uint_8 ip);
    99 
    100   inline T const& Elem(uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it=0, uint_4 iu=0) const ;
    101   inline T&       Elem(uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it=0, uint_4 iu=0);
    102   inline T const& ElemCheckBound(uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it=0, uint_4 iu=0) const ;
    103   inline T&       ElemCheckBound(uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it=0, uint_4 iu=0);
     93  inline T const& operator()(sa_size_t ix, sa_size_t iy, sa_size_t iz) const ;
     94  inline T&       operator()(sa_size_t ix, sa_size_t iy, sa_size_t iz);
     95  inline T const& operator()(sa_size_t ix, sa_size_t iy, sa_size_t iz, sa_size_t it, sa_size_t iu=0) const ;
     96  inline T&       operator()(sa_size_t ix, sa_size_t iy, sa_size_t iz, sa_size_t it, sa_size_t iu=0);
     97  inline T const& operator[](sa_size_t ip) const ;
     98  inline T&       operator[](sa_size_t ip);
     99
     100  inline T const& Elem(sa_size_t ix, sa_size_t iy, sa_size_t iz, sa_size_t it=0, sa_size_t iu=0) const ;
     101  inline T&       Elem(sa_size_t ix, sa_size_t iy, sa_size_t iz, sa_size_t it=0, sa_size_t iu=0);
     102  inline T const& ElemCheckBound(sa_size_t ix, sa_size_t iy, sa_size_t iz, sa_size_t it=0, sa_size_t iu=0) const ;
     103  inline T&       ElemCheckBound(sa_size_t ix, sa_size_t iy, sa_size_t iz, sa_size_t it=0, sa_size_t iu=0);
    104104
    105105  //! Return pointer to first element adress
     
    143143  inline  TArray<T>&  operator /= (T x)            { return Div(x); }
    144144
     145// applique le signe moins a tous les elements
     146  virtual TArray<T>&  NegateElt();
     147 
    145148// A += -=  (ajoute, soustrait element par element les deux tableaux )
    146149  virtual TArray<T>&  AddElt(const TArray<T>& a);
     
    238241
    239242////////////////////////////////////////////////////////////////
     243// Surcharge d'operateurs B = -A
     244
     245/*! \ingroup TArray \fn operator - (const TArray<T>&)
     246  \brief Operator - Returns an array with elements equal to the opposite of
     247  the original array elements.  */
     248template <class T> inline TArray<T> operator - (const TArray<T>& a)
     249    {TArray<T> result; result.CloneOrShare(a); result.SetTemp(true);
     250    result.NegateElt(); return result;}
     251
     252////////////////////////////////////////////////////////////////
    240253// Surcharge d'operateurs C = A (+,-) B
    241254
     
    265278//! Return element (ix,iy,iz,it,iu) value
    266279template <class T>
    267 inline T const& TArray<T>::Elem(uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it, uint_4 iu) const
     280inline T const& TArray<T>::Elem(sa_size_t ix, sa_size_t iy, sa_size_t iz, sa_size_t it, sa_size_t iu) const
    268281{
    269282  return ( *( mNDBlock.Begin()+ offset_+
     
    274287//! Return element (ix,iy,iz,it,iu) value
    275288template <class T>
    276 inline T & TArray<T>::Elem(uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it, uint_4 iu)
     289inline T & TArray<T>::Elem(sa_size_t ix, sa_size_t iy, sa_size_t iz, sa_size_t it, sa_size_t iu)
    277290{
    278291  return ( *( mNDBlock.Begin()+ offset_+
     
    283296//! Return element (ix,iy,iz,it,iu) value with Check of indexes bound first
    284297template <class T>
    285 inline T const& TArray<T>::ElemCheckBound(uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it, uint_4 iu) const
     298inline T const& TArray<T>::ElemCheckBound(sa_size_t ix, sa_size_t iy, sa_size_t iz, sa_size_t it, sa_size_t iu) const
    286299{
    287300  CheckBound(ix, iy, iz, it, iu, 4);
     
    291304//! Return element (ix,iy,iz,it,iu) value with Check of indexes bound first
    292305template <class T>
    293 inline T & TArray<T>::ElemCheckBound(uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it, uint_4 iu)
     306inline T & TArray<T>::ElemCheckBound(sa_size_t ix, sa_size_t iy, sa_size_t iz, sa_size_t it, sa_size_t iu)
    294307{
    295308  CheckBound(ix, iy, iz, it, iu, 4);
     
    299312//! Return element (ix,iy,iz) value
    300313template <class T>
    301 inline T const& TArray<T>::operator()(uint_4 ix, uint_4 iy, uint_4 iz) const
     314inline T const& TArray<T>::operator()(sa_size_t ix, sa_size_t iy, sa_size_t iz) const
    302315{
    303316#ifdef SO_BOUNDCHECKING
     
    310323//! Return element (ix,iy,iz) value
    311324template <class T>
    312 inline T & TArray<T>::operator()(uint_4 ix, uint_4 iy, uint_4 iz)
     325inline T & TArray<T>::operator()(sa_size_t ix, sa_size_t iy, sa_size_t iz)
    313326{
    314327#ifdef SO_BOUNDCHECKING
     
    321334//! Operator () : return element (ix,iy,iz,it,iu) value
    322335template <class T>
    323 inline T const& TArray<T>::operator()(uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it, uint_4 iu) const
     336inline T const& TArray<T>::operator()(sa_size_t ix, sa_size_t iy, sa_size_t iz, sa_size_t it, sa_size_t iu) const
    324337{
    325338#ifdef SO_BOUNDCHECKING
     
    333346//! Operator () : return element (ix,iy,iz,it,iu) value
    334347template <class T>
    335 inline T & TArray<T>::operator()(uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it, uint_4 iu)
     348inline T & TArray<T>::operator()(sa_size_t ix, sa_size_t iy, sa_size_t iz, sa_size_t it, sa_size_t iu)
    336349{
    337350#ifdef SO_BOUNDCHECKING
     
    346359//! Operator [] : return element at positon ip
    347360template <class T>
    348 inline T const& TArray<T>::operator[](uint_8 ip) const
     361inline T const& TArray<T>::operator[](sa_size_t ip) const
    349362{
    350363#ifdef SO_BOUNDCHECKING
     
    356369//! Operator [] : return element at positon ip
    357370template <class T>
    358 inline T & TArray<T>::operator[](uint_8 ip)
     371inline T & TArray<T>::operator[](sa_size_t ip)
    359372{
    360373#ifdef SO_BOUNDCHECKING
     
    365378
    366379
    367 //! Return the value of first element
     380//! Converts to a scalar (value of first element) if the array size is equal to 1
    368381template <class T>
    369382inline T TArray<T>::toScalar()
Note: See TracChangeset for help on using the changeset viewer.