Some built-in self tests (BISTs) are failing on the Windows 32bit GitHub runners with `out of memory or dimension too large for Octave's index type`

.

This might be because the algorithm used by the tested functions are using the memory inefficiently. Or it might be that the tests require an excessive amount of memory.

Should the BISTs be reworked to depend less on the capabilities (like total available memory) of the machine they are running on? I.e. should we use smaller matrices in the tests?

The failing tests are:

```
>>>>> processing C:\msys64\mingw32\share\octave\7.0.0\m\image\rgb2ind.m
***** test
## this should have more than 65536 unique colors
rgb = rand (1000, 1000, 3);
[ind, map] = rgb2ind (rgb);
assert (class (ind), "double");
assert (class (map), "double");
## and this should have between 255 and 65536 unique colors
rgb = rand (20, 20, 3);
[ind, map] = rgb2ind (rgb);
assert (class (ind), "uint16");
assert (class (map), "double");
## and this certainly less than 256 unique colors
rgb = rand (10, 10, 3);
[ind, map] = rgb2ind (rgb);
assert (class (ind), "uint8");
assert (class (map), "double");
!!!!! test failed
out of memory or dimension too large for Octave's index type
```

```
>>>>> processing C:\msys64\mingw32\share\octave\7.0.0\m\plot\util\copyobj.m
***** testif HAVE_MAGICK; any (strcmp ("gnuplot", available_graphics_toolkits ()))
toolkit = graphics_toolkit ();
graphics_toolkit ("gnuplot");
unwind_protect
h1 = figure ("visible", "off", "paperposition", [0.25, 2.5, 8.0, 6.0]);
x = 0:0.1:2*pi;
y1 = sin (x);
y2 = exp (x - 1);
ax = plotyy (x,y1, x-1,y2, @plot, @semilogy);
xlabel ("X");
ylabel (ax(1), "Axis 1");
ylabel (ax(2), "Axis 2");
axes (ax(1));
text (0.5, 0.5, "Left Axis", ...
"color", [0 0 1], "horizontalalignment", "center");
axes (ax(2));
text (4.5, 80, "Right Axis", ...
"color", [0 0.5 0], "horizontalalignment", "center");
s1 = hdl2struct (h1);
h2 = struct2hdl (s1);
s2 = hdl2struct (h2);
png1 = [tempname() ".png"];
png2 = [tempname() ".png"];
unwind_protect
print (h1, png1);
[img1, map1, alpha1] = imread (png1);
print (h2, png2);
[img2, map2, alpha2] = imread (png2);
unwind_protect_cleanup
unlink (png1);
unlink (png2);
end_unwind_protect
assert (img1, img2);
assert (map1, map2);
assert (alpha1, alpha2);
unwind_protect_cleanup
close (h1);
close (h2);
graphics_toolkit (toolkit);
end_unwind_protect
!!!!! test failed
out of memory or dimension too large for Octave's index type
```

```
>>>>> processing C:\msys64\mingw32\share\octave\7.0.0\m\plot\util\hgsave.m
***** testif HAVE_MAGICK; (have_window_system () && __have_feature__ ("QT_OFFSCREEN") && strcmp ("qt", graphics_toolkit ())) || strcmp ("gnuplot", graphics_toolkit ());
h1 = figure ("visible", "off", "paperposition", [0.25, 2.5, 8.0, 6.0]);
unwind_protect
x = 0:0.1:2*pi;
y1 = sin (x);
y2 = exp (x - 1);
ax = plotyy (x,y1, x-1,y2, @plot, @semilogy);
xlabel ("X");
ylabel (ax(1), "Axis 1");
ylabel (ax(2), "Axis 2");
axes (ax(1));
text (0.5, 0.5, "Left Axis", ...
"color", [0 0 1], "horizontalalignment", "center");
axes (ax(2));
text (4.5, 80, "Right Axis", ...
"color", [0 0.5 0], "horizontalalignment", "center");
ftmp = [tempname() ".ofig"];
png1 = [tempname() ".png"];
png2 = [tempname() ".png"];
unwind_protect
hgsave (h1, ftmp);
print (h1, png1);
[img1, map1, alpha1] = imread (png1);
h2 = hgload (ftmp);
print (h2, png2);
[img2, map2, alpha2] = imread (png2);
unwind_protect_cleanup
unlink (ftmp);
unlink (png1);
unlink (png2);
end_unwind_protect
assert (img1, img2);
assert (map1, map2);
assert (alpha1, alpha2);
unwind_protect_cleanup
close (h1);
close (h2);
end_unwind_protect
!!!!! test failed
out of memory or dimension too large for Octave's index type
```

```
>>>>> processing C:\msys64\mingw32\share\octave\7.0.0\m\sparse\gmres.m
***** test
dim = 100;
A = spdiags ([[1./(2:2:2*(dim-1)) 0]; 1./(1:2:2*dim-1); ...
[0 1./(2:2:2*(dim-1))]]', -1:1, dim, dim);
A = A'*A;
b = rand (dim, 1);
[x, resvec] = gmres (@(x) A*x, b, dim, 1e-10, dim,...
@(x) x./diag (A), [], []);
assert (x, A\b, 1e-9*norm (x, Inf));
[x, flag] = gmres (@(x) A*x, b, dim, 1e-10, 1e6,...
@(x) diag (diag (A)) \ x, [], []);
assert (x, A\b, 1e-9*norm (x, Inf));
[x, flag] = gmres (@(x) A*x, b, dim, 1e-10, 1e6,...
@(x) x ./ diag (A), [], []);
assert (x, A\b, 1e-7*norm (x, Inf));
!!!!! test failed
out of memory or dimension too large for Octave's index type
```