diff liboctave/Array.cc @ 1989:a4b0826e240c

[project @ 1996-03-02 00:33:22 by jwe]
author jwe
date Sat, 02 Mar 1996 00:34:12 +0000
parents 1281a23a34dd
children 1b57120c997b
line wrap: on
line diff
--- a/liboctave/Array.cc
+++ b/liboctave/Array.cc
@@ -211,383 +211,6 @@
   return rep->data;
 }
 
-// Two dimensional array class.
-
-template <class T>
-T&
-Array2<T>::checkelem (int i, int j)
-{
-  if (i < 0 || j < 0 || i >= d1 || j >= d2)
-    {
-      (*current_liboctave_error_handler) ("range error");
-      static T foo;
-      return foo;
-    }
-  return Array<T>::elem (d1*j+i);
-}
-
-template <class T>
-T
-Array2<T>::elem (int i, int j) const
-{
-  return Array<T>::elem (d1*j+i);
-}
-
-template <class T>
-T
-Array2<T>::checkelem (int i, int j) const
-{
-  if (i < 0 || j < 0 || i >= d1 || j >= d2)
-    {
-      (*current_liboctave_error_handler) ("range error");
-      T foo;
-      static T *bar = &foo;
-      return foo;
-    }
-  return Array<T>::elem (d1*j+i);
-}
-
-template <class T>
-T
-Array2<T>::operator () (int i, int j) const
-{
-  if (i < 0 || j < 0 || i >= d1 || j >= d2)
-    {
-      (*current_liboctave_error_handler) ("range error");
-      T foo;
-      static T *bar = &foo;
-      return foo;
-    }
-  return Array<T>::elem (d1*j+i);
-}
-
-template <class T>
-void
-Array2<T>::resize (int r, int c)
-{
-  if (r < 0 || c < 0)
-    {
-      (*current_liboctave_error_handler) ("can't resize to negative dimension");
-      return;
-    }
-
-  if (r == dim1 () && c == dim2 ())
-    return;
-
-  ArrayRep *old_rep = rep;
-  const T *old_data = data ();
-
-  int old_d1 = dim1 ();
-  int old_d2 = dim2 ();
-  int old_len = length ();
-
-  rep = new ArrayRep (r*c);
-
-  d1 = r;
-  d2 = c;
-
-  if (old_data && old_len > 0)
-    {
-      int min_r = old_d1 < r ? old_d1 : r;
-      int min_c = old_d2 < c ? old_d2 : c;
-
-      for (int j = 0; j < min_c; j++)
-	for (int i = 0; i < min_r; i++)
-	  xelem (i, j) = old_data[old_d1*j+i];
-    }
-
-  if (--old_rep->count <= 0)
-    delete old_rep;
-}
-
-template <class T>
-void
-Array2<T>::resize (int r, int c, const T& val)
-{
-  if (r < 0 || c < 0)
-    {
-      (*current_liboctave_error_handler) ("can't resize to negative dimension");
-      return;
-    }
-
-  if (r == dim1 () && c == dim2 ())
-    return;
-
-  ArrayRep *old_rep = rep;
-  const T *old_data = data ();
-  int old_d1 = dim1 ();
-  int old_d2 = dim2 ();
-  int old_len = length ();
-
-  rep = new ArrayRep (r*c);
-
-  d1 = r;
-  d2 = c;
-
-  int min_r = old_d1 < r ? old_d1 : r;
-  int min_c = old_d2 < c ? old_d2 : c;
-
-  if (old_data && old_len > 0)
-    {
-      for (int j = 0; j < min_c; j++)
-	for (int i = 0; i < min_r; i++)
-	  xelem (i, j) = old_data[old_d1*j+i];
-    }
-
-  for (int j = 0; j < min_c; j++)
-    for (int i = min_r; i < r; i++)
-      xelem (i, j) = val;
-
-  for (int j = min_c; j < c; j++)
-    for (int i = 0; i < r; i++)
-      xelem (i, j) = val;
-
-  if (--old_rep->count <= 0)
-    delete old_rep;
-}
-
-template <class T>
-Array2<T>&
-Array2<T>::insert (const Array2<T>& a, int r, int c)
-{
-  int a_rows = a.rows ();
-  int a_cols = a.cols ();
-
-  if (r < 0 || r + a_rows > rows () || c < 0 || c + a_cols > cols ())
-    {
-      (*current_liboctave_error_handler) ("range error for insert");
-      return *this;
-    }
-
-  for (int j = 0; j < a_cols; j++)
-    for (int i = 0; i < a_rows; i++)
-      elem (r+i, c+j) = a.elem (i, j);
-
-  return *this;
-}
-
-// Three dimensional array class.
-
-template <class T>
-T&
-Array3<T>::checkelem (int i, int j, int k)
-{
-  if (i < 0 || j < 0 || k < 0 || i >= d1 || j >= d2 || k >= d3)
-    {
-      (*current_liboctave_error_handler) ("range error");
-      static T foo;
-      return foo;
-    }
-  return Array2<T>::elem (i, d1*k+j);
-}
-
-template <class T>
-T
-Array3<T>::elem (int i, int j, int k) const
-{
-  return Array2<T>::elem (i, d2*k+j);
-}
-
-template <class T>
-T
-Array3<T>::checkelem (int i, int j, int k) const
-{
-  if (i < 0 || j < 0 || k < 0 || i >= d1 || j >= d2 || k >= d3)
-    {
-      (*current_liboctave_error_handler) ("range error");
-      T foo;
-      static T *bar = &foo;
-      return foo;
-    }
-  return Array2<T>::elem (i, d1*k+j);
-}
-
-template <class T>
-T
-Array3<T>::operator () (int i, int j, int k) const
-{
-  if (i < 0 || j < 0 || k < 0 || i >= d1 || j >= d2 || k >= d3)
-    {
-      (*current_liboctave_error_handler) ("range error");
-      T foo;
-      static T *bar = &foo;
-      return foo;
-    }
-  return Array2<T>::elem (i, d2*k+j);
-}
-
-template <class T>
-void
-Array3<T>::resize (int n, int m, int k)
-{
-  assert (0); // XXX FIXME XXX
-}
-
-template <class T>
-void
-Array3<T>::resize (int n, int m, int k, const T& val)
-{
-  assert (0); // XXX FIXME XXX
-}
-
-// A two-dimensional array with diagonal elements only.
-
-#ifndef NO_DIAG_ARRAY
-#if 1
-template <class T>
-T&
-DiagArray<T>::elem (int r, int c)
-{
-  static T foo (0);
-  return (r == c) ? Array<T>::elem (r) : foo;
-}
-
-template <class T>
-T&
-DiagArray<T>::checkelem (int r, int c)
-{
-  static T foo (0);
-  if (r < 0 || c < 0 || r >= nr || c >= nc)
-    {
-      (*current_liboctave_error_handler) ("range error");
-      return foo;
-    }
-  return (r == c) ? Array<T>::elem (r) : foo;
-}
-
-template <class T>
-T&
-DiagArray<T>::operator () (int r, int c)
-{
-  static T foo (0);
-  if (r < 0 || c < 0 || r >= nr || c >= nc)
-    {
-      (*current_liboctave_error_handler) ("range error");
-      return foo;
-    }
-  return (r == c) ? Array<T>::elem (r) : foo;
-}
-#endif
-
-template <class T>
-T&
-DiagArray<T>::xelem (int r, int c)
-{
-  static T foo (0);
-  return (r == c) ? Array<T>::xelem (r) : foo;
-}
-
-template <class T>
-T
-DiagArray<T>::elem (int r, int c) const
-{
-  return (r == c) ? Array<T>::elem (r) : T (0);
-}
-
-template <class T>
-T
-DiagArray<T>::checkelem (int r, int c) const
-{
-  if (r < 0 || c < 0 || r >= nr || c >= nc)
-    {
-      (*current_liboctave_error_handler) ("range error");
-      T foo;
-      static T *bar = &foo;
-      return foo;
-    }
-  return (r == c) ? Array<T>::elem (r) : T (0);
-}
-
-template <class T>
-T
-DiagArray<T>::operator () (int r, int c) const
-{
-  if (r < 0 || c < 0 || r >= nr || c >= nc)
-    {
-      (*current_liboctave_error_handler) ("range error");
-      T foo;
-      static T *bar = &foo;
-      return foo;
-    }
-  return (r == c) ? Array<T>::elem (r) : T (0);
-}
-
-template <class T>
-void
-DiagArray<T>::resize (int r, int c)
-{
-  if (r < 0 || c < 0)
-    {
-      (*current_liboctave_error_handler) ("can't resize to negative dimensions");
-      return;
-    }
-
-  if (r == dim1 () && c == dim2 ())
-    return;
-
-  ArrayRep *old_rep = rep;
-  const T *old_data = data ();
-  int old_len = length ();
-
-  int new_len = r < c ? r : c;
-
-  rep = new ArrayRep (new_len);
-
-  nr = r;
-  nc = c;
-
-  if (old_data && old_len > 0)
-    {
-      int min_len = old_len < new_len ? old_len : new_len;
-
-      for (int i = 0; i < min_len; i++)
-	xelem (i, i) = old_data[i];
-    }
-
-  if (--old_rep->count <= 0)
-    delete old_rep;
-}
-
-template <class T>
-void
-DiagArray<T>::resize (int r, int c, const T& val)
-{
-  if (r < 0 || c < 0)
-    {
-      (*current_liboctave_error_handler) ("can't resize to negative dimensions");
-      return;
-    }
-
-  if (r == dim1 () && c == dim2 ())
-    return;
-
-  ArrayRep *old_rep = rep;
-  const T *old_data = data ();
-  int old_len = length ();
-
-  int new_len = r < c ? r : c;
-
-  rep = new ArrayRep (new_len);
-
-  nr = r;
-  nc = c;
-
-  int min_len = old_len < new_len ? old_len : new_len;
-
-  if (old_data && old_len > 0)
-    {
-      for (int i = 0; i < min_len; i++)
-	xelem (i, i) = old_data[i];
-    }
-
-  for (int i = min_len; i < new_len; i++)
-    xelem (i, i) = val;
-
-  if (--old_rep->count <= 0)
-    delete old_rep;
-}
-#endif
-
 /*
 ;;; Local Variables: ***
 ;;; mode: C++ ***