# HG changeset patch # User Rik # Date 1668533815 28800 # Node ID 84e8f0bf83f7f99e463ebdf799f304406aa2f93f # Parent 21b5e1c4d36e6dd7b0d23761acea614aa0f268cd assert.m: Avoid out-of-memory errors for sparse matrices (bug #63277) * assert.m: Avoid use of "! isfinite" for sparse matrices. diff -r 21b5e1c4d36e -r 84e8f0bf83f7 scripts/testfun/assert.m --- a/scripts/testfun/assert.m Tue Nov 15 09:13:42 2022 -0800 +++ b/scripts/testfun/assert.m Tue Nov 15 09:36:55 2022 -0800 @@ -347,8 +347,14 @@ A_null_real = real (A); B_null_real = real (B); endif - exclude = errseen ... - | ! isfinite (A_null_real) & ! isfinite (B_null_real); + if (issparse (errseen)) + exclude = errseen ... + | isnan (A_null_real) | isinf (A_null_real) ... + | isnan (B_null_real) | isinf (B_null_real); + else + exclude = errseen ... + | ! isfinite (A_null_real) & ! isfinite (B_null_real); + endif A_null_real(exclude) = 0; B_null_real(exclude) = 0; @@ -358,8 +364,15 @@ else A_null_imag = imag (A); B_null_imag = imag (B); - exclude = errseen ... - | ! isfinite (A_null_imag) & ! isfinite (B_null_imag); + if (issparse (errseen)) + exclude = errseen ... + | isnan (A_null_imag) | isinf (A_null_imag) ... + | isnan (B_null_imag) | isinf (B_null_imag); + else + exclude = errseen ... + | ! isfinite (A_null_imag) & ! isfinite (B_null_imag); + endif + A_null_imag(exclude) = 0; B_null_imag(exclude) = 0; A_null = complex (A_null_real, A_null_imag);