changeset 2563:8b0911d576bf

[project @ 1996-12-05 19:06:58 by jwe]
author jwe
date Thu, 05 Dec 1996 19:06:59 +0000
parents 0c978e147a3a
children ac70da7eeedc
files liboctave/CMatrix.cc liboctave/ChangeLog src/ChangeLog src/op-str-str.cc src/qzval.cc
diffstat 5 files changed, 66 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/CMatrix.cc
+++ b/liboctave/CMatrix.cc
@@ -1416,7 +1416,9 @@
       int len_s = m < n ? m : n;
       Array<double> s (len_s);
       double *ps = s.fortran_vec ();
+
       double rcond = -1.0;
+
       int lwork;
       if (m < n)
 	lwork = 2*m + (nrhs > n ? nrhs : n);
@@ -1439,7 +1441,7 @@
 	(*current_liboctave_error_handler) ("unrecoverable error in zgelss");
       else
 	{
-	  ComplexMatrix retval (n, nrhs);
+	  retval.resize (n, nrhs);
 	  for (int j = 0; j < nrhs; j++)
 	    for (int i = 0; i < n; i++)
 	      retval.elem (i, j) = result.elem (i, j);
@@ -1519,7 +1521,7 @@
 	(*current_liboctave_error_handler) ("unrecoverable error in zgelss");
       else
 	{
-	  ComplexColumnVector retval (n);
+	  retval.resize (n);
 	  for (int i = 0; i < n; i++)
 	    retval.elem (i) = result.elem (i);
 	}
--- a/liboctave/ChangeLog
+++ b/liboctave/ChangeLog
@@ -1,3 +1,7 @@
+Thu Dec  5 13:05:18 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* CMatrix.cc (lssolve): Don't redeclare retval, resize it.
+
 Wed Dec  4 12:24:24 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* dMatrix.cc (Qzval): Don't try to use same memory three times.
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
+Tue Dec  3 23:47:09 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* op-str-str.cc (eq, ne): Handle operations with scalars.
+
 Thu Nov 21 12:30:36 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* ov-str-mat.h (octave_char_matrix_str): Provide transpose and
--- a/src/op-str-str.cc
+++ b/src/op-str-str.cc
@@ -42,7 +42,30 @@
   CAST_BINOP_ARGS (const octave_char_matrix_str&,
 		   const octave_char_matrix_str&);
 
-  return octave_value (v1.char_matrix_value () == v2.char_matrix_value ());
+  charMatrix cm1 = v1.char_matrix_value ();
+  charMatrix cm2 = v2.char_matrix_value ();
+
+  if (cm1.rows () == 1 && cm1.columns () == 1)
+    {
+      if (cm2.rows () == 1 && cm2.columns () == 1)
+	return octave_value (cm1 (0, 0) == cm2 (0, 0));
+      else
+	SC_MX_BOOL_OP (char, c, cm1 (0, 0), \
+		       charMatrix, m, cm2, \
+		       c == m (i, j));
+    }
+  else
+    {
+      if (cm2.rows () == 1 && cm2.columns () == 1)
+	MX_SC_BOOL_OP (charMatrix, m, cm1, \
+		       char, c, cm2 (0, 0), \
+		       c == m (i, j));
+      else
+	MX_MX_BOOL_OP (charMatrix, m1, cm1, \
+		       charMatrix, m2, cm2, \
+		       m1 (i, j) == m2 (i, j), \
+		       "==", 1.0);
+    }
 }
 
 static octave_value
@@ -51,7 +74,30 @@
   CAST_BINOP_ARGS (const octave_char_matrix_str&,
 		   const octave_char_matrix_str&);
 
-  return octave_value (v1.char_matrix_value () != v2.char_matrix_value ());
+  charMatrix cm1 = v1.char_matrix_value ();
+  charMatrix cm2 = v2.char_matrix_value ();
+
+  if (cm1.rows () == 1 && cm1.columns () == 1)
+    {
+      if (cm2.rows () == 1 && cm2.columns () == 1)
+	return octave_value (cm1 (0, 0) != cm2 (0, 0));
+      else
+	SC_MX_BOOL_OP (char, c, cm1 (0, 0), \
+		       charMatrix, m, cm2, \
+		       c != m (i, j));
+    }
+  else
+    {
+      if (cm2.rows () == 1 && cm2.columns () == 1)
+	MX_SC_BOOL_OP (charMatrix, m, cm1, \
+		       char, c, cm2 (0, 0), \
+		       c != m (i, j));
+      else
+	MX_MX_BOOL_OP (charMatrix, m1, cm1, \
+		       charMatrix, m2, cm2, \
+		       m1 (i, j) != m2 (i, j), \
+		       "!=", 1.0);
+    }
 }
 
 static octave_value
--- a/src/qzval.cc
+++ b/src/qzval.cc
@@ -53,7 +53,12 @@
       Matrix b = arg_b.matrix_value ();
 
       if (! error_state)
-	retval = Qzval (a, b);
+	{
+	  ComplexColumnVector tmp = Qzval (a, b);
+
+	  if (! error_state)
+	    retval = tmp;
+	}
     }
   else
     print_usage ("qzval");