changeset 31347:800eb86438cc stable

glpk.m: Avoid using isfinite on potentially sparse input. * scripts/optimization/glpk.m: Sparse input to this function is likely mostly finite. Avoid using "isfinite" which might cause out of memory errors for sparsily populated input. Use "isinf" and "isnan" instead.
author Markus Mützel <markus.muetzel@gmx.de>
date Wed, 26 Oct 2022 18:56:06 +0200
parents 989ebec75ff0
children 7c02f8000110 9e7a7e6f54bc
files scripts/optimization/glpk.m
diffstat 1 files changed, 3 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/optimization/glpk.m	Tue Oct 25 10:15:28 2022 -0700
+++ b/scripts/optimization/glpk.m	Wed Oct 26 18:56:06 2022 +0200
@@ -489,7 +489,8 @@
     print_usage ();
   endif
 
-   if (! isvector (c) || iscomplex (c) || ischar (c) || any (! isfinite (c)))
+   if (! isvector (c) || iscomplex (c) || ischar (c) || any (isinf (c))
+       || any (isnan (c)))
      error ("glpk: C must be a real vector with finite values");
   endif
   nx = length (c);
@@ -504,7 +505,7 @@
   if (! isreal (A))
     error ("glpk: A must be real valued, not %s", typeinfo (A));
   endif
-  if (any (! isfinite (A(:))))
+  if (any (isinf (A(:))) || any (isnan (A(:))))
     error ("glpk: The values in A must be finite");
   endif