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