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