# HG changeset patch # User Jaroslav Hajek # Date 1237545565 -3600 # Node ID dc07bc4157b83e523f7cc4c376c9d637748ff2d3 # Parent a48fba01e4ac615f7b92bda5dc8d540340f77b41 allow empty matrices in stream input operators diff -r a48fba01e4ac -r dc07bc4157b8 liboctave/CColVector.cc --- a/liboctave/CColVector.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/liboctave/CColVector.cc Fri Mar 20 11:39:25 2009 +0100 @@ -524,9 +524,7 @@ { octave_idx_type len = a.length(); - if (len < 1) - is.clear (std::ios::badbit); - else + if (len > 0) { double tmp; for (octave_idx_type i = 0; i < len; i++) diff -r a48fba01e4ac -r dc07bc4157b8 liboctave/CMatrix.cc --- a/liboctave/CMatrix.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/liboctave/CMatrix.cc Fri Mar 20 11:39:25 2009 +0100 @@ -3640,9 +3640,7 @@ octave_idx_type nr = a.rows (); octave_idx_type nc = a.cols (); - if (nr < 1 || nc < 1) - is.clear (std::ios::badbit); - else + if (nr > 0 && nc > 0) { Complex tmp; for (octave_idx_type i = 0; i < nr; i++) diff -r a48fba01e4ac -r dc07bc4157b8 liboctave/CNDArray.cc --- a/liboctave/CNDArray.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/liboctave/CNDArray.cc Fri Mar 20 11:39:25 2009 +0100 @@ -916,9 +916,7 @@ { octave_idx_type nel = a.nelem (); - if (nel < 1 ) - is.clear (std::ios::badbit); - else + if (nel > 0) { Complex tmp; for (octave_idx_type i = 0; i < nel; i++) diff -r a48fba01e4ac -r dc07bc4157b8 liboctave/CRowVector.cc --- a/liboctave/CRowVector.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/liboctave/CRowVector.cc Fri Mar 20 11:39:25 2009 +0100 @@ -434,9 +434,7 @@ { octave_idx_type len = a.length(); - if (len < 1) - is.clear (std::ios::badbit); - else + if (len > 0) { Complex tmp; for (octave_idx_type i = 0; i < len; i++) diff -r a48fba01e4ac -r dc07bc4157b8 liboctave/CSparse.cc --- a/liboctave/CSparse.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/liboctave/CSparse.cc Fri Mar 20 11:39:25 2009 +0100 @@ -7470,9 +7470,7 @@ octave_idx_type nc = a.cols (); octave_idx_type nz = a.nzmax (); - if (nr < 1 || nc < 1) - is.clear (std::ios::badbit); - else + if (nr > 0 && nc > 0) { octave_idx_type itmp, jtmp, jold = 0; Complex tmp; diff -r a48fba01e4ac -r dc07bc4157b8 liboctave/ChangeLog --- a/liboctave/ChangeLog Thu Mar 19 17:46:38 2009 +0100 +++ b/liboctave/ChangeLog Fri Mar 20 11:39:25 2009 +0100 @@ -1,3 +1,12 @@ +2009-03-20 Jaroslav Hajek + + + * CColVector.cc, CMatrix.cc, CNDArray.cc, CRowVector.cc, CSparse.cc, + boolSparse.cc, dColVector.cc, dMatrix.cc, dNDArray.cc, dRowVector.cc, + dSparse.cc, fCColVector.cc, fCMatrix.cc, fCNDArray.cc, fCRowVector.cc, + fColVector.cc, fMatrix.cc, fNDArray.cc, fRowVector.cc, intNDArray.cc: + Allow empty arrays in stream input operators. + 2009-03-20 Jaroslav Hajek * Array.h (Array::fastmap): New method. diff -r a48fba01e4ac -r dc07bc4157b8 liboctave/boolSparse.cc --- a/liboctave/boolSparse.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/liboctave/boolSparse.cc Fri Mar 20 11:39:25 2009 +0100 @@ -184,9 +184,7 @@ octave_idx_type nc = a.cols (); octave_idx_type nz = a.nzmax (); - if (nr < 1 || nc < 1) - is.clear (std::ios::badbit); - else + if (nr > 0 && nc > 0) { octave_idx_type itmp, jtmp, jold = 0; bool tmp; diff -r a48fba01e4ac -r dc07bc4157b8 liboctave/dColVector.cc --- a/liboctave/dColVector.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/liboctave/dColVector.cc Fri Mar 20 11:39:25 2009 +0100 @@ -321,9 +321,7 @@ { octave_idx_type len = a.length(); - if (len < 1) - is.clear (std::ios::badbit); - else + if (len > 0) { double tmp; for (octave_idx_type i = 0; i < len; i++) diff -r a48fba01e4ac -r dc07bc4157b8 liboctave/dMatrix.cc --- a/liboctave/dMatrix.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/liboctave/dMatrix.cc Fri Mar 20 11:39:25 2009 +0100 @@ -3058,9 +3058,7 @@ octave_idx_type nr = a.rows (); octave_idx_type nc = a.cols (); - if (nr < 1 || nc < 1) - is.clear (std::ios::badbit); - else + if (nr > 0 && nc > 0) { double tmp; for (octave_idx_type i = 0; i < nr; i++) diff -r a48fba01e4ac -r dc07bc4157b8 liboctave/dNDArray.cc --- a/liboctave/dNDArray.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/liboctave/dNDArray.cc Fri Mar 20 11:39:25 2009 +0100 @@ -965,9 +965,7 @@ { octave_idx_type nel = a.nelem (); - if (nel < 1 ) - is.clear (std::ios::badbit); - else + if (nel > 0) { double tmp; for (octave_idx_type i = 0; i < nel; i++) diff -r a48fba01e4ac -r dc07bc4157b8 liboctave/dRowVector.cc --- a/liboctave/dRowVector.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/liboctave/dRowVector.cc Fri Mar 20 11:39:25 2009 +0100 @@ -291,9 +291,7 @@ { octave_idx_type len = a.length(); - if (len < 1) - is.clear (std::ios::badbit); - else + if (len > 0) { double tmp; for (octave_idx_type i = 0; i < len; i++) diff -r a48fba01e4ac -r dc07bc4157b8 liboctave/dSparse.cc --- a/liboctave/dSparse.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/liboctave/dSparse.cc Fri Mar 20 11:39:25 2009 +0100 @@ -7588,9 +7588,7 @@ octave_idx_type nc = a.cols (); octave_idx_type nz = a.nzmax (); - if (nr < 1 || nc < 1) - is.clear (std::ios::badbit); - else + if (nr > 0 && nc > 0) { octave_idx_type itmp, jtmp, jold = 0; double tmp; diff -r a48fba01e4ac -r dc07bc4157b8 liboctave/fCColVector.cc --- a/liboctave/fCColVector.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/liboctave/fCColVector.cc Fri Mar 20 11:39:25 2009 +0100 @@ -524,9 +524,7 @@ { octave_idx_type len = a.length(); - if (len < 1) - is.clear (std::ios::badbit); - else + if (len > 0) { float tmp; for (octave_idx_type i = 0; i < len; i++) diff -r a48fba01e4ac -r dc07bc4157b8 liboctave/fCMatrix.cc --- a/liboctave/fCMatrix.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/liboctave/fCMatrix.cc Fri Mar 20 11:39:25 2009 +0100 @@ -3633,9 +3633,7 @@ octave_idx_type nr = a.rows (); octave_idx_type nc = a.cols (); - if (nr < 1 || nc < 1) - is.clear (std::ios::badbit); - else + if (nr > 0 && nc > 0) { FloatComplex tmp; for (octave_idx_type i = 0; i < nr; i++) diff -r a48fba01e4ac -r dc07bc4157b8 liboctave/fCNDArray.cc --- a/liboctave/fCNDArray.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/liboctave/fCNDArray.cc Fri Mar 20 11:39:25 2009 +0100 @@ -911,9 +911,7 @@ { octave_idx_type nel = a.nelem (); - if (nel < 1 ) - is.clear (std::ios::badbit); - else + if (nel > 0) { FloatComplex tmp; for (octave_idx_type i = 0; i < nel; i++) diff -r a48fba01e4ac -r dc07bc4157b8 liboctave/fCRowVector.cc --- a/liboctave/fCRowVector.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/liboctave/fCRowVector.cc Fri Mar 20 11:39:25 2009 +0100 @@ -434,9 +434,7 @@ { octave_idx_type len = a.length(); - if (len < 1) - is.clear (std::ios::badbit); - else + if (len > 0) { FloatComplex tmp; for (octave_idx_type i = 0; i < len; i++) diff -r a48fba01e4ac -r dc07bc4157b8 liboctave/fColVector.cc --- a/liboctave/fColVector.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/liboctave/fColVector.cc Fri Mar 20 11:39:25 2009 +0100 @@ -321,9 +321,7 @@ { octave_idx_type len = a.length(); - if (len < 1) - is.clear (std::ios::badbit); - else + if (len > 0) { float tmp; for (octave_idx_type i = 0; i < len; i++) diff -r a48fba01e4ac -r dc07bc4157b8 liboctave/fMatrix.cc --- a/liboctave/fMatrix.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/liboctave/fMatrix.cc Fri Mar 20 11:39:25 2009 +0100 @@ -3057,9 +3057,7 @@ octave_idx_type nr = a.rows (); octave_idx_type nc = a.cols (); - if (nr < 1 || nc < 1) - is.clear (std::ios::badbit); - else + if (nr > 0 && nc > 0) { float tmp; for (octave_idx_type i = 0; i < nr; i++) diff -r a48fba01e4ac -r dc07bc4157b8 liboctave/fNDArray.cc --- a/liboctave/fNDArray.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/liboctave/fNDArray.cc Fri Mar 20 11:39:25 2009 +0100 @@ -920,9 +920,7 @@ { octave_idx_type nel = a.nelem (); - if (nel < 1 ) - is.clear (std::ios::badbit); - else + if (nel > 0) { float tmp; for (octave_idx_type i = 0; i < nel; i++) diff -r a48fba01e4ac -r dc07bc4157b8 liboctave/fRowVector.cc --- a/liboctave/fRowVector.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/liboctave/fRowVector.cc Fri Mar 20 11:39:25 2009 +0100 @@ -291,9 +291,7 @@ { octave_idx_type len = a.length(); - if (len < 1) - is.clear (std::ios::badbit); - else + if (len > 0) { float tmp; for (octave_idx_type i = 0; i < len; i++) diff -r a48fba01e4ac -r dc07bc4157b8 liboctave/intNDArray.cc --- a/liboctave/intNDArray.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/liboctave/intNDArray.cc Fri Mar 20 11:39:25 2009 +0100 @@ -146,9 +146,7 @@ { octave_idx_type nel = a.nelem (); - if (nel < 1 ) - is.clear (std::ios::badbit); - else + if (nel > 0) { T tmp; diff -r a48fba01e4ac -r dc07bc4157b8 src/ChangeLog --- a/src/ChangeLog Thu Mar 19 17:46:38 2009 +0100 +++ b/src/ChangeLog Fri Mar 20 11:39:25 2009 +0100 @@ -1,3 +1,10 @@ +2009-03-20 Jaroslav Hajek + + * ov-re-mat.cc (octave_matrix::load_ascii): Simplify. + * ov-flt-re-mat.cc (octave_float_matrix::load_ascii): Simplify. + * ov-cx-mat.cc (octave_complex_matrix::load_ascii): Simplify. + * ov-flt-cx-mat.cc (octave_float_complex_matrix::load_ascii): Simplify. + 2009-03-20 Jaroslav Hajek * ov-re-mat.cc (octave_matrix::isnan, octave_matrix::isinf, diff -r a48fba01e4ac -r dc07bc4157b8 src/ov-cx-mat.cc --- a/src/ov-cx-mat.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/src/ov-cx-mat.cc Fri Mar 20 11:39:25 2009 +0100 @@ -353,20 +353,15 @@ { ComplexNDArray tmp(dv); - if (tmp.is_empty ()) - matrix = tmp; - else - { - is >> tmp; + is >> tmp; - if (is) - matrix = tmp; - else - { - error ("load: failed to load matrix constant"); - success = false; - } - } + if (is) + matrix = tmp; + else + { + error ("load: failed to load matrix constant"); + success = false; + } } else { diff -r a48fba01e4ac -r dc07bc4157b8 src/ov-flt-cx-mat.cc --- a/src/ov-flt-cx-mat.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/src/ov-flt-cx-mat.cc Fri Mar 20 11:39:25 2009 +0100 @@ -342,20 +342,15 @@ { FloatComplexNDArray tmp(dv); - if (tmp.is_empty ()) - matrix = tmp; - else - { - is >> tmp; + is >> tmp; - if (is) - matrix = tmp; - else - { - error ("load: failed to load matrix constant"); - success = false; - } - } + if (is) + matrix = tmp; + else + { + error ("load: failed to load matrix constant"); + success = false; + } } else { diff -r a48fba01e4ac -r dc07bc4157b8 src/ov-flt-re-mat.cc --- a/src/ov-flt-re-mat.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/src/ov-flt-re-mat.cc Fri Mar 20 11:39:25 2009 +0100 @@ -372,20 +372,15 @@ { FloatNDArray tmp(dv); - if (tmp.is_empty ()) - matrix = tmp; - else - { - is >> tmp; + is >> tmp; - if (is) - matrix = tmp; - else - { - error ("load: failed to load matrix constant"); - success = false; - } - } + if (is) + matrix = tmp; + else + { + error ("load: failed to load matrix constant"); + success = false; + } } else { diff -r a48fba01e4ac -r dc07bc4157b8 src/ov-re-mat.cc --- a/src/ov-re-mat.cc Thu Mar 19 17:46:38 2009 +0100 +++ b/src/ov-re-mat.cc Fri Mar 20 11:39:25 2009 +0100 @@ -380,20 +380,15 @@ { NDArray tmp(dv); - if (tmp.is_empty ()) - matrix = tmp; - else - { - is >> tmp; + is >> tmp; - if (is) - matrix = tmp; - else - { - error ("load: failed to load matrix constant"); - success = false; - } - } + if (is) + matrix = tmp; + else + { + error ("load: failed to load matrix constant"); + success = false; + } } else {