1function test109
2%TEST109 terminal monoid with user-defined type
3
4% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved.
5% SPDX-License-Identifier: Apache-2.0
6
7fprintf ('\ntest109: terminal monoid with user-defined type\n') ;
8
9for k = [false true]
10    fprintf ('builtin_complex: %d\n', k) ;
11    GB_builtin_complex_set (k) ;
12
13    rng ('default') ;
14
15    A = sparse (rand (4) + 1i * rand (4)) ;
16
17    [i j x] = find (A) ;
18    s = prod (prod (x)) ;
19    A
20    t = GB_mex_reduce_complex (A) ;
21    err = norm (s-t) ;
22    assert (err < 1e-12)
23
24    A (3,1) = 0 ;
25
26    [i j x] = find (A) ;
27    s = prod (prod (x)) ;
28    t = GB_mex_reduce_complex (A) ;
29    err = norm (s-t) ;
30    assert (err < 1e-12)
31
32    t = GB_mex_reduce_complex (A, 4) ;
33    assert (t == 0)
34end
35
36fprintf ('\ntest109: all tests passed\n') ;
37