# HG changeset patch # User jwe # Date 1199401519 0 # Node ID 9c7073003700c2390739c8f3261bbd860d4f9fdb # Parent 72b0181c41f1a199810267bd9fb24452cf2d1545 [project @ 2008-01-03 23:05:19 by jwe] diff -r 72b0181c41f1 -r 9c7073003700 liboctave/ChangeLog --- a/liboctave/ChangeLog Wed Jan 02 07:42:04 2008 +0000 +++ b/liboctave/ChangeLog Thu Jan 03 23:05:19 2008 +0000 @@ -1,3 +1,9 @@ +2008-01-03 David Bateman + + * MSparse.cc (SPARSE_A2A2_OP): If first arg is scalar zero, then + need unary operator on remaining argument + * Sparse-op-defs.h (SPARSE_SMSM_BIN_OP_1): ditto. + 2007-12-21 John W. Eaton Version 3.0.0 released. diff -r 72b0181c41f1 -r 9c7073003700 liboctave/MSparse.cc --- a/liboctave/MSparse.cc Wed Jan 02 07:42:04 2008 +0000 +++ b/liboctave/MSparse.cc Thu Jan 03 23:05:19 2008 +0000 @@ -292,7 +292,7 @@ if (a_nr == 1 && a_nc == 1) \ { \ if (a.elem(0,0) == 0.) \ - r = MSparse (b); \ + r = OP MSparse (b); \ else \ { \ r = MSparse (b_nr, b_nc, a.data(0) OP 0.); \ diff -r 72b0181c41f1 -r 9c7073003700 liboctave/Sparse-op-defs.h --- a/liboctave/Sparse-op-defs.h Wed Jan 02 07:42:04 2008 +0000 +++ b/liboctave/Sparse-op-defs.h Thu Jan 03 23:05:19 2008 +0000 @@ -396,7 +396,7 @@ if (m1_nr == 1 && m1_nc == 1) \ { \ if (m1.elem(0,0) == 0.) \ - r = R (m2); \ + r = OP R (m2); \ else \ { \ r = R (m2_nr, m2_nc, m1.data(0) OP 0.); \ diff -r 72b0181c41f1 -r 9c7073003700 src/OPERATORS/op-sm-sm.cc --- a/src/OPERATORS/op-sm-sm.cc Wed Jan 02 07:42:04 2008 +0000 +++ b/src/OPERATORS/op-sm-sm.cc Thu Jan 03 23:05:19 2008 +0000 @@ -52,7 +52,19 @@ // sparse matrix by sparse matrix ops. DEFBINOP_OP (add, sparse_matrix, sparse_matrix, +) -DEFBINOP_OP (sub, sparse_matrix, sparse_matrix, -) + +// DEFBINOP_OP (sub, sparse_matrix, sparse_matrix, -) + + static octave_value + oct_binop_sub (const octave_base_value& a1, const octave_base_value& a2) + { + const octave_sparse_matrix& v1 = dynamic_cast (a1); + const octave_sparse_matrix& v2 = dynamic_cast (a2); + SparseMatrix m = v1.sparse_matrix_value () - v2.sparse_matrix_value (); + + return octave_value (m); + } + DEFBINOP_OP (mul, sparse_matrix, sparse_matrix, *) DEFBINOP (div, sparse_matrix, sparse_matrix)