File: test196.m

package info (click to toggle)
suitesparse-graphblas 7.4.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 67,112 kB
  • sloc: ansic: 1,072,243; cpp: 8,081; sh: 512; makefile: 506; asm: 369; python: 125; awk: 10
file content (76 lines) | stat: -rw-r--r-- 2,001 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
function test196
%TEST196 test large hypersparse concat

% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2022, All Rights Reserved.
% SPDX-License-Identifier: Apache-2.0

rng ('default') ;
m = 2e6 ;
n = 1e6 ;
d = 100 / n^2 ;
A1.matrix = sprand (m, n, d) ;      A1.sparsity = 1 ;
A2.matrix = sprand (m, 2*n, d) ;    A2.sparsity = 1 ;
A3.matrix = sprand (2*m, n, d) ;    A3.sparsity = 1 ;
A4.matrix = sprand (2*m, 2*n, d) ;  A4.sparsity = 1 ;

for is_csc = 0:1
    A1.is_csc = is_csc ;
    A2.is_csc = is_csc ;
    A3.is_csc = is_csc ;
    A4.is_csc = is_csc ;
    Tiles = cell (2,2) ;
    Tiles {1,1} = A1 ;
    Tiles {1,2} = A2 ;
    Tiles {2,1} = A3 ;
    Tiles {2,2} = A4 ;
    C1 = GB_mex_concat (Tiles, 'double', 1) ;
    C2 = [ A1.matrix A2.matrix ; A3.matrix A4.matrix ] ;
    assert (isequal (C1.matrix, C2)) ;
end

% convert only some to iso
A1.matrix = spones (A1.matrix) ; A1.iso = 1 ;
A2.iso = 0 ;
A3.iso = 0 ;
A4.iso = 0 ;

for is_csc = 0:1
    A1.is_csc = is_csc ;
    A2.is_csc = is_csc ;
    A3.is_csc = is_csc ;
    A4.is_csc = is_csc ;
    Tiles = cell (2,2) ;
    Tiles {1,1} = A1 ;
    Tiles {1,2} = A2 ;
    Tiles {2,1} = A3 ;
    Tiles {2,2} = A4 ;
    for C_is_csc = 0:1
        C1 = GB_mex_concat (Tiles, 'double', C_is_csc) ;
        C2 = [ A1.matrix A2.matrix ; A3.matrix A4.matrix ] ;
        assert (isequal (C1.matrix, C2)) ;
    end
end

% convert all to iso
A1.matrix = spones (A1.matrix) ; A1.iso = 1 ;
A2.matrix = spones (A1.matrix) ; A2.iso = 1 ;
A3.matrix = spones (A1.matrix) ; A3.iso = 1 ;
A4.matrix = spones (A1.matrix) ; A4.iso = 1 ;

for is_csc = 0:1
    A1.is_csc = is_csc ;
    A2.is_csc = is_csc ;
    A3.is_csc = is_csc ;
    A4.is_csc = is_csc ;
    Tiles = cell (2,2) ;
    Tiles {1,1} = A1 ;
    Tiles {1,2} = A2 ;
    Tiles {2,1} = A3 ;
    Tiles {2,2} = A4 ;
    C1 = GB_mex_concat (Tiles, 'double', 1) ;
    C2 = [ A1.matrix A2.matrix ; A3.matrix A4.matrix ] ;
    assert (isequal (C1.matrix, C2)) ;
end

fprintf ('test196: all tests passed\n') ;