# HG changeset patch # User David Bateman # Date 1235176043 -3600 # Node ID 1685c61542f88e2adb5c18c081189123431e7261 # Parent 8dd69187c4a27e5bfc23a2882a6d93c4e7afe8d7 Don't perform narrowing to full matrices in mixed spare scalar operators diff -r 8dd69187c4a2 -r 1685c61542f8 src/ChangeLog --- a/src/ChangeLog Fri Feb 20 21:49:26 2009 +0100 +++ b/src/ChangeLog Sat Feb 21 01:27:23 2009 +0100 @@ -1,3 +1,10 @@ +2008-02-21 David Bateman + + * OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, OPERATORS/op-s-scm.cc, + OPERATORS/op-s-sm.cc, OPERATORS/op-scm-cs.cc, OPERATORS/op-scm-s.cc, + OPERATORS/op-sm-cs.cc, OPERATORS/op-sm-s.cc: Don't perform any + narrowing to full matrices. + 2009-02-20 Jaroslav Hajek * ov-base-diag.h (octave_base_diag::sqrt): Remove. diff -r 8dd69187c4a2 -r 1685c61542f8 src/OPERATORS/op-cs-scm.cc --- a/src/OPERATORS/op-cs-scm.cc Fri Feb 20 21:49:26 2009 +0100 +++ b/src/OPERATORS/op-cs-scm.cc Sat Feb 21 01:27:23 2009 +0100 @@ -55,7 +55,7 @@ if (d == 0.0) gripe_divide_by_zero (); - return octave_value (v1.complex_value () / d); + return octave_value (SparseComplexMatrix (1, 1, v1.complex_value () / d)); } else { @@ -107,13 +107,9 @@ octave_value retval; if (d == 0.0) - { - gripe_divide_by_zero (); + gripe_divide_by_zero (); - retval = octave_value (v2.complex_matrix_value () / d); - } - else - retval = octave_value (v2.sparse_complex_matrix_value () / d); + retval = octave_value (v2.sparse_complex_matrix_value () / d); return retval; } diff -r 8dd69187c4a2 -r 1685c61542f8 src/OPERATORS/op-cs-sm.cc --- a/src/OPERATORS/op-cs-sm.cc Fri Feb 20 21:49:26 2009 +0100 +++ b/src/OPERATORS/op-cs-sm.cc Sat Feb 21 01:27:23 2009 +0100 @@ -57,7 +57,7 @@ if (d == 0.0) gripe_divide_by_zero (); - return octave_value (v1.complex_value () / d); + return octave_value (SparseComplexMatrix (1, 1, v1.complex_value () / d)); } else { @@ -84,13 +84,9 @@ octave_value retval; if (d == 0.0) - { - gripe_divide_by_zero (); + gripe_divide_by_zero (); - retval = octave_value (v2.matrix_value () / d); - } - else - retval = octave_value (v2.sparse_matrix_value () / d); + retval = octave_value (v2.sparse_matrix_value () / d); return retval; } @@ -114,13 +110,9 @@ octave_value retval; if (d == 0.0) - { - gripe_divide_by_zero (); + gripe_divide_by_zero (); - retval = octave_value (v2.matrix_value () / d); - } - else - retval = octave_value (v2.sparse_matrix_value () / d); + retval = octave_value (v2.sparse_matrix_value () / d); return retval; } diff -r 8dd69187c4a2 -r 1685c61542f8 src/OPERATORS/op-s-scm.cc --- a/src/OPERATORS/op-s-scm.cc Fri Feb 20 21:49:26 2009 +0100 +++ b/src/OPERATORS/op-s-scm.cc Sat Feb 21 01:27:23 2009 +0100 @@ -58,7 +58,7 @@ if (d == 0.0) gripe_divide_by_zero (); - return octave_value (v1.scalar_value () / d); + return octave_value (SparseComplexMatrix (1, 1, v1.scalar_value () / d)); } else { @@ -87,13 +87,9 @@ octave_value retval; if (d == 0.0) - { - gripe_divide_by_zero (); + gripe_divide_by_zero (); - retval = octave_value (v2.complex_matrix_value () / d); - } - else - retval = octave_value (v2.sparse_complex_matrix_value () / d); + retval = octave_value (v2.sparse_complex_matrix_value () / d); return retval; } @@ -118,13 +114,9 @@ octave_value retval; if (d == 0.0) - { - gripe_divide_by_zero (); + gripe_divide_by_zero (); - retval = octave_value (v2.complex_matrix_value () / d); - } - else - retval = octave_value (v2.sparse_complex_matrix_value () / d); + retval = octave_value (v2.sparse_complex_matrix_value () / d); return retval; } diff -r 8dd69187c4a2 -r 1685c61542f8 src/OPERATORS/op-s-sm.cc --- a/src/OPERATORS/op-s-sm.cc Fri Feb 20 21:49:26 2009 +0100 +++ b/src/OPERATORS/op-s-sm.cc Sat Feb 21 01:27:23 2009 +0100 @@ -54,7 +54,7 @@ if (d == 0.0) gripe_divide_by_zero (); - return octave_value (v1.scalar_value () / d); + return octave_value (SparseMatrix (1, 1, v1.scalar_value () / d)); } else { @@ -81,13 +81,9 @@ octave_value retval; if (d == 0.0) - { - gripe_divide_by_zero (); + gripe_divide_by_zero (); - retval = octave_value (v2.matrix_value () / d); - } - else - retval = octave_value (v2.sparse_matrix_value () / d); + retval = octave_value (v2.sparse_matrix_value () / d); return retval; } @@ -111,13 +107,9 @@ octave_value retval; if (d == 0.0) - { - gripe_divide_by_zero (); + gripe_divide_by_zero (); - retval = octave_value (v2.matrix_value () / d); - } - else - retval = octave_value (v2.sparse_matrix_value () / d); + retval = octave_value (v2.sparse_matrix_value () / d); return retval; } diff -r 8dd69187c4a2 -r 1685c61542f8 src/OPERATORS/op-scm-cs.cc --- a/src/OPERATORS/op-scm-cs.cc Fri Feb 20 21:49:26 2009 +0100 +++ b/src/OPERATORS/op-scm-cs.cc Sat Feb 21 01:27:23 2009 +0100 @@ -53,13 +53,9 @@ octave_value retval; if (d == 0.0) - { - gripe_divide_by_zero (); + gripe_divide_by_zero (); - retval = (v1.complex_matrix_value () / d); - } - else - retval = octave_value (v1.sparse_complex_matrix_value () / d); + retval = octave_value (v1.sparse_complex_matrix_value () / d); return retval; } @@ -82,7 +78,7 @@ if (d == 0.0) gripe_divide_by_zero (); - return octave_value (v2.complex_value () / d); + return octave_value (SparseComplexMatrix (1, 1, v2.complex_value () / d)); } else { @@ -114,13 +110,9 @@ Complex d = v2.complex_value (); if (d == 0.0) - { - gripe_divide_by_zero (); + gripe_divide_by_zero (); - retval = octave_value (v1.complex_matrix_value () / d); - } - else - retval = octave_value (v1.sparse_complex_matrix_value () / d); + retval = octave_value (v1.sparse_complex_matrix_value () / d); return retval; } diff -r 8dd69187c4a2 -r 1685c61542f8 src/OPERATORS/op-scm-s.cc --- a/src/OPERATORS/op-scm-s.cc Fri Feb 20 21:49:26 2009 +0100 +++ b/src/OPERATORS/op-scm-s.cc Sat Feb 21 01:27:23 2009 +0100 @@ -56,13 +56,9 @@ octave_value retval; if (d == 0.0) - { - gripe_divide_by_zero (); + gripe_divide_by_zero (); - retval = octave_value (v1.complex_matrix_value () / d); - } - else - retval = octave_value (v1.sparse_complex_matrix_value () / d); + retval = octave_value (v1.sparse_complex_matrix_value () / d); return retval; } @@ -90,7 +86,7 @@ if (d == 0.0) gripe_divide_by_zero (); - return octave_value (v2.scalar_value () / d); + return octave_value (SparseComplexMatrix (1, 1, v2.scalar_value () / d)); } else { @@ -121,13 +117,9 @@ octave_value retval; if (d == 0.0) - { - gripe_divide_by_zero (); + gripe_divide_by_zero (); - retval = octave_value (v1.complex_matrix_value () / d); - } - else - retval = octave_value (v1.sparse_complex_matrix_value () / d); + retval = octave_value (v1.sparse_complex_matrix_value () / d); return retval; } diff -r 8dd69187c4a2 -r 1685c61542f8 src/OPERATORS/op-sm-cs.cc --- a/src/OPERATORS/op-sm-cs.cc Fri Feb 20 21:49:26 2009 +0100 +++ b/src/OPERATORS/op-sm-cs.cc Sat Feb 21 01:27:23 2009 +0100 @@ -54,13 +54,9 @@ octave_value retval; if (d == 0.0) - { - gripe_divide_by_zero (); + gripe_divide_by_zero (); - retval = octave_value (v1.matrix_value () / d); - } - else - retval = octave_value (v1.sparse_matrix_value () / d); + retval = octave_value (v1.sparse_matrix_value () / d); return retval; } @@ -82,7 +78,7 @@ if (d == 0.0) gripe_divide_by_zero (); - return octave_value (v2.complex_value () / d); + return octave_value (SparseComplexMatrix (1, 1, v2.complex_value () / d)); } else { @@ -112,13 +108,9 @@ octave_value retval; if (d == 0.0) - { - gripe_divide_by_zero (); + gripe_divide_by_zero (); - retval = octave_value (v1.matrix_value () / d); - } - else - retval = octave_value (v1.sparse_matrix_value () / d); + retval = octave_value (v1.sparse_matrix_value () / d); return retval; } diff -r 8dd69187c4a2 -r 1685c61542f8 src/OPERATORS/op-sm-s.cc --- a/src/OPERATORS/op-sm-s.cc Fri Feb 20 21:49:26 2009 +0100 +++ b/src/OPERATORS/op-sm-s.cc Sat Feb 21 01:27:23 2009 +0100 @@ -51,13 +51,9 @@ octave_value retval; if (d == 0.0) - { - gripe_divide_by_zero (); + gripe_divide_by_zero (); - retval = octave_value (v1.matrix_value () / d); - } - else - retval = octave_value (v1.sparse_matrix_value () / d); + retval = octave_value (v1.sparse_matrix_value () / d); return retval; } @@ -84,7 +80,7 @@ if (d == 0.0) gripe_divide_by_zero (); - return octave_value (v2.scalar_value () / d); + return octave_value (SparseMatrix(1, 1, v2.scalar_value () / d)); } else { @@ -114,13 +110,9 @@ octave_value retval; if (d == 0.0) - { - gripe_divide_by_zero (); + gripe_divide_by_zero (); - retval = octave_value (v1.matrix_value () / d); - } - else - retval = octave_value (v1.sparse_matrix_value () / d); + retval = octave_value (v1.sparse_matrix_value () / d); return retval; }