changeset 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 1b5d45d7afd4
children 3be68b84098a
files src/of-interval-3-error_state.patch
diffstat 1 files changed, 151 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/of-interval-3-error_state.patch	Fri Nov 26 23:27:10 2021 +0100
@@ -0,0 +1,151 @@
+# HG changeset patch
+# User Markus Mützel <markus.muetzel@gmx.de>
+# Date 1637946154 -3600
+#      Fri Nov 26 18:02:34 2021 +0100
+# Node ID afe5ca3dbea5893fcc0b166a4c9e4bbaf24f18c5
+# Parent  9014fec674bdbac46727ca3e3f25d57bf06a2115
+Fix compilation with Octave 8 (bug #61568).
+
+* src/crlibm_function.cc (Fcrlibm_function), src/mpfr_function_d.cc
+(Fmpfr_function_d), src/mpfr_linspace_d.cc (Fmpfr_linspace_d),
+src/mpfr_matrix_mul_d.cc (Fmpfr_matrix_mul_d), src/mpfr_matrix_sqr_d.cc
+(Fmpfr_matrix_sqr_d), src/mpfr_to_string_d.cc (Fmpfr_to_string_d),
+src/mpfr_vector_dot_d.cc (Fmpfr_vector_dot_d), src/mpfr_vector_sum_d.cc
+(Fmpfr_vector_sum_d), src/__setround__.cc (F__setround__): Remove usage of
+`error_state`. It was unconditionally set to 0 since about 6 years ago and will
+finally be removed in Octave 8.
+
+diff -r 9014fec674bd -r afe5ca3dbea5 src/__setround__.cc
+--- a/src/__setround__.cc	Mon Dec 21 08:57:25 2020 +0100
++++ b/src/__setround__.cc	Fri Nov 26 18:02:34 2021 +0100
+@@ -62,9 +62,6 @@
+     error ("__setround__: Unsupported rounding mode, please use -inf, +inf "
+            "or 0.5");
+ 
+-  if (error_state)
+-    return octave_value_list ();
+-
+   if (fesetround (mode) != 0)
+     error ("__setround__: Unable to change rounding mode");
+ 
+diff -r 9014fec674bd -r afe5ca3dbea5 src/crlibm_function.cc
+--- a/src/crlibm_function.cc	Mon Dec 21 08:57:25 2020 +0100
++++ b/src/crlibm_function.cc	Fri Nov 26 18:02:34 2021 +0100
+@@ -84,9 +84,6 @@
+   const double      rnd      = args(1).scalar_value ();
+   NDArray           arg1     = args(2).array_value ();
+ 
+-  if (error_state)
+-    return octave_value_list ();
+-
+   if (rnd == INFINITY)
+     {
+       // Round upwards
+diff -r 9014fec674bd -r afe5ca3dbea5 src/mpfr_function_d.cc
+--- a/src/mpfr_function_d.cc	Mon Dec 21 08:57:25 2020 +0100
++++ b/src/mpfr_function_d.cc	Fri Nov 26 18:02:34 2021 +0100
+@@ -391,8 +391,6 @@
+       if (arg1.dims () != arg2.dims () || arg2.dims () != arg3.dims ())
+         error ("mpfr_function_d: Array dimensions must agree!");
+     }
+-  if (error_state)
+-    return octave_value_list ();
+ 
+   // Choose the function to evaluate
+   switch (nargin - 2)
+@@ -491,8 +489,6 @@
+         else if (function == "nthroot")
+           {
+             uint64NDArray n = args (3).uint64_array_value ();
+-            if (error_state)
+-              return octave_value_list ();
+             nthroot (arg1, n, rnd);
+           }
+         else if (function == "plus")
+diff -r 9014fec674bd -r afe5ca3dbea5 src/mpfr_linspace_d.cc
+--- a/src/mpfr_linspace_d.cc	Mon Dec 21 08:57:25 2020 +0100
++++ b/src/mpfr_linspace_d.cc	Fri Nov 26 18:02:34 2021 +0100
+@@ -65,8 +65,6 @@
+     error ("mpfr_linspace_d: vectors must be of equal length");
+   if (rnd != MPFR_RNDD && rnd != MPFR_RNDU)
+     error ("mpfr_linspace_d: only directed rounding supported");
+-  if (error_state)
+-    return octave_value_list ();
+ 
+   // Result size
+   n = std::max (n, 1);
+diff -r 9014fec674bd -r afe5ca3dbea5 src/mpfr_matrix_mul_d.cc
+--- a/src/mpfr_matrix_mul_d.cc	Mon Dec 21 08:57:25 2020 +0100
++++ b/src/mpfr_matrix_mul_d.cc	Fri Nov 26 18:02:34 2021 +0100
+@@ -137,9 +137,7 @@
+   Matrix matrix_yl = args (1).matrix_value ();
+   Matrix matrix_xu = args (2).matrix_value ();
+   Matrix matrix_yu = args (3).matrix_value ();
+-  if (error_state)
+-    return octave_value_list ();
+-  
++
+   std::pair <Matrix, Matrix> result_d = 
+     interval_matrix_mul (matrix_xl, matrix_yl, matrix_xu, matrix_yu);
+   octave_value_list result;
+diff -r 9014fec674bd -r afe5ca3dbea5 src/mpfr_matrix_sqr_d.cc
+--- a/src/mpfr_matrix_sqr_d.cc	Mon Dec 21 08:57:25 2020 +0100
++++ b/src/mpfr_matrix_sqr_d.cc	Fri Nov 26 18:02:34 2021 +0100
+@@ -331,9 +331,7 @@
+ 
+   Matrix matrix_xl = args (0).matrix_value ();
+   Matrix matrix_xu = args (1).matrix_value ();
+-  if (error_state)
+-    return octave_value_list ();
+-  
++
+   std::pair <Matrix, Matrix> result_d = 
+     interval_matrix_sqr (matrix_xl, matrix_xu);
+   octave_value_list result;
+diff -r 9014fec674bd -r afe5ca3dbea5 src/mpfr_to_string_d.cc
+--- a/src/mpfr_to_string_d.cc	Mon Dec 21 08:57:25 2020 +0100
++++ b/src/mpfr_to_string_d.cc	Fri Nov 26 18:02:34 2021 +0100
+@@ -128,9 +128,7 @@
+     }
+   
+   const Matrix x = args (2).matrix_value ();
+-  if (error_state)
+-    return octave_value_list ();
+-  
++
+   char buf [768];
+   mpfr_t mp;
+   mpfr_t zero;
+diff -r 9014fec674bd -r afe5ca3dbea5 src/mpfr_vector_dot_d.cc
+--- a/src/mpfr_vector_dot_d.cc	Mon Dec 21 08:57:25 2020 +0100
++++ b/src/mpfr_vector_dot_d.cc	Fri Nov 26 18:02:34 2021 +0100
+@@ -460,8 +460,6 @@
+           NDArray array_xu = args (2).array_value ();
+           NDArray array_yu = args (3).array_value ();
+           octave_idx_type dim = args (4).scalar_value ();
+-          if (error_state)
+-            return octave_value_list ();
+ 
+           std::pair <NDArray, NDArray> result_d =
+               interval_vector_dot (array_xl, array_yl, array_xu, array_yu, dim);
+@@ -475,8 +473,6 @@
+           const NDArray array_x = args (1).array_value ();
+           const NDArray array_y = args (2).array_value ();
+           const octave_idx_type dim = args (3).scalar_value ();
+-          if (error_state)
+-            return octave_value_list ();
+ 
+           std::pair <NDArray, NDArray> result_and_error
+               = vector_dot (rnd, array_x, array_y, dim, nargout >= 2);
+diff -r 9014fec674bd -r afe5ca3dbea5 src/mpfr_vector_sum_d.cc
+--- a/src/mpfr_vector_sum_d.cc	Mon Dec 21 08:57:25 2020 +0100
++++ b/src/mpfr_vector_sum_d.cc	Fri Nov 26 18:02:34 2021 +0100
+@@ -69,8 +69,6 @@
+   const mpfr_rnd_t rnd      = parse_rounding_mode (args (0).scalar_value ());
+   const NDArray    array    = args (1).array_value ();
+   const octave_idx_type dim = args (2).scalar_value ();
+-  if (error_state)
+-    return octave_value_list ();
+ 
+   if (dim > array.ndims ())
+     {