# HG changeset patch # User Rik # Date 1386272342 28800 # Node ID b3f443b4802bfcfd666495155305a22fd99b5699 # Parent e0775b4f41dde9c3a08e1eeefa2286ec8ae1d052 maint: backout cset 35464baa7d99 on gui-release branch. diff -r e0775b4f41dd -r b3f443b4802b liboctave/array/CSparse.cc --- a/liboctave/array/CSparse.cc Thu Dec 05 11:36:54 2013 -0800 +++ b/liboctave/array/CSparse.cc Thu Dec 05 11:39:02 2013 -0800 @@ -7688,85 +7688,87 @@ { SparseComplexMatrix r; - octave_idx_type a_nr = a.rows (); - octave_idx_type a_nc = a.cols (); - octave_idx_type b_nr = b.rows (); - octave_idx_type b_nc = b.cols (); - - if (a_nr == b_nr && a_nc == b_nc) + if ((a.rows () == b.rows ()) && (a.cols () == b.cols ())) { - r = SparseComplexMatrix (a_nr, a_nc, (a.nnz () + b.nnz ())); - - octave_idx_type jx = 0; - r.cidx (0) = 0; - for (octave_idx_type i = 0 ; i < a_nc ; i++) + octave_idx_type a_nr = a.rows (); + octave_idx_type a_nc = a.cols (); + + octave_idx_type b_nr = b.rows (); + octave_idx_type b_nc = b.cols (); + + if (a_nr == 0 || b_nc == 0 || a.nnz () == 0 || b.nnz () == 0) + return SparseComplexMatrix (a_nr, a_nc); + + if (a_nr != b_nr || a_nc != b_nc) + gripe_nonconformant ("min", a_nr, a_nc, b_nr, b_nc); + else { - octave_idx_type ja = a.cidx (i); - octave_idx_type ja_max = a.cidx (i+1); - bool ja_lt_max= ja < ja_max; - - octave_idx_type jb = b.cidx (i); - octave_idx_type jb_max = b.cidx (i+1); - bool jb_lt_max = jb < jb_max; - - while (ja_lt_max || jb_lt_max ) - { - octave_quit (); - if ((! jb_lt_max) || - (ja_lt_max && (a.ridx (ja) < b.ridx (jb)))) - { - Complex tmp = xmin (a.data (ja), 0.); - if (tmp != 0.) + r = SparseComplexMatrix (a_nr, a_nc, (a.nnz () + b.nnz ())); + + octave_idx_type jx = 0; + r.cidx (0) = 0; + for (octave_idx_type i = 0 ; i < a_nc ; i++) + { + octave_idx_type ja = a.cidx (i); + octave_idx_type ja_max = a.cidx (i+1); + bool ja_lt_max= ja < ja_max; + + octave_idx_type jb = b.cidx (i); + octave_idx_type jb_max = b.cidx (i+1); + bool jb_lt_max = jb < jb_max; + + while (ja_lt_max || jb_lt_max ) + { + octave_quit (); + if ((! jb_lt_max) || + (ja_lt_max && (a.ridx (ja) < b.ridx (jb)))) { - r.ridx (jx) = a.ridx (ja); - r.data (jx) = tmp; - jx++; + Complex tmp = xmin (a.data (ja), 0.); + if (tmp != 0.) + { + r.ridx (jx) = a.ridx (ja); + r.data (jx) = tmp; + jx++; + } + ja++; + ja_lt_max= ja < ja_max; } - ja++; - ja_lt_max= ja < ja_max; - } - else if (( !ja_lt_max ) || - (jb_lt_max && (b.ridx (jb) < a.ridx (ja)) ) ) - { - Complex tmp = xmin (0., b.data (jb)); - if (tmp != 0.) + else if (( !ja_lt_max ) || + (jb_lt_max && (b.ridx (jb) < a.ridx (ja)) ) ) { - r.ridx (jx) = b.ridx (jb); - r.data (jx) = tmp; - jx++; + Complex tmp = xmin (0., b.data (jb)); + if (tmp != 0.) + { + r.ridx (jx) = b.ridx (jb); + r.data (jx) = tmp; + jx++; + } + jb++; + jb_lt_max= jb < jb_max; } - jb++; - jb_lt_max= jb < jb_max; - } - else - { - Complex tmp = xmin (a.data (ja), b.data (jb)); - if (tmp != 0.) + else { - r.data (jx) = tmp; - r.ridx (jx) = a.ridx (ja); - jx++; + Complex tmp = xmin (a.data (ja), b.data (jb)); + if (tmp != 0.) + { + r.data (jx) = tmp; + r.ridx (jx) = a.ridx (ja); + jx++; + } + ja++; + ja_lt_max= ja < ja_max; + jb++; + jb_lt_max= jb < jb_max; } - ja++; - ja_lt_max= ja < ja_max; - jb++; - jb_lt_max= jb < jb_max; - } - } - r.cidx (i+1) = jx; + } + r.cidx (i+1) = jx; + } + + r.maybe_compress (); } - - r.maybe_compress (); } else - { - if (a_nr == 0 || a_nc == 0) - r.resize (a_nr, a_nc); - else if (b_nr == 0 || b_nc == 0) - r.resize (b_nr, b_nc); - else - gripe_nonconformant ("min", a_nr, a_nc, b_nr, b_nc); - } + (*current_liboctave_error_handler) ("matrix size mismatch"); return r; } @@ -7806,85 +7808,91 @@ { SparseComplexMatrix r; - octave_idx_type a_nr = a.rows (); - octave_idx_type a_nc = a.cols (); - octave_idx_type b_nr = b.rows (); - octave_idx_type b_nc = b.cols (); - - if (a_nr == b_nr && a_nc == b_nc) + if ((a.rows () == b.rows ()) && (a.cols () == b.cols ())) { - r = SparseComplexMatrix (a_nr, a_nc, (a.nnz () + b.nnz ())); - - octave_idx_type jx = 0; - r.cidx (0) = 0; - for (octave_idx_type i = 0 ; i < a_nc ; i++) + octave_idx_type a_nr = a.rows (); + octave_idx_type a_nc = a.cols (); + + octave_idx_type b_nr = b.rows (); + octave_idx_type b_nc = b.cols (); + + if (a_nr == 0 || b_nc == 0) + return SparseComplexMatrix (a_nr, a_nc); + if (a.nnz () == 0) + return SparseComplexMatrix (b); + if (b.nnz () == 0) + return SparseComplexMatrix (a); + + if (a_nr != b_nr || a_nc != b_nc) + gripe_nonconformant ("min", a_nr, a_nc, b_nr, b_nc); + else { - octave_idx_type ja = a.cidx (i); - octave_idx_type ja_max = a.cidx (i+1); - bool ja_lt_max= ja < ja_max; - - octave_idx_type jb = b.cidx (i); - octave_idx_type jb_max = b.cidx (i+1); - bool jb_lt_max = jb < jb_max; - - while (ja_lt_max || jb_lt_max ) - { - octave_quit (); - if ((! jb_lt_max) || - (ja_lt_max && (a.ridx (ja) < b.ridx (jb)))) - { - Complex tmp = xmax (a.data (ja), 0.); - if (tmp != 0.) + r = SparseComplexMatrix (a_nr, a_nc, (a.nnz () + b.nnz ())); + + octave_idx_type jx = 0; + r.cidx (0) = 0; + for (octave_idx_type i = 0 ; i < a_nc ; i++) + { + octave_idx_type ja = a.cidx (i); + octave_idx_type ja_max = a.cidx (i+1); + bool ja_lt_max= ja < ja_max; + + octave_idx_type jb = b.cidx (i); + octave_idx_type jb_max = b.cidx (i+1); + bool jb_lt_max = jb < jb_max; + + while (ja_lt_max || jb_lt_max ) + { + octave_quit (); + if ((! jb_lt_max) || + (ja_lt_max && (a.ridx (ja) < b.ridx (jb)))) { - r.ridx (jx) = a.ridx (ja); - r.data (jx) = tmp; - jx++; + Complex tmp = xmax (a.data (ja), 0.); + if (tmp != 0.) + { + r.ridx (jx) = a.ridx (ja); + r.data (jx) = tmp; + jx++; + } + ja++; + ja_lt_max= ja < ja_max; } - ja++; - ja_lt_max= ja < ja_max; - } - else if (( !ja_lt_max ) || - (jb_lt_max && (b.ridx (jb) < a.ridx (ja)) ) ) - { - Complex tmp = xmax (0., b.data (jb)); - if (tmp != 0.) + else if (( !ja_lt_max ) || + (jb_lt_max && (b.ridx (jb) < a.ridx (ja)) ) ) { - r.ridx (jx) = b.ridx (jb); - r.data (jx) = tmp; - jx++; + Complex tmp = xmax (0., b.data (jb)); + if (tmp != 0.) + { + r.ridx (jx) = b.ridx (jb); + r.data (jx) = tmp; + jx++; + } + jb++; + jb_lt_max= jb < jb_max; } - jb++; - jb_lt_max= jb < jb_max; - } - else - { - Complex tmp = xmax (a.data (ja), b.data (jb)); - if (tmp != 0.) + else { - r.data (jx) = tmp; - r.ridx (jx) = a.ridx (ja); - jx++; + Complex tmp = xmax (a.data (ja), b.data (jb)); + if (tmp != 0.) + { + r.data (jx) = tmp; + r.ridx (jx) = a.ridx (ja); + jx++; + } + ja++; + ja_lt_max= ja < ja_max; + jb++; + jb_lt_max= jb < jb_max; } - ja++; - ja_lt_max= ja < ja_max; - jb++; - jb_lt_max= jb < jb_max; - } - } - r.cidx (i+1) = jx; + } + r.cidx (i+1) = jx; + } + + r.maybe_compress (); } - - r.maybe_compress (); } else - { - if (a_nr == 0 || a_nc == 0) - r.resize (a_nr, a_nc); - else if (b_nr == 0 || b_nc == 0) - r.resize (b_nr, b_nc); - else - gripe_nonconformant ("max", a_nr, a_nc, b_nr, b_nc); - } + (*current_liboctave_error_handler) ("matrix size mismatch"); return r; } diff -r e0775b4f41dd -r b3f443b4802b liboctave/array/dSparse.cc --- a/liboctave/array/dSparse.cc Thu Dec 05 11:36:54 2013 -0800 +++ b/liboctave/array/dSparse.cc Thu Dec 05 11:39:02 2013 -0800 @@ -7801,85 +7801,84 @@ { SparseMatrix r; - octave_idx_type a_nr = a.rows (); - octave_idx_type a_nc = a.cols (); - octave_idx_type b_nr = b.rows (); - octave_idx_type b_nc = b.cols (); - - if (a_nr == b_nr && a_nc == b_nc) + if ((a.rows () == b.rows ()) && (a.cols () == b.cols ())) { - r = SparseMatrix (a_nr, a_nc, (a.nnz () + b.nnz ())); - - octave_idx_type jx = 0; - r.cidx (0) = 0; - for (octave_idx_type i = 0 ; i < a_nc ; i++) + octave_idx_type a_nr = a.rows (); + octave_idx_type a_nc = a.cols (); + + octave_idx_type b_nr = b.rows (); + octave_idx_type b_nc = b.cols (); + + if (a_nr != b_nr || a_nc != b_nc) + gripe_nonconformant ("min", a_nr, a_nc, b_nr, b_nc); + else { - octave_idx_type ja = a.cidx (i); - octave_idx_type ja_max = a.cidx (i+1); - bool ja_lt_max= ja < ja_max; - - octave_idx_type jb = b.cidx (i); - octave_idx_type jb_max = b.cidx (i+1); - bool jb_lt_max = jb < jb_max; - - while (ja_lt_max || jb_lt_max ) - { - octave_quit (); - if ((! jb_lt_max) || - (ja_lt_max && (a.ridx (ja) < b.ridx (jb)))) - { - double tmp = xmin (a.data (ja), 0.); - if (tmp != 0.) + r = SparseMatrix (a_nr, a_nc, (a.nnz () + b.nnz ())); + + octave_idx_type jx = 0; + r.cidx (0) = 0; + for (octave_idx_type i = 0 ; i < a_nc ; i++) + { + octave_idx_type ja = a.cidx (i); + octave_idx_type ja_max = a.cidx (i+1); + bool ja_lt_max= ja < ja_max; + + octave_idx_type jb = b.cidx (i); + octave_idx_type jb_max = b.cidx (i+1); + bool jb_lt_max = jb < jb_max; + + while (ja_lt_max || jb_lt_max ) + { + octave_quit (); + if ((! jb_lt_max) || + (ja_lt_max && (a.ridx (ja) < b.ridx (jb)))) { - r.ridx (jx) = a.ridx (ja); - r.data (jx) = tmp; - jx++; + double tmp = xmin (a.data (ja), 0.); + if (tmp != 0.) + { + r.ridx (jx) = a.ridx (ja); + r.data (jx) = tmp; + jx++; + } + ja++; + ja_lt_max= ja < ja_max; } - ja++; - ja_lt_max= ja < ja_max; - } - else if (( !ja_lt_max ) || - (jb_lt_max && (b.ridx (jb) < a.ridx (ja)) ) ) - { - double tmp = xmin (0., b.data (jb)); - if (tmp != 0.) + else if (( !ja_lt_max ) || + (jb_lt_max && (b.ridx (jb) < a.ridx (ja)) ) ) { - r.ridx (jx) = b.ridx (jb); - r.data (jx) = tmp; - jx++; + double tmp = xmin (0., b.data (jb)); + if (tmp != 0.) + { + r.ridx (jx) = b.ridx (jb); + r.data (jx) = tmp; + jx++; + } + jb++; + jb_lt_max= jb < jb_max; } - jb++; - jb_lt_max= jb < jb_max; - } - else - { - double tmp = xmin (a.data (ja), b.data (jb)); - if (tmp != 0.) + else { - r.data (jx) = tmp; - r.ridx (jx) = a.ridx (ja); - jx++; + double tmp = xmin (a.data (ja), b.data (jb)); + if (tmp != 0.) + { + r.data (jx) = tmp; + r.ridx (jx) = a.ridx (ja); + jx++; + } + ja++; + ja_lt_max= ja < ja_max; + jb++; + jb_lt_max= jb < jb_max; } - ja++; - ja_lt_max= ja < ja_max; - jb++; - jb_lt_max= jb < jb_max; - } - } - r.cidx (i+1) = jx; + } + r.cidx (i+1) = jx; + } + + r.maybe_compress (); } - - r.maybe_compress (); } else - { - if (a_nr == 0 || a_nc == 0) - r.resize (a_nr, a_nc); - else if (b_nr == 0 || b_nc == 0) - r.resize (b_nr, b_nc); - else - gripe_nonconformant ("min", a_nr, a_nc, b_nr, b_nc); - } + (*current_liboctave_error_handler) ("matrix size mismatch"); return r; } @@ -7952,85 +7951,84 @@ { SparseMatrix r; - octave_idx_type a_nr = a.rows (); - octave_idx_type a_nc = a.cols (); - octave_idx_type b_nr = b.rows (); - octave_idx_type b_nc = b.cols (); - - if (a_nr == b_nr && a_nc == b_nc) + if ((a.rows () == b.rows ()) && (a.cols () == b.cols ())) { - r = SparseMatrix (a_nr, a_nc, (a.nnz () + b.nnz ())); - - octave_idx_type jx = 0; - r.cidx (0) = 0; - for (octave_idx_type i = 0 ; i < a_nc ; i++) + octave_idx_type a_nr = a.rows (); + octave_idx_type a_nc = a.cols (); + + octave_idx_type b_nr = b.rows (); + octave_idx_type b_nc = b.cols (); + + if (a_nr != b_nr || a_nc != b_nc) + gripe_nonconformant ("min", a_nr, a_nc, b_nr, b_nc); + else { - octave_idx_type ja = a.cidx (i); - octave_idx_type ja_max = a.cidx (i+1); - bool ja_lt_max= ja < ja_max; - - octave_idx_type jb = b.cidx (i); - octave_idx_type jb_max = b.cidx (i+1); - bool jb_lt_max = jb < jb_max; - - while (ja_lt_max || jb_lt_max ) - { - octave_quit (); - if ((! jb_lt_max) || - (ja_lt_max && (a.ridx (ja) < b.ridx (jb)))) - { - double tmp = xmax (a.data (ja), 0.); - if (tmp != 0.) + r = SparseMatrix (a_nr, a_nc, (a.nnz () + b.nnz ())); + + octave_idx_type jx = 0; + r.cidx (0) = 0; + for (octave_idx_type i = 0 ; i < a_nc ; i++) + { + octave_idx_type ja = a.cidx (i); + octave_idx_type ja_max = a.cidx (i+1); + bool ja_lt_max= ja < ja_max; + + octave_idx_type jb = b.cidx (i); + octave_idx_type jb_max = b.cidx (i+1); + bool jb_lt_max = jb < jb_max; + + while (ja_lt_max || jb_lt_max ) + { + octave_quit (); + if ((! jb_lt_max) || + (ja_lt_max && (a.ridx (ja) < b.ridx (jb)))) { - r.ridx (jx) = a.ridx (ja); - r.data (jx) = tmp; - jx++; + double tmp = xmax (a.data (ja), 0.); + if (tmp != 0.) + { + r.ridx (jx) = a.ridx (ja); + r.data (jx) = tmp; + jx++; + } + ja++; + ja_lt_max= ja < ja_max; } - ja++; - ja_lt_max= ja < ja_max; - } - else if (( !ja_lt_max ) || - (jb_lt_max && (b.ridx (jb) < a.ridx (ja)) ) ) - { - double tmp = xmax (0., b.data (jb)); - if (tmp != 0.) + else if (( !ja_lt_max ) || + (jb_lt_max && (b.ridx (jb) < a.ridx (ja)) ) ) { - r.ridx (jx) = b.ridx (jb); - r.data (jx) = tmp; - jx++; + double tmp = xmax (0., b.data (jb)); + if (tmp != 0.) + { + r.ridx (jx) = b.ridx (jb); + r.data (jx) = tmp; + jx++; + } + jb++; + jb_lt_max= jb < jb_max; } - jb++; - jb_lt_max= jb < jb_max; - } - else - { - double tmp = xmax (a.data (ja), b.data (jb)); - if (tmp != 0.) + else { - r.data (jx) = tmp; - r.ridx (jx) = a.ridx (ja); - jx++; + double tmp = xmax (a.data (ja), b.data (jb)); + if (tmp != 0.) + { + r.data (jx) = tmp; + r.ridx (jx) = a.ridx (ja); + jx++; + } + ja++; + ja_lt_max= ja < ja_max; + jb++; + jb_lt_max= jb < jb_max; } - ja++; - ja_lt_max= ja < ja_max; - jb++; - jb_lt_max= jb < jb_max; - } - } - r.cidx (i+1) = jx; + } + r.cidx (i+1) = jx; + } + + r.maybe_compress (); } - - r.maybe_compress (); } else - { - if (a_nr == 0 || a_nc == 0) - r.resize (a_nr, a_nc); - else if (b_nr == 0 || b_nc == 0) - r.resize (b_nr, b_nc); - else - gripe_nonconformant ("max", a_nr, a_nc, b_nr, b_nc); - } + (*current_liboctave_error_handler) ("matrix size mismatch"); return r; }