1function test24
2%TEST24 test sdmult
3% Example:
4%   test24
5% See also cholmod_test
6
7% Copyright 2007, Timothy A. Davis, http://www.suitesparse.com
8
9fprintf ('=================================================================\n');
10fprintf ('test24: test sdmult\n') ;
11
12rand ('state', 0) ;
13randn ('state', 0) ;
14maxerr = 0 ;
15
16for trials = 1:1000
17
18    sm = fix (20 * rand (1)) ;
19    sn = fix (20 * rand (1)) ;
20    fn = fix (20 * rand (1)) ;
21
22    for complexity = 0:1
23	for transpose = 0:1
24	    if (transpose)
25		fm = sm ;
26	    else
27		fm = sn ;
28	    end
29	    S = sprand (sm,sn,0.5) ;
30	    F = rand (fm,fn) ;
31
32	    if (complexity)
33		S = S + 1i * sprand (S) ;
34		F = F + 1i * rand (fm,fn) ;
35	    end
36
37	    % MATLAB does not support empty complex matrices
38	    if (isempty (S) | isempty (F))				    %#ok
39		S = sparse (real (S)) ;
40		F = real (F) ;
41	    end
42
43	    C = sdmult (S,F,transpose) ;
44
45	    if (transpose)
46		D = S'*F ;
47	    else
48		D = S*F ;
49	    end
50
51	    err = norm (C-D,1) ;
52	    maxerr = max (err, maxerr) ;
53	    if (err > 1e-13)
54		error ('!') ;
55	    end
56	end
57    end
58end
59
60fprintf ('test 24 passed, maxerr %g\n', maxerr) ;
61