diff src/OPERATORS/op-scm-scm.cc @ 5322:22994a5730f9

[project @ 2005-04-29 13:04:24 by dbateman]
author dbateman
date Fri, 29 Apr 2005 13:04:25 +0000
parents 4c8a2e4e0717
children 8d7162924bd3
line wrap: on
line diff
--- a/src/OPERATORS/op-scm-scm.cc	Fri Apr 29 05:20:01 2005 +0000
+++ b/src/OPERATORS/op-scm-scm.cc	Fri Apr 29 13:04:25 2005 +0000
@@ -57,15 +57,17 @@
 DEFUNOP (transpose, sparse_complex_matrix)
 {
   CAST_UNOP_ARG (const octave_sparse_complex_matrix&);
-
-  return octave_value (v.sparse_complex_matrix_value().transpose ());
+  return octave_value 
+    (v.sparse_complex_matrix_value().transpose (),
+     v.sparse_type ().transpose ());
 }
 
 DEFUNOP (hermitian, sparse_complex_matrix)
 {
   CAST_UNOP_ARG (const octave_sparse_complex_matrix&);
-
-  return octave_value (v.sparse_complex_matrix_value().hermitian ());
+  return octave_value 
+    (v.sparse_complex_matrix_value().hermitian (),
+     v.sparse_type ().transpose ());
 }
 
 #if 0
@@ -91,7 +93,17 @@
 
 DEFBINOP_OP (mul, sparse_complex_matrix, sparse_complex_matrix, *)
 
-DEFBINOP_FN (div, sparse_complex_matrix, sparse_complex_matrix, xdiv)
+DEFBINOP (div, sparse_complex_matrix, sparse_complex_matrix)
+{
+  CAST_BINOP_ARGS (const octave_sparse_complex_matrix&, 
+		   octave_sparse_complex_matrix&);
+  SparseType typ = v2.sparse_type ();
+  SparseComplexMatrix ret = xdiv (v1.sparse_complex_matrix_value (), 
+				  v2.sparse_complex_matrix_value (), typ);
+  
+  v2.sparse_type (typ);
+  return ret;
+}
 
 DEFBINOPX (pow, sparse_complex_matrix, sparse_complex_matrix)
 {
@@ -99,7 +111,18 @@
   return octave_value ();
 }
 
-DEFBINOP_FN (ldiv, sparse_complex_matrix, sparse_complex_matrix, xleftdiv)
+DEFBINOP (ldiv, sparse_complex_matrix, sparse_complex_matrix)
+{
+  CAST_BINOP_ARGS (octave_sparse_complex_matrix&, 
+		   const octave_sparse_complex_matrix&);
+  SparseType typ = v1.sparse_type ();
+
+  SparseComplexMatrix ret = xleftdiv (v1.sparse_complex_matrix_value (), 
+				      v2.sparse_complex_matrix_value (), typ);
+
+  v1.sparse_type (typ);
+  return ret;
+}
 
 DEFBINOP_FN (lt, sparse_complex_matrix, sparse_complex_matrix, mx_el_lt)
 DEFBINOP_FN (le, sparse_complex_matrix, sparse_complex_matrix, mx_el_le)