comparison src/of-interval-3-error_state.patch @ 5986:7e4b598bd679

of-interval: Fix for Octave 8 (bug #61568). * src/of-interval-2-error_state.patch: Add patch to fix compilation with Octave 8. * dist-files.mk: Add new file to dist.
author Markus Mützel <markus.muetzel@gmx.de>
date Fri, 26 Nov 2021 23:27:10 +0100
parents
children
comparison
equal deleted inserted replaced
5985:1b5d45d7afd4 5986:7e4b598bd679
1 # HG changeset patch
2 # User Markus Mützel <markus.muetzel@gmx.de>
3 # Date 1637946154 -3600
4 # Fri Nov 26 18:02:34 2021 +0100
5 # Node ID afe5ca3dbea5893fcc0b166a4c9e4bbaf24f18c5
6 # Parent 9014fec674bdbac46727ca3e3f25d57bf06a2115
7 Fix compilation with Octave 8 (bug #61568).
8
9 * src/crlibm_function.cc (Fcrlibm_function), src/mpfr_function_d.cc
10 (Fmpfr_function_d), src/mpfr_linspace_d.cc (Fmpfr_linspace_d),
11 src/mpfr_matrix_mul_d.cc (Fmpfr_matrix_mul_d), src/mpfr_matrix_sqr_d.cc
12 (Fmpfr_matrix_sqr_d), src/mpfr_to_string_d.cc (Fmpfr_to_string_d),
13 src/mpfr_vector_dot_d.cc (Fmpfr_vector_dot_d), src/mpfr_vector_sum_d.cc
14 (Fmpfr_vector_sum_d), src/__setround__.cc (F__setround__): Remove usage of
15 `error_state`. It was unconditionally set to 0 since about 6 years ago and will
16 finally be removed in Octave 8.
17
18 diff -r 9014fec674bd -r afe5ca3dbea5 src/__setround__.cc
19 --- a/src/__setround__.cc Mon Dec 21 08:57:25 2020 +0100
20 +++ b/src/__setround__.cc Fri Nov 26 18:02:34 2021 +0100
21 @@ -62,9 +62,6 @@
22 error ("__setround__: Unsupported rounding mode, please use -inf, +inf "
23 "or 0.5");
24
25 - if (error_state)
26 - return octave_value_list ();
27 -
28 if (fesetround (mode) != 0)
29 error ("__setround__: Unable to change rounding mode");
30
31 diff -r 9014fec674bd -r afe5ca3dbea5 src/crlibm_function.cc
32 --- a/src/crlibm_function.cc Mon Dec 21 08:57:25 2020 +0100
33 +++ b/src/crlibm_function.cc Fri Nov 26 18:02:34 2021 +0100
34 @@ -84,9 +84,6 @@
35 const double rnd = args(1).scalar_value ();
36 NDArray arg1 = args(2).array_value ();
37
38 - if (error_state)
39 - return octave_value_list ();
40 -
41 if (rnd == INFINITY)
42 {
43 // Round upwards
44 diff -r 9014fec674bd -r afe5ca3dbea5 src/mpfr_function_d.cc
45 --- a/src/mpfr_function_d.cc Mon Dec 21 08:57:25 2020 +0100
46 +++ b/src/mpfr_function_d.cc Fri Nov 26 18:02:34 2021 +0100
47 @@ -391,8 +391,6 @@
48 if (arg1.dims () != arg2.dims () || arg2.dims () != arg3.dims ())
49 error ("mpfr_function_d: Array dimensions must agree!");
50 }
51 - if (error_state)
52 - return octave_value_list ();
53
54 // Choose the function to evaluate
55 switch (nargin - 2)
56 @@ -491,8 +489,6 @@
57 else if (function == "nthroot")
58 {
59 uint64NDArray n = args (3).uint64_array_value ();
60 - if (error_state)
61 - return octave_value_list ();
62 nthroot (arg1, n, rnd);
63 }
64 else if (function == "plus")
65 diff -r 9014fec674bd -r afe5ca3dbea5 src/mpfr_linspace_d.cc
66 --- a/src/mpfr_linspace_d.cc Mon Dec 21 08:57:25 2020 +0100
67 +++ b/src/mpfr_linspace_d.cc Fri Nov 26 18:02:34 2021 +0100
68 @@ -65,8 +65,6 @@
69 error ("mpfr_linspace_d: vectors must be of equal length");
70 if (rnd != MPFR_RNDD && rnd != MPFR_RNDU)
71 error ("mpfr_linspace_d: only directed rounding supported");
72 - if (error_state)
73 - return octave_value_list ();
74
75 // Result size
76 n = std::max (n, 1);
77 diff -r 9014fec674bd -r afe5ca3dbea5 src/mpfr_matrix_mul_d.cc
78 --- a/src/mpfr_matrix_mul_d.cc Mon Dec 21 08:57:25 2020 +0100
79 +++ b/src/mpfr_matrix_mul_d.cc Fri Nov 26 18:02:34 2021 +0100
80 @@ -137,9 +137,7 @@
81 Matrix matrix_yl = args (1).matrix_value ();
82 Matrix matrix_xu = args (2).matrix_value ();
83 Matrix matrix_yu = args (3).matrix_value ();
84 - if (error_state)
85 - return octave_value_list ();
86 -
87 +
88 std::pair <Matrix, Matrix> result_d =
89 interval_matrix_mul (matrix_xl, matrix_yl, matrix_xu, matrix_yu);
90 octave_value_list result;
91 diff -r 9014fec674bd -r afe5ca3dbea5 src/mpfr_matrix_sqr_d.cc
92 --- a/src/mpfr_matrix_sqr_d.cc Mon Dec 21 08:57:25 2020 +0100
93 +++ b/src/mpfr_matrix_sqr_d.cc Fri Nov 26 18:02:34 2021 +0100
94 @@ -331,9 +331,7 @@
95
96 Matrix matrix_xl = args (0).matrix_value ();
97 Matrix matrix_xu = args (1).matrix_value ();
98 - if (error_state)
99 - return octave_value_list ();
100 -
101 +
102 std::pair <Matrix, Matrix> result_d =
103 interval_matrix_sqr (matrix_xl, matrix_xu);
104 octave_value_list result;
105 diff -r 9014fec674bd -r afe5ca3dbea5 src/mpfr_to_string_d.cc
106 --- a/src/mpfr_to_string_d.cc Mon Dec 21 08:57:25 2020 +0100
107 +++ b/src/mpfr_to_string_d.cc Fri Nov 26 18:02:34 2021 +0100
108 @@ -128,9 +128,7 @@
109 }
110
111 const Matrix x = args (2).matrix_value ();
112 - if (error_state)
113 - return octave_value_list ();
114 -
115 +
116 char buf [768];
117 mpfr_t mp;
118 mpfr_t zero;
119 diff -r 9014fec674bd -r afe5ca3dbea5 src/mpfr_vector_dot_d.cc
120 --- a/src/mpfr_vector_dot_d.cc Mon Dec 21 08:57:25 2020 +0100
121 +++ b/src/mpfr_vector_dot_d.cc Fri Nov 26 18:02:34 2021 +0100
122 @@ -460,8 +460,6 @@
123 NDArray array_xu = args (2).array_value ();
124 NDArray array_yu = args (3).array_value ();
125 octave_idx_type dim = args (4).scalar_value ();
126 - if (error_state)
127 - return octave_value_list ();
128
129 std::pair <NDArray, NDArray> result_d =
130 interval_vector_dot (array_xl, array_yl, array_xu, array_yu, dim);
131 @@ -475,8 +473,6 @@
132 const NDArray array_x = args (1).array_value ();
133 const NDArray array_y = args (2).array_value ();
134 const octave_idx_type dim = args (3).scalar_value ();
135 - if (error_state)
136 - return octave_value_list ();
137
138 std::pair <NDArray, NDArray> result_and_error
139 = vector_dot (rnd, array_x, array_y, dim, nargout >= 2);
140 diff -r 9014fec674bd -r afe5ca3dbea5 src/mpfr_vector_sum_d.cc
141 --- a/src/mpfr_vector_sum_d.cc Mon Dec 21 08:57:25 2020 +0100
142 +++ b/src/mpfr_vector_sum_d.cc Fri Nov 26 18:02:34 2021 +0100
143 @@ -69,8 +69,6 @@
144 const mpfr_rnd_t rnd = parse_rounding_mode (args (0).scalar_value ());
145 const NDArray array = args (1).array_value ();
146 const octave_idx_type dim = args (2).scalar_value ();
147 - if (error_state)
148 - return octave_value_list ();
149
150 if (dim > array.ndims ())
151 {