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