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


Ignore:
Timestamp:
Apr 3, 2000, 7:36:01 PM (25 years ago)
Author:
ansari
Message:

Amelioation / debugging de la classe TArray<T> - TVector et TMatrix

heritent maintenant de TArray<T> - Classe RCMatrix rendu prive au fichier
sopemtx.cc - linfit.cc integre a sopemtx.cc

Reza 03/04/2000

File:
1 edited

Legend:

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

    r787 r804  
    2828  // Creation / destruction
    2929  TArray();
    30   TArray(uint_4 ndim, uint_4 * siz, uint_4 step =1);
    31   TArray(uint_4 nx, uint_4 ny=0, uint_4 nz=0);
    32   TArray(uint_4 ndim, uint_4 * siz, NDataBlock<T> & db, bool share=false, uint_4 step=1, uint_8 offset=0);
    33   TArray(uint_4 ndim, uint_4 * siz, T* values, uint_4 step=1, uint_8 offset=0, Bridge* br=NULL);
     30  TArray(uint_4 ndim, const uint_4 * siz, uint_4 step =1);
     31  TArray(uint_4 nx, uint_4 ny=0, uint_4 nz=0, uint_4 nt=0, uint_4 nu=0);
     32  TArray(uint_4 ndim, const uint_4 * siz, NDataBlock<T> & db, bool share=false, uint_4 step=1, uint_8 offset=0);
     33  TArray(uint_4 ndim, const uint_4 * siz, T* values, uint_4 step=1, uint_8 offset=0, Bridge* br=NULL);
    3434  TArray(const TArray<T>& a);
    3535  TArray(const TArray<T>& a, bool share);
     
    3838
    3939  // A = B : partage les donnees si "a" est temporaire, clone sinon.
    40   virtual TArray<T>& operator = (const TArray<T>& a);
     40  inline  TArray<T>& operator = (const TArray<T>& a) { return Set(a); }
     41  virtual TArray<T>& Set(const TArray<T>& a);
    4142
    4243  // Gestion taille/Remplissage
    4344  virtual void Clone(const TArray<T>& a);
    44   virtual void ReSize(uint_4 ndim, uint_4 * siz, uint_4 step=1);
    45   virtual void Realloc(uint_4 ndim, uint_4 * siz, uint_4 step=1, bool force=false);
     45  void ReSize(uint_4 ndim, uint_4 * siz, uint_4 step=1);
     46  void Realloc(uint_4 ndim, uint_4 * siz, uint_4 step=1, bool force=false);
    4647
    4748  // Compacts size=1 array dimensions
     
    4950  virtual TArray<T>& CompactTrailingDimensions();
    5051
    51   // SubArrays
    52   virtual TArray<T> operator () (Range rx, Range ry, Range rz=0, Range rt=0, Range ru=0);
    53 
     52  // Packing array elements in memory
     53  virtual TArray<T> PackElements(bool force=false) const ;
     54
     55  // SubArrays - $CHECK$ Reza 03/2000 je ne sais pas s'il faut declarer ca const ??
     56  TArray<T> SubArray(Range rx, Range ry, Range rz, Range rt, Range ru) const ;
     57  inline TArray<T> operator () (Range rx, Range ry, Range rz, Range rt=0, Range ru=0) const
     58                   { return  SubArray(rx, ry, rz, rt, ru); }
    5459
    5560  // ---- Access to data
     
    8388  inline T toScalar();
    8489// Met les elements a une suite de valeurs
    85   virtual TArray<T>&  operator = (Sequence seq);
     90  virtual TArray<T>&  Set(Sequence seq);
     91  inline  TArray<T>&  operator = (Sequence seq)    { return Set(seq); }
    8692// A = x (tous les elements a x)
    87   virtual TArray<T>&  operator = (T x);
     93  virtual TArray<T>&  Set(T x);
     94  inline  TArray<T>&  operator = (T x)             { return Set(x); }
    8895// A += -= *= /= x (ajoute, soustrait, ... x a tous les elements)
    89   virtual TArray<T>&  operator += (T x);
    90   virtual TArray<T>&  operator -= (T x);
    91   virtual TArray<T>&  operator *= (T x);
    92   virtual TArray<T>&  operator /= (T x);
     96  virtual TArray<T>&  Add(T x);
     97  inline  TArray<T>&  operator += (T x)            { return Add(x); }
     98  virtual TArray<T>&  Sub(T x);
     99  inline  TArray<T>&  operator -= (T x)            { return Sub(x); }
     100  virtual TArray<T>&  Mul(T x);
     101  inline  TArray<T>&  operator *= (T x)            { return Mul(x); }
     102  virtual TArray<T>&  Div(T x);
     103  inline  TArray<T>&  operator /= (T x)            { return Div(x); }
     104  virtual TArray<T>&  SubInv(T x);  //   A ---> x-A
     105  virtual TArray<T>&  DivInv(T x);  //   A ---> x/A
     106
    93107// A += -=  (ajoute, soustrait element par element les deux tableaux )
    94   virtual TArray<T>&  operator += (const TArray<T>& a);
    95   virtual TArray<T>&  operator -= (const TArray<T>& a);
     108  virtual TArray<T>&  AddElt(const TArray<T>& a);
     109  inline  TArray<T>&  operator += (const TArray<T>& a)  { return AddElt(a); }
     110  virtual TArray<T>&  SubElt(const TArray<T>& a);
     111  inline  TArray<T>&  operator -= (const TArray<T>& a)  { return SubElt(a); }
    96112// Multiplication, division element par element les deux tableaux
    97   virtual TArray<T>&  MultElt(const TArray<T>& a);
     113  virtual TArray<T>&  MulElt(const TArray<T>& a);
    98114  virtual TArray<T>&  DivElt(const TArray<T>& a);
     115// Recopie des valeurs, element par element
     116  virtual TArray<T>&  CopyElt(const TArray<T>& a);
     117
     118// Somme et produit des elements
     119  virtual T Sum() const ;
     120  virtual T Product() const ;
    99121
    100122// Impression, I/O, ...
     
    124146
    125147template <class T> inline TArray<T> operator + (const TArray<T>& a, T b)
    126     {TArray<T> result(a); result.SetTemp(true); result += b; return result;}
     148    {TArray<T> result(a); result.SetTemp(true); result.Add(b); return result;}
    127149
    128150template <class T> inline TArray<T> operator + (T b,const TArray<T>& a)
    129     {TArray<T> result(a); result.SetTemp(true); result += b; return result;}
     151    {TArray<T> result(a); result.SetTemp(true); result.Add(b); return result;}
    130152
    131153template <class T> inline TArray<T> operator - (const TArray<T>& a, T b)
    132     {TArray<T> result(a); result.SetTemp(true); result -= b; return result;}
     154    {TArray<T> result(a); result.SetTemp(true); result.Sub(b); return result;}
    133155
    134156template <class T> inline TArray<T> operator - (T b,const TArray<T>& a)
    135     {TArray<T> result(a); result.SetTemp(true);
    136      result.DataBlock() = b-result.DataBlock(); return result;}
     157    {TArray<T> result(a); result.SetTemp(true); result.SubInv(b); return result;}
    137158
    138159template <class T> inline TArray<T> operator * (const TArray<T>& a, T b)
    139     {TArray<T> result(a); result.SetTemp(true); result *= b; return result;}
     160    {TArray<T> result(a); result.SetTemp(true); result.Mul(b); return result;}
    140161
    141162template <class T> inline TArray<T> operator * (T b,const TArray<T>& a)
    142     {TArray<T> result(a); result.SetTemp(true); result *= b; return result;}
     163    {TArray<T> result(a); result.SetTemp(true); result.Mul(b); return result;}
    143164
    144165template <class T> inline TArray<T> operator / (const TArray<T>& a, T b)
    145     {TArray<T> result(a); result.SetTemp(true); result /= b; return result;}
     166    {TArray<T> result(a); result.SetTemp(true); result.DivInv(b); return result;}
    146167
    147168////////////////////////////////////////////////////////////////
     
    150171template <class T>
    151172inline TArray<T> operator + (const TArray<T>& a,const TArray<T>& b)
    152     {TArray<T> result(a); result.SetTemp(true); result += b; return result;}
     173    {TArray<T> result(a); result.SetTemp(true); result.AddElt(b); return result;}
    153174
    154175template <class T>
    155176inline TArray<T> operator - (const TArray<T>& a,const TArray<T>& b)
    156     {TArray<T> result(a); result.SetTemp(true); result += b; return result;}
     177    {TArray<T> result(a); result.SetTemp(true); result.SubElt(b); return result;}
    157178
    158179
     
    180201{
    181202  CheckBound(ix, iy, iz, it, iu, 4);
    182   Elem(ix, iy, iz, it, iu);
     203  return(Elem(ix, iy, iz, it, iu));
    183204}
    184205
     
    187208{
    188209  CheckBound(ix, iy, iz, it, iu, 4);
    189   Elem(ix, iy, iz, it, iu);
     210  return(Elem(ix, iy, iz, it, iu));
    190211}
    191212
     
    259280}
    260281
     282// Typedef pour simplifier
     283typedef TArray<r_8> Array;
     284
    261285} // Fin du namespace
    262286
Note: See TracChangeset for help on using the changeset viewer.