diff src/data.cc @ 3307:b6c74a0772b5

[project @ 1999-10-21 03:09:52 by jwe]
author jwe
date Thu, 21 Oct 1999 03:09:53 +0000
parents 4964d5391acc
children 6923abb04e16
line wrap: on
line diff
--- a/src/data.cc
+++ b/src/data.cc
@@ -453,33 +453,12 @@
       return retval;
     }
 
-  int n = ABS (k) + 1;
-
   if (a.is_real_type ())
     {
-      if (a.is_scalar_type ())
-	{
-	  double d = a.double_value ();
+      Matrix m = a.matrix_value ();
 
-	  if (k == 0)
-	    retval = d;
-	  else if (k > 0)
-	    {
-	      Matrix m (n, n, 0.0);
-	      m (0, k) = d;
-	      retval = m;
-	    }
-	  else if (k < 0)
-	    {
-	      Matrix m (n, n, 0.0);
-	      m (-k, 0) = d;
-	      retval = m;
-	    }
-	}
-      else if (a.is_matrix_type ())
+      if (! error_state)
 	{
-	  Matrix m = a.matrix_value ();
-
 	  int nr = m.rows ();
 	  int nc = m.columns ();
 
@@ -493,34 +472,13 @@
 	      retval = d;
 	    }
 	}
-      else
-	gripe_wrong_type_arg ("diag", a);
     }
   else if (a.is_complex_type ())
     {
-      if (a.is_scalar_type ())
-	{
-	  Complex c = a.complex_value ();
+      ComplexMatrix cm = a.complex_matrix_value ();
 
-	  if (k == 0)
-	    retval = c;
-	  else if (k > 0)
-	    {
-	      ComplexMatrix m (n, n, 0.0);
-	      m (0, k) = c;
-	      retval = m;
-	    }
-	  else if (k < 0)
-	    {
-	      ComplexMatrix m (n, n, 0.0);
-	      m (-k, 0) = c;
-	      retval = m;
-	    }
-	}
-      else if (a.is_matrix_type ())
+      if (! error_state)
 	{
-	  ComplexMatrix cm = a.complex_matrix_value ();
-
 	  int nr = cm.rows ();
 	  int nc = cm.columns ();
 
@@ -534,8 +492,6 @@
 	      retval = d;
 	    }
 	}
-      else
-	gripe_wrong_type_arg ("diag", a);
     }
   else
     gripe_wrong_type_arg ("diag", a);