52 void copy_(T* p,
const T* q,
int len)
const;
53 void set_(T* begin, T* end,
const T& val);
67 inline operator const T*();
68 inline Array1D & operator=(
const T &a);
73 inline T& operator[](
int i);
74 inline T& operator()(
int i);
75 inline const T& operator[](
int i)
const;
76 inline const T& operator()(
int i)
const;
77 inline int dim1()
const;
78 inline int dim()
const;
84 inline int ref_count()
const;
96Array1D<T>::Array1D(
const Array1D<T> &A) : v_(A.v_), n_(A.n_),
100 std::cout <<
"Created Array1D(const Array1D<T> &A) \n";
106Array1D<T>::Array1D(
int n) : v_(n), n_(n), data_(v_.begin())
109 std::cout <<
"Created Array1D(int n) \n";
114Array1D<T>::Array1D(
int n,
const T &val) : v_(n), n_(n), data_(v_.begin())
117 std::cout <<
"Created Array1D(int n, const T& val) \n";
119 set_(data_, data_+ n, val);
124Array1D<T>::Array1D(
int n, T *a) : v_(a), n_(n) , data_(v_.begin())
127 std::cout <<
"Created Array1D(int n, T* a) \n";
132inline Array1D<T>::operator T*()
139inline Array1D<T>::operator
const T*()
147inline T& Array1D<T>::operator[](
int i)
149#ifdef TNT_BOUNDS_CHECK
157inline const T& Array1D<T>::operator[](
int i)
const
159#ifdef TNT_BOUNDS_CHECK
169inline T& Array1D<T>::operator()(
int i)
171#ifdef TNT_BOUNDS_CHECK
179inline const T& Array1D<T>::operator()(
int i)
const
181#ifdef TNT_BOUNDS_CHECK
192Array1D<T> & Array1D<T>::operator=(
const T &a)
194 set_(data_, data_+n_, a);
199Array1D<T> Array1D<T>::copy()
const
202 copy_(A.data_, data_, n_);
209Array1D<T> & Array1D<T>::inject(
const Array1D &A)
212 copy_(data_, A.data_, n_);
222Array1D<T> & Array1D<T>::ref(
const Array1D<T> &A)
235Array1D<T> & Array1D<T>::operator=(
const Array1D<T> &A)
241inline int Array1D<T>::dim1()
const {
return n_; }
244inline int Array1D<T>::dim()
const {
return n_; }
247Array1D<T>::~Array1D() {}
253inline int Array1D<T>::ref_count()
const
255 return v_.ref_count();
259inline Array1D<T> Array1D<T>::subarray(
int i0,
int i1)
261 if ((i0 >= 0) && (i1 < n_) || (i0 <= i1))
280void Array1D<T>::set_(T* begin, T* end,
const T& a)
282 for (T* p=begin; p<end; p++)
288void Array1D<T>::copy_(T* p,
const T* q,
int len)
const