1function gbtest19
2%GBTEST19 test mpower
3
4% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved.
5% SPDX-License-Identifier: GPL-3.0-or-later
6
7rng ('default') ;
8A = rand (4) ;
9G = GrB (A) ;
10maxerr = 0 ;
11
12for k = 0:10
13    C1 = A^k ;
14    C2 = G^k ;
15    err = norm (C1 - C2, 1) ;
16    assert (err < 1e-10) ;
17    maxerr = max (maxerr, err) ;
18    C1 = A.^k ;
19    C2 = G.^k ;
20    err = norm (C1 - C2, 1) ;
21    assert (err < 1e-10) ;
22    maxerr = max (maxerr, err) ;
23end
24
25a = pi ;
26b = 3.7 ;
27c1 = a^b ;
28x = GrB (a) ;
29c2 = x^b ;
30err = abs (c1-c2) ;
31assert (err < 1e-10) ;
32maxerr = max (maxerr, err) ;
33
34for type = { 'single', 'double' }
35    I1 = complex (eye (4, type{1})) ;
36    I2 = GrB (I1) ;
37    C1 = I1^0 ;
38    C2 = I2^0 ;
39    assert (norm (C1 - C2, 1) == 0) ;
40    C1 = A^0 ;
41    C2 = G^0 ;
42    assert (norm (C1 - C2, 1) == 0) ;
43    C1 = A^1 ;
44    C2 = G^1 ;
45    assert (norm (C1 - C2, 1) == 0) ;
46    C1 = I1^1 ;
47    C2 = I2^1 ;
48    assert (norm (C1 - C2, 1) == 0) ;
49end
50
51fprintf ('max error: %g\n', maxerr) ;
52fprintf ('gbtest19: all tests passed\n') ;
53
54