Changeset 804 in Sophya for trunk/SophyaLib/TArray/tarray.h
- Timestamp:
- Apr 3, 2000, 7:36:01 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/TArray/tarray.h
r787 r804 28 28 // Creation / destruction 29 29 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); 34 34 TArray(const TArray<T>& a); 35 35 TArray(const TArray<T>& a, bool share); … … 38 38 39 39 // 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); 41 42 42 43 // Gestion taille/Remplissage 43 44 virtual void Clone(const TArray<T>& a); 44 v irtual void ReSize(uint_4 ndim, uint_4 * siz, uint_4 step=1);45 v irtual 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); 46 47 47 48 // Compacts size=1 array dimensions … … 49 50 virtual TArray<T>& CompactTrailingDimensions(); 50 51 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); } 54 59 55 60 // ---- Access to data … … 83 88 inline T toScalar(); 84 89 // 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); } 86 92 // 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); } 88 95 // 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 93 107 // 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); } 96 112 // Multiplication, division element par element les deux tableaux 97 virtual TArray<T>& Mul tElt(const TArray<T>& a);113 virtual TArray<T>& MulElt(const TArray<T>& a); 98 114 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 ; 99 121 100 122 // Impression, I/O, ... … … 124 146 125 147 template <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;} 127 149 128 150 template <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;} 130 152 131 153 template <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;} 133 155 134 156 template <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;} 137 158 138 159 template <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;} 140 161 141 162 template <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;} 143 164 144 165 template <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;} 146 167 147 168 //////////////////////////////////////////////////////////////// … … 150 171 template <class T> 151 172 inline 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;} 153 174 154 175 template <class T> 155 176 inline 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;} 157 178 158 179 … … 180 201 { 181 202 CheckBound(ix, iy, iz, it, iu, 4); 182 Elem(ix, iy, iz, it, iu);203 return(Elem(ix, iy, iz, it, iu)); 183 204 } 184 205 … … 187 208 { 188 209 CheckBound(ix, iy, iz, it, iu, 4); 189 Elem(ix, iy, iz, it, iu);210 return(Elem(ix, iy, iz, it, iu)); 190 211 } 191 212 … … 259 280 } 260 281 282 // Typedef pour simplifier 283 typedef TArray<r_8> Array; 284 261 285 } // Fin du namespace 262 286
Note:
See TracChangeset
for help on using the changeset viewer.