1function gbtest38 2%GBTEST38 test sqrt, eps, ceil, floor, round, fix, real, conj, ... 3% isfinite, isinf, isnan, spfun, eig 4 5% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved. 6% SPDX-License-Identifier: GPL-3.0-or-later 7 8rng ('default') ; 9 10for trial = 1:40 11 12 A = 1e3 * rand (3) ; 13 B = single (A) ; 14 15 G = GrB (A) ; 16 H = GrB (B) ; 17 18 err = norm (sqrt (A) - sqrt (G), 1) ; assert (err < 8 * eps ('double')) ; 19 err = norm (sqrt (B) - sqrt (H), 1) ; assert (err < 8 * eps ('single')) ; 20 21 assert (gbtest_eq (eps (A), eps (G))) ; 22 assert (gbtest_eq (eps (B), eps (H))) ; 23 24 assert (gbtest_eq (ceil (A), ceil (G))) ; 25 assert (gbtest_eq (ceil (B), ceil (H))) ; 26 27 assert (gbtest_eq (floor (A), floor (G))) ; 28 assert (gbtest_eq (floor (B), floor (H))) ; 29 30 assert (gbtest_eq (round (A), round (G))) ; 31 assert (gbtest_eq (round (B), round (H))) ; 32 33 assert (gbtest_eq (fix (A), fix (G))) ; 34 assert (gbtest_eq (fix (B), fix (H))) ; 35 36 assert (gbtest_eq (real (A), real (G))) ; 37 assert (gbtest_eq (real (B), real (H))) ; 38 39 assert (gbtest_eq (conj (A), conj (G))) ; 40 assert (gbtest_eq (conj (B), conj (H))) ; 41 42 C = A ; 43 C (1,1) = inf ; 44 C (2,2) = nan ; 45 G = GrB (C) ; 46 47 assert (gbtest_eq (isfinite (C), isfinite (G))) ; 48 assert (gbtest_eq (isnan (C), isnan (G))) ; 49 50 A = sprand (10, 10, 0.5) ; 51 G = GrB (A) ; 52 assert (gbtest_eq (spfun (@exp, A), double (spfun (@exp, G)))) ; 53 54 A = rand (10) ; 55 G = GrB (A) ; 56 assert (isequal (eig (A), double (eig (G)))) ; 57 58 A = sparse (A+A') ; 59 G = GrB (A) ; 60 err = norm (eig (A) - double (eig (G)), 2) ; 61 assert (err < 1e-12) ; 62 63 A = rand (10) ; 64 B = rand (10) ; 65 G = GrB (A) ; 66 H = GrB (B) ; 67 [V1,D1] = eig (A, B) ; 68 [V2,D2] = eig (G, H) ; 69 assert (isequal (V1, double (V2))) ; 70 assert (isequal (D1, double (D2))) ; 71 72end 73 74fprintf ('gbtest38: all tests passed\n') ; 75