Mercurial > octave
diff libinterp/corefcn/filter.cc @ 20687:5f04bfc7c17a
backout changeset 18f38ed43962
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sun, 08 Nov 2015 16:14:27 -0500 |
parents | 18f38ed43962 |
children | 571508c1ed06 |
line wrap: on
line diff
--- a/libinterp/corefcn/filter.cc Sun Nov 08 12:00:06 2015 +0100 +++ b/libinterp/corefcn/filter.cc Sun Nov 08 16:14:27 2015 -0500 @@ -440,86 +440,96 @@ { if (isfloat) { - FloatComplexColumnVector b (args(0).float_complex_vector_value (errmsg)); - FloatComplexColumnVector a (args(1).float_complex_vector_value (errmsg)); + FloatComplexColumnVector b (args(0).float_complex_vector_value ()); + FloatComplexColumnVector a (args(1).float_complex_vector_value ()); FloatComplexNDArray x (args(2).float_complex_array_value ()); - FloatComplexNDArray si; - - if (nargin == 3 || args(3).is_empty ()) - { - octave_idx_type a_len = a.numel (); - octave_idx_type b_len = b.numel (); - - octave_idx_type si_len = (a_len > b_len ? a_len : b_len) - 1; - - dim_vector si_dims = x.dims (); - for (int i = dim; i > 0; i--) - si_dims(i) = si_dims(i-1); - si_dims(0) = si_len; - - si.resize (si_dims, 0.0); - } - else - { - si = args(3).float_complex_array_value (); - - if (si.is_vector () && x.is_vector ()) - si = si.reshape (dim_vector (si.numel (), 1)); - } - if (! error_state) { - FloatComplexNDArray y (filter (b, a, x, si, dim)); + FloatComplexNDArray si; + + if (nargin == 3 || args(3).is_empty ()) + { + octave_idx_type a_len = a.numel (); + octave_idx_type b_len = b.numel (); + + octave_idx_type si_len = (a_len > b_len ? a_len : b_len) - 1; + + dim_vector si_dims = x.dims (); + for (int i = dim; i > 0; i--) + si_dims(i) = si_dims(i-1); + si_dims(0) = si_len; - if (nargout == 2) - retval(1) = si; + si.resize (si_dims, 0.0); + } + else + { + si = args(3).float_complex_array_value (); + + if (si.is_vector () && x.is_vector ()) + si = si.reshape (dim_vector (si.numel (), 1)); + } - retval(0) = y; + if (! error_state) + { + FloatComplexNDArray y (filter (b, a, x, si, dim)); + + if (nargout == 2) + retval(1) = si; + + retval(0) = y; + } + else + error (errmsg); } else error (errmsg); } else { - ComplexColumnVector b (args(0).complex_vector_value (errmsg)); - ComplexColumnVector a (args(1).complex_vector_value (errmsg)); + ComplexColumnVector b (args(0).complex_vector_value ()); + ComplexColumnVector a (args(1).complex_vector_value ()); ComplexNDArray x (args(2).complex_array_value ()); - ComplexNDArray si; - - if (nargin == 3 || args(3).is_empty ()) - { - octave_idx_type a_len = a.numel (); - octave_idx_type b_len = b.numel (); - - octave_idx_type si_len = (a_len > b_len ? a_len : b_len) - 1; - - dim_vector si_dims = x.dims (); - for (int i = dim; i > 0; i--) - si_dims(i) = si_dims(i-1); - si_dims(0) = si_len; - - si.resize (si_dims, 0.0); - } - else - { - si = args(3).complex_array_value (); - - if (si.is_vector () && x.is_vector ()) - si = si.reshape (dim_vector (si.numel (), 1)); - } - if (! error_state) { - ComplexNDArray y (filter (b, a, x, si, dim)); + ComplexNDArray si; + + if (nargin == 3 || args(3).is_empty ()) + { + octave_idx_type a_len = a.numel (); + octave_idx_type b_len = b.numel (); + + octave_idx_type si_len = (a_len > b_len ? a_len : b_len) - 1; + + dim_vector si_dims = x.dims (); + for (int i = dim; i > 0; i--) + si_dims(i) = si_dims(i-1); + si_dims(0) = si_len; - if (nargout == 2) - retval(1) = si; + si.resize (si_dims, 0.0); + } + else + { + si = args(3).complex_array_value (); + + if (si.is_vector () && x.is_vector ()) + si = si.reshape (dim_vector (si.numel (), 1)); + } - retval(0) = y; + if (! error_state) + { + ComplexNDArray y (filter (b, a, x, si, dim)); + + if (nargout == 2) + retval(1) = si; + + retval(0) = y; + } + else + error (errmsg); } else error (errmsg); @@ -529,86 +539,96 @@ { if (isfloat) { - FloatColumnVector b (args(0).float_vector_value (errmsg)); - FloatColumnVector a (args(1).float_vector_value (errmsg)); + FloatColumnVector b (args(0).float_vector_value ()); + FloatColumnVector a (args(1).float_vector_value ()); FloatNDArray x (args(2).float_array_value ()); - FloatNDArray si; - - if (nargin == 3 || args(3).is_empty ()) - { - octave_idx_type a_len = a.numel (); - octave_idx_type b_len = b.numel (); - - octave_idx_type si_len = (a_len > b_len ? a_len : b_len) - 1; - - dim_vector si_dims = x.dims (); - for (int i = dim; i > 0; i--) - si_dims(i) = si_dims(i-1); - si_dims(0) = si_len; - - si.resize (si_dims, 0.0); - } - else - { - si = args(3).float_array_value (); - - if (si.is_vector () && x.is_vector ()) - si = si.reshape (dim_vector (si.numel (), 1)); - } - if (! error_state) { - FloatNDArray y (filter (b, a, x, si, dim)); + FloatNDArray si; + + if (nargin == 3 || args(3).is_empty ()) + { + octave_idx_type a_len = a.numel (); + octave_idx_type b_len = b.numel (); + + octave_idx_type si_len = (a_len > b_len ? a_len : b_len) - 1; + + dim_vector si_dims = x.dims (); + for (int i = dim; i > 0; i--) + si_dims(i) = si_dims(i-1); + si_dims(0) = si_len; - if (nargout == 2) - retval(1) = si; + si.resize (si_dims, 0.0); + } + else + { + si = args(3).float_array_value (); + + if (si.is_vector () && x.is_vector ()) + si = si.reshape (dim_vector (si.numel (), 1)); + } - retval(0) = y; + if (! error_state) + { + FloatNDArray y (filter (b, a, x, si, dim)); + + if (nargout == 2) + retval(1) = si; + + retval(0) = y; + } + else + error (errmsg); } else error (errmsg); } else { - ColumnVector b (args(0).vector_value (errmsg)); - ColumnVector a (args(1).vector_value (errmsg)); + ColumnVector b (args(0).vector_value ()); + ColumnVector a (args(1).vector_value ()); NDArray x (args(2).array_value ()); - NDArray si; - - if (nargin == 3 || args(3).is_empty ()) - { - octave_idx_type a_len = a.numel (); - octave_idx_type b_len = b.numel (); - - octave_idx_type si_len = (a_len > b_len ? a_len : b_len) - 1; - - dim_vector si_dims = x.dims (); - for (int i = dim; i > 0; i--) - si_dims(i) = si_dims(i-1); - si_dims(0) = si_len; - - si.resize (si_dims, 0.0); - } - else - { - si = args(3).array_value (); - - if (si.is_vector () && x.is_vector ()) - si = si.reshape (dim_vector (si.numel (), 1)); - } - if (! error_state) { - NDArray y (filter (b, a, x, si, dim)); + NDArray si; + + if (nargin == 3 || args(3).is_empty ()) + { + octave_idx_type a_len = a.numel (); + octave_idx_type b_len = b.numel (); + + octave_idx_type si_len = (a_len > b_len ? a_len : b_len) - 1; + + dim_vector si_dims = x.dims (); + for (int i = dim; i > 0; i--) + si_dims(i) = si_dims(i-1); + si_dims(0) = si_len; - if (nargout == 2) - retval(1) = si; + si.resize (si_dims, 0.0); + } + else + { + si = args(3).array_value (); + + if (si.is_vector () && x.is_vector ()) + si = si.reshape (dim_vector (si.numel (), 1)); + } - retval(0) = y; + if (! error_state) + { + NDArray y (filter (b, a, x, si, dim)); + + if (nargout == 2) + retval(1) = si; + + retval(0) = y; + } + else + error (errmsg); } else error (errmsg);