Mercurial > mxe-octave
comparison src/of-signal-1-fixes.patch @ 4702:85ac971a1bf0
of-signal: update to v1.4.0
* build_packages.m: update signal version number
* src/of-signal-1-fixes.patch: update patch for bug #53849.
* src/of-signal.mk: update version, checksum
author | John Donoghue |
---|---|
date | Mon, 21 May 2018 08:17:06 -0400 |
parents | 00e61c4a5657 |
children |
comparison
equal
deleted
inserted
replaced
4701:58d201e9e747 | 4702:85ac971a1bf0 |
---|---|
1 diff -uNr a/src/cl2bp.cc b/src/cl2bp.cc | 1 # HG changeset patch |
2 --- a/src/cl2bp.cc 2015-05-25 20:22:36.842410900 -0400 | 2 # User Mike Miller <mtmiller@octave.org> |
3 +++ b/src/cl2bp.cc 2018-04-09 12:48:37.336964071 -0400 | 3 # Date 1525815613 25200 |
4 @@ -84,27 +84,27 @@ | 4 # Node ID 3cbff3de1ebcb28a87ca0e0f8342ea393db19908 |
5 # Parent 36e6b83ee1a1b178c58c14c5077038d7a6614118 | |
6 medfilt1: rewrite memory management, fix build error on MinGW (bug #53849) | |
7 | |
8 * medfilt1.cc (sorted_window::sorted_window): Make buf a unique_ptr. Use | |
9 member initialiation list. (sorted_window::~sorted_window): Delete. | |
10 (sorted_window::init): Use fill_n instead of bzero. (sorted_window::replace, | |
11 sorted_window::add, sorted_window::remove): Update syntax to dereference | |
12 offsets into buf. | |
13 | |
14 diff -r 36e6b83ee1a1 -r 3cbff3de1ebc src/medfilt1.cc | |
15 --- a/src/medfilt1.cc Sun May 06 10:17:15 2018 +0200 | |
16 +++ b/src/medfilt1.cc Tue May 08 14:40:13 2018 -0700 | |
17 @@ -27,9 +27,8 @@ | |
18 One dimensional median filter, for real double variables. | |
19 */ | |
5 | 20 |
6 const int m = args(0).int_value(true); | 21 -//#ifdef HAVE_CONFIG_H |
7 if (error_state) { | 22 -//# include "config.h" |
8 - gripe_wrong_type_arg("cl2bp", args (0)); | 23 -//#endif |
9 + err_wrong_type_arg("cl2bp", args (0)); | 24 +#include <algorithm> |
10 return retval; | 25 +#include <memory> |
11 } | |
12 const double w1 = args(1).double_value(); | |
13 if (error_state) { | |
14 - gripe_wrong_type_arg("cl2bp", args (1)); | |
15 + err_wrong_type_arg("cl2bp", args (1)); | |
16 return retval; | |
17 } | |
18 const double w2 = args(2).double_value(); | |
19 if (error_state) { | |
20 - gripe_wrong_type_arg("cl2bp", args (2)); | |
21 + err_wrong_type_arg("cl2bp", args (2)); | |
22 return retval; | |
23 } | |
24 const ColumnVector up_vector(args(3).vector_value()); | |
25 if (error_state) { | |
26 - gripe_wrong_type_arg("cl2bp", args (3)); | |
27 + err_wrong_type_arg("cl2bp", args (3)); | |
28 return retval; | |
29 } | |
30 const ColumnVector lo_vector(args(4).vector_value()); | |
31 if (error_state) { | |
32 - gripe_wrong_type_arg("cl2bp", args (4)); | |
33 + err_wrong_type_arg("cl2bp", args (4)); | |
34 return retval; | |
35 } | |
36 if (up_vector.length() != 3 || lo_vector.length() != 3) { | |
37 @@ -121,7 +121,7 @@ | |
38 | 26 |
39 const int L = args(5).int_value(true); | 27 #include "oct.h" |
40 if (error_state) { | 28 #include "defun-dld.h" |
41 - gripe_wrong_type_arg("cl2bp", args (5)); | 29 @@ -44,7 +43,7 @@ |
42 + err_wrong_type_arg("cl2bp", args (5)); | 30 // Keeps NaNs at the "top" (after Inf) |
43 return retval; | 31 class sorted_window |
44 } | 32 { |
45 if (L > 1000000) { | 33 - double *buf; |
46 diff -uNr a/src/medfilt1.cc b/src/medfilt1.cc | 34 + std::unique_ptr<double[]> buf; |
47 --- a/src/medfilt1.cc 2015-05-25 20:22:36.846411059 -0400 | 35 octave_idx_type numel; |
48 +++ b/src/medfilt1.cc 2018-04-09 12:48:37.336964071 -0400 | 36 octave_idx_type numNaN; |
49 @@ -186,14 +186,14 @@ | 37 bool nan_if_any_is; |
50 return retval; | 38 @@ -70,16 +69,8 @@ |
51 } | 39 // If skip_nan then the median will consider only valid numbers within |
40 // the window. | |
41 sorted_window (octave_idx_type width, bool skip_nan = true) | |
42 - { | |
43 - numel = 0; | |
44 - nan_if_any_is = ! skip_nan; | |
45 - buf = new double [width]; | |
46 - } | |
47 - | |
48 - ~sorted_window () | |
49 - { | |
50 - delete [] buf; | |
51 - } | |
52 + : buf (new double [width]), numel (0), numNaN (0), | |
53 + nan_if_any_is (! skip_nan) { } | |
52 | 54 |
53 - if (args(0).is_complex_type()) | 55 // Initialize to contain seed, and zeros additional zeros. |
54 + if (args(0).iscomplex()) | 56 void init (const double *seed, octave_idx_type num, octave_idx_type stride, |
55 { | 57 @@ -88,7 +79,7 @@ |
56 error("medfilt1 cannot process complex vectors"); | 58 numel = zeros; |
57 return retval; | 59 numNaN = 0; |
58 } | |
59 | 60 |
60 int n=3; // length of the filter (default 3) | 61 - bzero (buf, zeros * sizeof (double)); |
61 - if (nargin > 1) n = NINT(args(1).double_value()); | 62 + std::fill_n (&buf[0], zeros, 0.0); |
62 + if (nargin > 1) n = octave::math::nint(args(1).double_value()); | |
63 if (n < 1) | |
64 { | |
65 error ("medfilt1 filter length must be at least 1"); | |
66 diff -uNr a/src/remez.cc b/src/remez.cc | |
67 --- a/src/remez.cc 2015-05-25 20:22:36.846411059 -0400 | |
68 +++ b/src/remez.cc 2018-04-09 12:48:37.340963884 -0400 | |
69 @@ -784,7 +784,7 @@ | |
70 return retval; | |
71 } | |
72 | 63 |
73 - int numtaps = NINT (args(0).double_value()) + 1; // #coeff = filter order+1 | 64 // Insert from seed. Could sort if it is large |
74 + int numtaps = octave::math::nint (args(0).double_value()) + 1; // #coeff = filter order+1 | 65 num *= stride; |
75 if (numtaps < 4) { | 66 @@ -106,7 +97,7 @@ |
76 error("remez: number of taps must be an integer greater than 3"); | 67 n_pos = find (next); |
77 return retval; | 68 p_pos = find (prev, n_pos); |
78 @@ -841,7 +841,7 @@ | 69 if (n_pos != p_pos) |
79 if (args(4).is_string() && !args(3).is_string()) | 70 - std::copy_backward (buf + n_pos, buf + p_pos, buf + p_pos + 1); |
80 stype = args(4).string_value(); | 71 + std::copy_backward (&buf[n_pos], &buf[p_pos], &buf[p_pos + 1]); |
81 else if (args(4).is_real_scalar()) | 72 } |
82 - density = NINT(args(4).double_value()); | 73 else if (next > prev) |
83 + density = octave::math::nint(args(4).double_value()); | |
84 else { | |
85 error("remez: incorrect argument list"); | |
86 return retval; | |
87 @@ -850,7 +850,7 @@ | |
88 if (nargin > 5) { | |
89 if (args(5).is_real_scalar() | |
90 && !args(4).is_real_scalar()) | |
91 - density = NINT(args(5).double_value()); | |
92 + density = octave::math::nint(args(5).double_value()); | |
93 else { | |
94 error("remez: incorrect argument list"); | |
95 return retval; | |
96 diff -uNr a/src/sosfilt.cc b/src/sosfilt.cc | |
97 --- a/src/sosfilt.cc 2015-05-25 20:22:36.846411059 -0400 | |
98 +++ b/src/sosfilt.cc 2018-04-09 12:52:45.933287424 -0400 | |
99 @@ -13,10 +13,9 @@ | |
100 // You should have received a copy of the GNU General Public License along with | |
101 // this program; if not, see <http://www.gnu.org/licenses/>. | |
102 | |
103 -#include <octave/config.h> | |
104 #include <octave/defun-dld.h> | |
105 #include <octave/error.h> | |
106 -#include <octave/gripes.h> | |
107 +#include <octave/errwarn.h> | |
108 #include <octave/oct-obj.h> | |
109 #include <octave/pager.h> | |
110 #include <octave/quit.h> | |
111 @@ -52,7 +51,7 @@ | |
112 | |
113 if (error_state) | |
114 { | |
115 - gripe_wrong_type_arg("sosfilt",args(0)); | |
116 + err_wrong_type_arg("sosfilt",args(0)); | |
117 return retval; | |
118 } | |
119 | |
120 @@ -66,7 +65,7 @@ | |
121 | |
122 if (error_state) | |
123 { | |
124 - gripe_wrong_type_arg("sosfilt",args(1)); | |
125 + err_wrong_type_arg("sosfilt",args(1)); | |
126 return retval; | |
127 } | |
128 | |
129 diff -uNr a/src/upfirdn.cc b/src/upfirdn.cc | |
130 --- a/src/upfirdn.cc 2015-05-25 20:22:36.846411059 -0400 | |
131 +++ b/src/upfirdn.cc 2018-04-09 12:52:37.249695083 -0400 | |
132 @@ -13,10 +13,9 @@ | |
133 // You should have received a copy of the GNU General Public License along with | |
134 // this program; if not, see <http://www.gnu.org/licenses/>. | |
135 | |
136 -#include <octave/config.h> | |
137 #include <octave/defun-dld.h> | |
138 #include <octave/error.h> | |
139 -#include <octave/gripes.h> | |
140 +#include <octave/errwarn.h> | |
141 #include <octave/oct-obj.h> | |
142 #include <octave/pager.h> | |
143 #include <octave/quit.h> | |
144 @@ -105,7 +104,7 @@ | |
145 | |
146 if (error_state) | |
147 { | |
148 - gripe_wrong_type_arg ("upfirdn", args (1)); | |
149 + err_wrong_type_arg ("upfirdn", args (1)); | |
150 return retval; | |
151 } | |
152 | |
153 @@ -113,7 +112,7 @@ | |
154 | |
155 if (error_state) | |
156 { | |
157 - gripe_wrong_type_arg ("upfirdn", args (2)); | |
158 + err_wrong_type_arg ("upfirdn", args (2)); | |
159 return retval; | |
160 } | |
161 | |
162 @@ -121,7 +120,7 @@ | |
163 | |
164 if (error_state) | |
165 { | |
166 - gripe_wrong_type_arg ("upfirdn", args (3)); | |
167 + err_wrong_type_arg ("upfirdn", args (3)); | |
168 return retval; | |
169 } | |
170 | |
171 @@ -131,19 +130,19 @@ | |
172 Matrix x = args (0).matrix_value (); | |
173 if (error_state) | |
174 { | 74 { |
175 - gripe_wrong_type_arg ("upfirdn", args (0)); | 75 @@ -114,7 +105,7 @@ |
176 + err_wrong_type_arg ("upfirdn", args (0)); | 76 n_pos = find (next, p_pos); |
177 return retval; | 77 if (n_pos != p_pos) |
78 { | |
79 - std::copy (buf + p_pos + 1, buf + n_pos, buf + p_pos); | |
80 + std::copy (&buf[p_pos + 1], &buf[n_pos], &buf[p_pos]); | |
81 n_pos--; // position shifts due to deletion of p_pos | |
82 } | |
178 } | 83 } |
179 | 84 @@ -123,13 +114,13 @@ |
180 Matrix y = upfirdn (x, h, p, q); | 85 if (next == next) |
181 retval (0) = y; | 86 { |
182 } | 87 n_pos = find (next); |
183 - else if (args (0).is_complex_type ()) | 88 - std::copy_backward (buf + n_pos, buf + numel - 1, buf + numel); |
184 + else if (args (0).iscomplex ()) | 89 + std::copy_backward (&buf[n_pos], &buf[numel - 1], &buf[numel]); |
185 { | 90 numNaN--; |
186 ComplexMatrix x = args (0).complex_matrix_value (); | 91 } |
187 if (error_state) | 92 else if (prev == prev) |
93 { | |
94 p_pos = find (prev); | |
95 - std::copy (buf + p_pos + 1, buf + numel, buf + p_pos); | |
96 + std::copy (&buf[p_pos + 1], &buf[numel], &buf[p_pos]); | |
97 n_pos = numel - 1; | |
98 numNaN++; | |
99 } | |
100 @@ -151,7 +142,7 @@ | |
188 { | 101 { |
189 - gripe_wrong_type_arg ("upfirdn", args (0)); | 102 n_pos = find (next); |
190 + err_wrong_type_arg ("upfirdn", args (0)); | 103 if (n_pos < numel) |
191 return retval; | 104 - std::copy_backward (buf + n_pos, buf + numel, buf + numel + 1); |
105 + std::copy_backward (&buf[n_pos], &buf[numel], &buf[numel + 1]); | |
192 } | 106 } |
193 | 107 else // NaN stored at end, so nothing to move. |
194 @@ -152,7 +151,7 @@ | 108 { |
195 } | 109 @@ -170,7 +161,7 @@ |
196 else | 110 if (prev == prev) |
197 { | 111 { |
198 - gripe_wrong_type_arg ("upfirdn", args (0)); | 112 p_pos = find (prev); |
199 + err_wrong_type_arg ("upfirdn", args (0)); | 113 - std::copy (buf + p_pos + 1, buf + numel, buf + p_pos); |
200 return retval; | 114 + std::copy (&buf[p_pos + 1], &buf[numel], &buf[p_pos]); |
201 } | 115 } |
202 | 116 else // NaN stored at end, so nothing to move. |
117 numNaN--; | |
118 |