diff src/ov-base-mat.cc @ 4513:508238e65af7

[project @ 2003-09-19 21:40:57 by jwe]
author jwe
date Fri, 19 Sep 2003 21:41:21 +0000
parents 7afd4bf05aa8
children 8e1c04e506ce
line wrap: on
line diff
--- a/src/ov-base-mat.cc
+++ b/src/ov-base-mat.cc
@@ -144,10 +144,13 @@
 
     default:
       {
-	std::string n = type_name ();
+	Array<idx_vector> idx_vec (len);
 
-	error ("invalid number of indices (%d) for %s value",
-	       len, n.c_str ());
+	for (int i = 0; i < len; i++)
+	  idx_vec(i) = idx(i).index_vector ();
+
+	retval = MT (matrix.index (idx_vec, resize_ok,
+				   MT::resize_fill_value ()));
       }
       break;
     }
@@ -161,35 +164,10 @@
 {
   int len = idx.length ();
 
-  switch (len)
-    {
-    case 2:
-      {
-	idx_vector i = idx (0).index_vector ();
-	idx_vector j = idx (1).index_vector ();
-
-	matrix.set_index (i);
-	matrix.set_index (j);
-
-	::assign (matrix, rhs, MT::resize_fill_value ());
-      }
-      break;
+  for (int i = 0; i < len; i++)
+    matrix.set_index (idx(i).index_vector ());
 
-    case 1:
-      {
-	idx_vector i = idx (0).index_vector ();
-
-	matrix.set_index (i);
-
-	::assign (matrix, rhs, MT::resize_fill_value ());
-      }
-      break;
-
-    default:
-      error ("invalid number of indices (%d) for indexed assignment",
-	     len);
-      break;
-    }
+  ::assign (matrix, rhs, MT::resize_fill_value ());
 }
 
 template <class MT>