1 /*-----------------------------------------------------------------------------
3 Written by Francois Fleuret <francois.fleuret@inria.fr>
4 -----------------------------------------------------------------------------*/
11 //-----------------------------------------------------------------------------
14 void resetArraySize();
17 //-----------------------------------------------------------------------------
19 extern "C" void abort();
34 static void resetNb();
43 void absorb(Array<T> a);
47 inline Array<T>::Array(int s)
52 arraySize += s*sizeof(T);
57 inline Array<T>::Array()
64 inline Array<T>::Array(Array<T> &a)
68 // cerr<<"WARNING ARRAY DUPLICATION : "<<a.size<<" elements\n";
74 arraySize += size*sizeof(T);
76 for(k=0; k<size; k++) body[k] = a.body[k];
80 inline Array<T>::~Array()
86 arraySize -= size*sizeof(T);
89 cerr<<"ARRAY DEALLOCATION ERROR\n";
97 inline void Array<T>::kill()
103 arraySize -= size*sizeof(T);
106 cerr<<"ARRAY DEALLOCATION ERROR\n";
115 inline void Array<T>::copy(Array& a)
122 arraySize -= size*sizeof(T);
125 cerr<<"ARRAY DEALLOCATION ERROR\n";
134 arraySize += size*sizeof(T);
136 for(k=0; k<size; k++) body[k] = a.body[k];
140 inline void Array<T>::resize(int t)
146 arraySize -= size*sizeof(T);
149 cerr<<"ARRAY DEALLOCATION ERROR\n";
157 arraySize += t*sizeof(T);
162 inline void Array<T>::set(int p, T t)
165 if((p<0) || (p>=size))
167 cerr<<"ARRAY ERROR in set() size = "<<size<<" indice = "<<p<<"\n";
175 inline T Array<T>::get(int p)
178 if((p<0) || (p>=size))
180 cerr<<"ARRAY ERROR in get() size = "<<size<<" indice = "<<p<<"\n";
188 inline T* Array<T>::getref(int p)
191 if((p<0) || (p>=size))
193 cerr<<"ARRAY ERROR in getref() size = "<<size<<" indice = "<<p<<"\n";
201 inline void Array<T>::absorb(Array<T> a)
207 arraySize -= size*sizeof(T);
210 cerr<<"ARRAY DEALLOCATION ERROR\n";
221 //-----------------------------------------------------------------------------
225 //-----------------------------------------------------------------------------