Mercurial > hg > octave-nkf
diff liboctave/Array.cc @ 1735:d2ee993d40cd
[project @ 1996-01-12 07:46:09 by jwe]
author | jwe |
---|---|
date | Fri, 12 Jan 1996 07:48:03 +0000 |
parents | e4d94a757f01 |
children | 1281a23a34dd |
line wrap: on
line diff
--- a/liboctave/Array.cc +++ b/liboctave/Array.cc @@ -42,54 +42,13 @@ #include "lo-error.h" -// The real representation of all arrays. - -template <class T> -ArrayRep<T>::ArrayRep (int n) -{ - len = n; - count = 1; - data = new T [len]; -} - -template <class T> -ArrayRep<T>::ArrayRep (const ArrayRep<T>& a) -{ - len = a.len; - count = 1; - - data = new T [len]; - for (int i = 0; i < len; i++) - data[i] = a.data[i]; -} - -template <class T> -ArrayRep<T>::~ArrayRep (void) -{ - delete [] data; -} - -template <class T> -T& -ArrayRep<T>::elem (int n) -{ - return data[n]; -} - -template <class T> -T -ArrayRep<T>::elem (int n) const -{ - return data[n]; -} - // One dimensional array class. Handles the reference counting for // all the derived classes. template <class T> Array<T>::Array (int n, const T& val) { - rep = new ArrayRep<T> (n); + rep = new ArrayRep (n); for (int i = 0; i < n; i++) rep->data[i] = val; @@ -188,11 +147,11 @@ if (n == length ()) return; - ArrayRep<T> *old_rep = rep; + ArrayRep *old_rep = rep; const T *old_data = data (); int old_len = length (); - rep = new ArrayRep<T> (n); + rep = new ArrayRep (n); if (old_data && old_len > 0) { @@ -219,11 +178,11 @@ if (n == length ()) return; - ArrayRep<T> *old_rep = rep; + ArrayRep *old_rep = rep; const T *old_data = data (); int old_len = length (); - rep = new ArrayRep<T> (n); + rep = new ArrayRep (n); int min_len = old_len < n ? old_len : n; @@ -247,7 +206,7 @@ if (rep->count > 1) { --rep->count; - rep = new ArrayRep<T> (*rep); + rep = new ArrayRep (*rep); } return rep->data; } @@ -315,14 +274,14 @@ if (r == dim1 () && c == dim2 ()) return; - ArrayRep<T> *old_rep = rep; + ArrayRep *old_rep = rep; const T *old_data = data (); int old_d1 = dim1 (); int old_d2 = dim2 (); int old_len = length (); - rep = new ArrayRep<T> (r*c); + rep = new ArrayRep (r*c); d1 = r; d2 = c; @@ -354,13 +313,13 @@ if (r == dim1 () && c == dim2 ()) return; - ArrayRep<T> *old_rep = rep; + ArrayRep *old_rep = rep; const T *old_data = data (); int old_d1 = dim1 (); int old_d2 = dim2 (); int old_len = length (); - rep = new ArrayRep<T> (r*c); + rep = new ArrayRep (r*c); d1 = r; d2 = c; @@ -566,13 +525,13 @@ if (r == dim1 () && c == dim2 ()) return; - ArrayRep<T> *old_rep = rep; + ArrayRep *old_rep = rep; const T *old_data = data (); int old_len = length (); int new_len = r < c ? r : c; - rep = new ArrayRep<T> (new_len); + rep = new ArrayRep (new_len); nr = r; nc = c; @@ -602,13 +561,13 @@ if (r == dim1 () && c == dim2 ()) return; - ArrayRep<T> *old_rep = rep; + ArrayRep *old_rep = rep; const T *old_data = data (); int old_len = length (); int new_len = r < c ? r : c; - rep = new ArrayRep<T> (new_len); + rep = new ArrayRep (new_len); nr = r; nc = c;