1function I = irand (imin, imax, m, n) 2%IRAND construct a random integer matrix 3% 4% return a random m-by-n matrix of integers (uint64) 5% in the range imin:imax, inclusive 6% 7% I = irand (imin, imax, m, n) 8% 9% if imin > imax, the ranges are swapped. 10 11% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved. 12% SPDX-License-Identifier: Apache-2.0 13 14if (nargin < 4) 15 n = 1 ; 16end 17 18if (nargin < 3) 19 m = 1 ; 20end 21 22if (imin > imax) 23 t = imin ; 24 imin = imax ; 25 imax = t ; 26end 27 28if (imin == imax) 29 I = uint64 (imin) * ones (m, n, 'uint64') ; 30else 31 x = rand (m,n) ; 32 I = uint64 (floor ((imax-imin+1) * x) + imin) ; 33end 34 35assert (min (min (I)) >= imin) ; 36assert (max (max (I)) <= imax) ; 37 38 39