Changeset 1156 in Sophya for trunk/SophyaLib/TArray/tarray.h
- Timestamp:
- Aug 29, 2000, 6:10:32 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/TArray/tarray.h
r1113 r1156 29 29 // Creation / destruction 30 30 TArray(); 31 TArray( uint_4 ndim, const uint_4 * siz, uint_4step =1);32 TArray( uint_4 nx, uint_4 ny=0, uint_4 nz=0, uint_4 nt=0, uint_4nu=0);33 TArray( uint_4 ndim, const uint_4 * siz, NDataBlock<T> & db, bool share=false, uint_4 step=1, uint_8offset=0);34 TArray( uint_4 ndim, const uint_4 * siz, T* values, uint_4 step=1, uint_8offset=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); 35 35 TArray(const TArray<T>& a); 36 36 TArray(const TArray<T>& a, bool share); … … 57 57 58 58 void Share(const TArray<T>& a); 59 void ReSize( uint_4 ndim, uint_4 * siz, uint_4step=1);60 void Realloc( uint_4 ndim, uint_4 * siz, uint_4step=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); 61 61 62 62 // Compacts size=1 array dimensions … … 88 88 // ---- Access to data 89 89 // Definition of virtual element acces method inherited from BaseArray class 90 virtual MuTyV & ValueAtPosition( uint_8ip) const;90 virtual MuTyV & ValueAtPosition(sa_size_t ip) const; 91 91 92 92 // Data Access: operator overloaded inline acces methods 93 inline T const& operator()( uint_4 ix, uint_4 iy, uint_4iz) const ;94 inline T& operator()( uint_4 ix, uint_4 iy, uint_4iz);95 inline T const& operator()( uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it, uint_4iu=0) const ;96 inline T& operator()( uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it, uint_4iu=0);97 inline T const& operator[]( uint_8ip) const ;98 inline T& operator[]( uint_8ip);99 100 inline T const& Elem( uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it=0, uint_4iu=0) const ;101 inline T& Elem( uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it=0, uint_4iu=0);102 inline T const& ElemCheckBound( uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it=0, uint_4iu=0) const ;103 inline T& ElemCheckBound( uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it=0, uint_4iu=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); 104 104 105 105 //! Return pointer to first element adress … … 143 143 inline TArray<T>& operator /= (T x) { return Div(x); } 144 144 145 // applique le signe moins a tous les elements 146 virtual TArray<T>& NegateElt(); 147 145 148 // A += -= (ajoute, soustrait element par element les deux tableaux ) 146 149 virtual TArray<T>& AddElt(const TArray<T>& a); … … 238 241 239 242 //////////////////////////////////////////////////////////////// 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. */ 248 template <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 //////////////////////////////////////////////////////////////// 240 253 // Surcharge d'operateurs C = A (+,-) B 241 254 … … 265 278 //! Return element (ix,iy,iz,it,iu) value 266 279 template <class T> 267 inline T const& TArray<T>::Elem( uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it, uint_4iu) const280 inline 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 268 281 { 269 282 return ( *( mNDBlock.Begin()+ offset_+ … … 274 287 //! Return element (ix,iy,iz,it,iu) value 275 288 template <class T> 276 inline T & TArray<T>::Elem( uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it, uint_4iu)289 inline T & TArray<T>::Elem(sa_size_t ix, sa_size_t iy, sa_size_t iz, sa_size_t it, sa_size_t iu) 277 290 { 278 291 return ( *( mNDBlock.Begin()+ offset_+ … … 283 296 //! Return element (ix,iy,iz,it,iu) value with Check of indexes bound first 284 297 template <class T> 285 inline T const& TArray<T>::ElemCheckBound( uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it, uint_4iu) const298 inline 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 286 299 { 287 300 CheckBound(ix, iy, iz, it, iu, 4); … … 291 304 //! Return element (ix,iy,iz,it,iu) value with Check of indexes bound first 292 305 template <class T> 293 inline T & TArray<T>::ElemCheckBound( uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it, uint_4iu)306 inline T & TArray<T>::ElemCheckBound(sa_size_t ix, sa_size_t iy, sa_size_t iz, sa_size_t it, sa_size_t iu) 294 307 { 295 308 CheckBound(ix, iy, iz, it, iu, 4); … … 299 312 //! Return element (ix,iy,iz) value 300 313 template <class T> 301 inline T const& TArray<T>::operator()( uint_4 ix, uint_4 iy, uint_4iz) const314 inline T const& TArray<T>::operator()(sa_size_t ix, sa_size_t iy, sa_size_t iz) const 302 315 { 303 316 #ifdef SO_BOUNDCHECKING … … 310 323 //! Return element (ix,iy,iz) value 311 324 template <class T> 312 inline T & TArray<T>::operator()( uint_4 ix, uint_4 iy, uint_4iz)325 inline T & TArray<T>::operator()(sa_size_t ix, sa_size_t iy, sa_size_t iz) 313 326 { 314 327 #ifdef SO_BOUNDCHECKING … … 321 334 //! Operator () : return element (ix,iy,iz,it,iu) value 322 335 template <class T> 323 inline T const& TArray<T>::operator()( uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it, uint_4iu) const336 inline 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 324 337 { 325 338 #ifdef SO_BOUNDCHECKING … … 333 346 //! Operator () : return element (ix,iy,iz,it,iu) value 334 347 template <class T> 335 inline T & TArray<T>::operator()( uint_4 ix, uint_4 iy, uint_4 iz, uint_4 it, uint_4iu)348 inline T & TArray<T>::operator()(sa_size_t ix, sa_size_t iy, sa_size_t iz, sa_size_t it, sa_size_t iu) 336 349 { 337 350 #ifdef SO_BOUNDCHECKING … … 346 359 //! Operator [] : return element at positon ip 347 360 template <class T> 348 inline T const& TArray<T>::operator[]( uint_8ip) const361 inline T const& TArray<T>::operator[](sa_size_t ip) const 349 362 { 350 363 #ifdef SO_BOUNDCHECKING … … 356 369 //! Operator [] : return element at positon ip 357 370 template <class T> 358 inline T & TArray<T>::operator[]( uint_8ip)371 inline T & TArray<T>::operator[](sa_size_t ip) 359 372 { 360 373 #ifdef SO_BOUNDCHECKING … … 365 378 366 379 367 //! Return the value of first element380 //! Converts to a scalar (value of first element) if the array size is equal to 1 368 381 template <class T> 369 382 inline T TArray<T>::toScalar()
Note:
See TracChangeset
for help on using the changeset viewer.