1function gbtest89 2%GBTEST89 test GrB.extract 3% 4% C = GrB.extract (A, desc) 5% C = GrB.extract (A, I, J, desc) 6% C = GrB.extract (C, M, A, desc) 7% C = GrB.extract (C, M, A, I, J, desc) 8% C = GrB.extract (C, accum, A, desc) 9% C = GrB.extract (C, accum, A, I, J, desc) 10% C = GrB.extract (C, M, accum, A, desc) 11% C = GrB.extract (C, M, accum, A, I, J, desc) 12% 13% V = GrB.extract (U, I, desc) 14% V = GrB.extract (V, W, U, I, desc) 15% V = GrB.extract (V, accum, U, I, desc) 16% V = GrB.extract (V, W, accum, U, I, desc) 17 18% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved. 19% SPDX-License-Identifier: GPL-3.0-or-later 20 21rng ('default') 22 23C = GrB.random (4, 3, 0.5) ; 24M = GrB.random (4, 3, 0.5, 'range', logical ([false true])) ; 25accum = '+' ; 26A = GrB.random (9, 9, 0.5) ; 27I = { [1 4 2 5] } ; 28J = { [3 2 7 ] } ; 29desc = struct ; 30 31Aij = GrB.random (4, 3, 0.5) ; 32 33V = GrB.random (4, 1, 0.7) ; 34W = GrB.random (4, 1, 0.7, 'range', logical ([false true])) ; 35U = GrB.random (9, 1, 0.7) ; 36 37c = double (C) ; 38a = double (A) ; 39m = logical (M) ; 40i = I {1} ; 41j = J {1} ; 42 43aij = double (Aij) ; 44 45v = double (V) ; 46w = logical (W) ; 47u = double (U) ; 48 49%---------------------------------------------------------------------- 50% C = GrB.extract (A) 51%---------------------------------------------------------------------- 52 53% 1 matrix: A 54% 0 strings: 55 56C2 = Aij ; 57 58C1 = GrB.extract (Aij) ; assert (isequal (C1, C2)) ; 59C1 = GrB.extract (aij) ; assert (isequal (C1, C2)) ; 60 61%---------------------------------------------------------------------- 62% C = GrB.extract (A, desc) 63%---------------------------------------------------------------------- 64 65% 1 matrix: A 66% 0 strings: 67 68C2 = Aij ; 69 70C1 = GrB.extract (Aij, desc) ; assert (isequal (C1, C2)) ; 71C1 = GrB.extract (aij, desc) ; assert (isequal (C1, C2)) ; 72 73%---------------------------------------------------------------------- 74% C = GrB.extract (A, I, J) 75%---------------------------------------------------------------------- 76 77% 1 matrix: A 78% 2 indices: I, J 79% 0 strings: 80 81C2 = A (i,j) ; 82c2 = a (i,j) ; 83assert (isequal (c2, C2)) ; 84 85C1 = GrB.extract (A, I, J) ; assert (isequal (C1, C2)) ; 86C1 = GrB.extract (I, A, J) ; assert (isequal (C1, C2)) ; 87C1 = GrB.extract (I, J, A) ; assert (isequal (C1, C2)) ; 88 89C1 = GrB.extract (a, I, J) ; assert (isequal (C1, C2)) ; 90C1 = GrB.extract (I, a, J) ; assert (isequal (C1, C2)) ; 91C1 = GrB.extract (I, J, a) ; assert (isequal (C1, C2)) ; 92 93%---------------------------------------------------------------------- 94% C = GrB.extract (A, I, J, desc) 95%---------------------------------------------------------------------- 96 97% 1 matrix: A 98% 2 indices: I, J 99% 0 strings: 100 101C2 = A (i,j) ; 102c2 = a (i,j) ; 103assert (isequal (c2, C2)) ; 104 105C1 = GrB.extract (A, I, J, desc) ; assert (isequal (C1, C2)) ; 106C1 = GrB.extract (I, A, J, desc) ; assert (isequal (C1, C2)) ; 107C1 = GrB.extract (I, J, A, desc) ; assert (isequal (C1, C2)) ; 108 109C1 = GrB.extract (a, I, J, desc) ; assert (isequal (C1, C2)) ; 110C1 = GrB.extract (I, a, J, desc) ; assert (isequal (C1, C2)) ; 111C1 = GrB.extract (I, J, a, desc) ; assert (isequal (C1, C2)) ; 112 113%---------------------------------------------------------------------- 114% C = GrB.extract (C, M, A, desc) 115%---------------------------------------------------------------------- 116 117% 3 matrices: C, M, A 118% 0 indices: 119% 0 strings: 120 121C2 = C ; 122C2 (M) = Aij (M) ; 123 124c2 = c ; 125c2 (m) = aij (m) ; 126assert (isequal (c2, C2)) ; 127 128C1 = GrB.extract (C, M, Aij, desc) ; assert (isequal (C1, C2)) ; 129 130%---------------------------------------------------------------------- 131% C = GrB.extract (C, M, A, I, J, desc) 132%---------------------------------------------------------------------- 133 134% 3 matrices: C, M, A 135% 2 indices: I, J 136% 0 strings: 137 138% C<M> = A (I,J) 139 140T = A (I,J) ; 141C2 = C ; 142C2 (M) = T (M) ; 143 144t = a (i,j) ; 145c2 = c ; 146c2 (m) = t (m) ; 147assert (isequal (c2, C2)) ; 148 149C1 = GrB.extract (C, M, A, I, J, desc) ; assert (isequal (C1, C2)) ; 150C1 = GrB.extract (C, M, I, A, J, desc) ; assert (isequal (C1, C2)) ; 151C1 = GrB.extract (C, M, I, J, A, desc) ; assert (isequal (C1, C2)) ; 152 153C1 = GrB.extract (C, I, J, M, A, desc) ; assert (isequal (C1, C2)) ; 154C1 = GrB.extract (C, I, M, J, A, desc) ; assert (isequal (C1, C2)) ; 155C1 = GrB.extract (C, I, M, A, J, desc) ; assert (isequal (C1, C2)) ; 156 157%---------------------------------------------------------------------- 158% C = GrB.extract (C, accum, A, desc) 159%---------------------------------------------------------------------- 160 161% 2 matrices: C, A 162% 0 indices: 163% 1 string: accum 164 165% C += A 166 167C2 = C + Aij ; 168 169c2 = c + aij ; 170assert (isequal (c2, C2)) ; 171 172C1 = GrB.extract (C, accum, Aij, desc) ; assert (isequal (C1, C2)) ; 173C1 = GrB.extract (C, Aij, accum, desc) ; assert (isequal (C1, C2)) ; 174C1 = GrB.extract (accum, C, Aij, desc) ; assert (isequal (C1, C2)) ; 175 176%---------------------------------------------------------------------- 177% C = GrB.extract (C, accum, A, I, J, desc) 178%---------------------------------------------------------------------- 179 180% 2 matrices: C, A 181% 2 indices: I, J 182% 1 string: accum 183 184% C += A (i,j) 185 186C2 = C + A (i,j) ; 187 188c2 = c + a (i,j) ; 189assert (isequal (c2, C2)) ; 190 191C1 = GrB.extract (C, accum, A, I, J, desc) ; assert (isequal (C1, C2)) ; 192C1 = GrB.extract (C, accum, I, A, J, desc) ; assert (isequal (C1, C2)) ; 193C1 = GrB.extract (C, accum, I, J, A, desc) ; assert (isequal (C1, C2)) ; 194C1 = GrB.extract (C, A, accum, I, J, desc) ; assert (isequal (C1, C2)) ; 195C1 = GrB.extract (C, A, I, accum, J, desc) ; assert (isequal (C1, C2)) ; 196C1 = GrB.extract (C, A, I, J, accum, desc) ; assert (isequal (C1, C2)) ; 197C1 = GrB.extract (C, I, J, accum, A, desc) ; assert (isequal (C1, C2)) ; 198C1 = GrB.extract (C, I, J, A, accum, desc) ; assert (isequal (C1, C2)) ; 199C1 = GrB.extract (C, I, accum, J, A, desc) ; assert (isequal (C1, C2)) ; 200C1 = GrB.extract (C, I, accum, A, J, desc) ; assert (isequal (C1, C2)) ; 201C1 = GrB.extract (C, I, A, accum, J, desc) ; assert (isequal (C1, C2)) ; 202C1 = GrB.extract (C, I, A, J, accum, desc) ; assert (isequal (C1, C2)) ; 203C1 = GrB.extract (accum, C, A, I, J, desc) ; assert (isequal (C1, C2)) ; 204C1 = GrB.extract (accum, C, I, A, J, desc) ; assert (isequal (C1, C2)) ; 205C1 = GrB.extract (accum, C, I, J, A, desc) ; assert (isequal (C1, C2)) ; 206C1 = GrB.extract (accum, I, C, A, J, desc) ; assert (isequal (C1, C2)) ; 207C1 = GrB.extract (accum, I, C, J, A, desc) ; assert (isequal (C1, C2)) ; 208C1 = GrB.extract (accum, I, J, C, A, desc) ; assert (isequal (C1, C2)) ; 209C1 = GrB.extract (I, J, accum, C, A, desc) ; assert (isequal (C1, C2)) ; 210C1 = GrB.extract (I, J, accum, C, A, desc) ; assert (isequal (C1, C2)) ; 211C1 = GrB.extract (I, J, accum, C, A, desc) ; assert (isequal (C1, C2)) ; 212 213C1 = GrB.extract (c, accum, a, I, J, desc) ; assert (isequal (C1, C2)) ; 214C1 = GrB.extract (c, accum, I, a, J, desc) ; assert (isequal (C1, C2)) ; 215C1 = GrB.extract (c, accum, I, J, a, desc) ; assert (isequal (C1, C2)) ; 216C1 = GrB.extract (c, a, accum, I, J, desc) ; assert (isequal (C1, C2)) ; 217C1 = GrB.extract (c, a, I, accum, J, desc) ; assert (isequal (C1, C2)) ; 218C1 = GrB.extract (c, a, I, J, accum, desc) ; assert (isequal (C1, C2)) ; 219C1 = GrB.extract (c, I, J, accum, a, desc) ; assert (isequal (C1, C2)) ; 220C1 = GrB.extract (c, I, J, a, accum, desc) ; assert (isequal (C1, C2)) ; 221C1 = GrB.extract (c, I, accum, J, a, desc) ; assert (isequal (C1, C2)) ; 222C1 = GrB.extract (c, I, accum, a, J, desc) ; assert (isequal (C1, C2)) ; 223C1 = GrB.extract (c, I, a, accum, J, desc) ; assert (isequal (C1, C2)) ; 224C1 = GrB.extract (c, I, a, J, accum, desc) ; assert (isequal (C1, C2)) ; 225C1 = GrB.extract (accum, c, a, I, J, desc) ; assert (isequal (C1, C2)) ; 226C1 = GrB.extract (accum, c, I, a, J, desc) ; assert (isequal (C1, C2)) ; 227C1 = GrB.extract (accum, c, I, J, a, desc) ; assert (isequal (C1, C2)) ; 228C1 = GrB.extract (accum, I, c, a, J, desc) ; assert (isequal (C1, C2)) ; 229C1 = GrB.extract (accum, I, c, J, a, desc) ; assert (isequal (C1, C2)) ; 230C1 = GrB.extract (accum, I, J, c, a, desc) ; assert (isequal (C1, C2)) ; 231C1 = GrB.extract (I, J, accum, c, a, desc) ; assert (isequal (C1, C2)) ; 232C1 = GrB.extract (I, J, accum, c, a, desc) ; assert (isequal (C1, C2)) ; 233C1 = GrB.extract (I, J, accum, c, a, desc) ; assert (isequal (C1, C2)) ; 234 235%---------------------------------------------------------------------- 236% C = GrB.extract (C, M, accum, A, desc) 237%---------------------------------------------------------------------- 238 239% 3 matrices: C, M, A 240% 0 indices: 241% 1 string: accum 242 243% C<M> += A 244 245T = C + Aij ; 246C2 = C ; 247C2 (M) = T (M) ; 248 249t = c + aij ; 250c2 = c ; 251c2 (m) = t (m) ; 252assert (isequal (c2, C2)) ; 253 254C1 = GrB.extract (C, M, accum, Aij, desc) ; assert (isequal (C1, C2)) ; 255C1 = GrB.extract (accum, C, M, Aij, desc) ; assert (isequal (C1, C2)) ; 256C1 = GrB.extract (C, accum, M, Aij, desc) ; assert (isequal (C1, C2)) ; 257C1 = GrB.extract (C, M, Aij, accum, desc) ; assert (isequal (C1, C2)) ; 258 259C1 = GrB.extract (c, m, accum, aij, desc) ; assert (isequal (C1, C2)) ; 260C1 = GrB.extract (accum, c, m, aij, desc) ; assert (isequal (C1, C2)) ; 261C1 = GrB.extract (c, accum, m, aij, desc) ; assert (isequal (C1, C2)) ; 262C1 = GrB.extract (c, m, aij, accum, desc) ; assert (isequal (C1, C2)) ; 263 264%---------------------------------------------------------------------- 265% C = GrB.extract (C, M, accum, A, I, J, desc) 266%---------------------------------------------------------------------- 267 268% 3 matrices: C, M, A 269% 2 indices: I, J 270% 1 string: accum 271 272% C<M> += A (I,J) 273 274T = C + A (i,j) ; 275C2 = C ; 276C2 (M) = T (M) ; 277 278t = c + a (i,j) ; 279c2 = c ; 280c2 (m) = t (m) ; 281assert (isequal (c2, C2)) ; 282 283C1 = GrB.extract (C, M, accum, A, I, J, desc) ; assert (isequal (C1, C2)) ; 284C1 = GrB.extract (C, M, accum, I, A, J, desc) ; assert (isequal (C1, C2)) ; 285C1 = GrB.extract (C, M, accum, I, J, A, desc) ; assert (isequal (C1, C2)) ; 286C1 = GrB.extract (C, M, A, accum, I, J, desc) ; assert (isequal (C1, C2)) ; 287C1 = GrB.extract (C, M, A, I, accum, J, desc) ; assert (isequal (C1, C2)) ; 288C1 = GrB.extract (C, M, A, I, J, accum, desc) ; assert (isequal (C1, C2)) ; 289C1 = GrB.extract (C, M, I, J, A, accum, desc) ; assert (isequal (C1, C2)) ; 290C1 = GrB.extract (C, M, I, J, accum, A, desc) ; assert (isequal (C1, C2)) ; 291C1 = GrB.extract (C, M, I, A, J, accum, desc) ; assert (isequal (C1, C2)) ; 292C1 = GrB.extract (C, M, I, A, accum, J, desc) ; assert (isequal (C1, C2)) ; 293C1 = GrB.extract (C, M, I, accum, A, J, desc) ; assert (isequal (C1, C2)) ; 294C1 = GrB.extract (C, M, I, accum, J, A, desc) ; assert (isequal (C1, C2)) ; 295C1 = GrB.extract (C, I, J, M, A, accum, desc) ; assert (isequal (C1, C2)) ; 296C1 = GrB.extract (C, I, J, M, accum, A, desc) ; assert (isequal (C1, C2)) ; 297C1 = GrB.extract (C, I, J, accum, M, A, desc) ; assert (isequal (C1, C2)) ; 298C1 = GrB.extract (C, I, M, J, A, accum, desc) ; assert (isequal (C1, C2)) ; 299C1 = GrB.extract (C, I, M, J, accum, A, desc) ; assert (isequal (C1, C2)) ; 300C1 = GrB.extract (C, I, M, A, J, accum, desc) ; assert (isequal (C1, C2)) ; 301C1 = GrB.extract (C, I, M, A, accum, J, desc) ; assert (isequal (C1, C2)) ; 302C1 = GrB.extract (C, I, M, accum, J, A, desc) ; assert (isequal (C1, C2)) ; 303C1 = GrB.extract (C, I, M, accum, A, J, desc) ; assert (isequal (C1, C2)) ; 304C1 = GrB.extract (C, I, accum, M, A, J, desc) ; assert (isequal (C1, C2)) ; 305C1 = GrB.extract (C, I, accum, M, J, A, desc) ; assert (isequal (C1, C2)) ; 306C1 = GrB.extract (C, I, accum, J, M, A, desc) ; assert (isequal (C1, C2)) ; 307C1 = GrB.extract (C, accum, M, A, I, J, desc) ; assert (isequal (C1, C2)) ; 308C1 = GrB.extract (C, accum, M, I, A, J, desc) ; assert (isequal (C1, C2)) ; 309C1 = GrB.extract (C, accum, M, I, J, A, desc) ; assert (isequal (C1, C2)) ; 310C1 = GrB.extract (C, accum, I, M, A, J, desc) ; assert (isequal (C1, C2)) ; 311C1 = GrB.extract (C, accum, I, M, J, A, desc) ; assert (isequal (C1, C2)) ; 312C1 = GrB.extract (C, accum, I, J, M, A, desc) ; assert (isequal (C1, C2)) ; 313 314C1 = GrB.extract (c, m, accum, a, I, J, desc) ; assert (isequal (C1, C2)) ; 315C1 = GrB.extract (c, m, accum, I, a, J, desc) ; assert (isequal (C1, C2)) ; 316C1 = GrB.extract (c, m, accum, I, J, a, desc) ; assert (isequal (C1, C2)) ; 317C1 = GrB.extract (c, m, a, accum, I, J, desc) ; assert (isequal (C1, C2)) ; 318C1 = GrB.extract (c, m, a, I, accum, J, desc) ; assert (isequal (C1, C2)) ; 319C1 = GrB.extract (c, m, a, I, J, accum, desc) ; assert (isequal (C1, C2)) ; 320C1 = GrB.extract (c, m, I, J, a, accum, desc) ; assert (isequal (C1, C2)) ; 321C1 = GrB.extract (c, m, I, J, accum, a, desc) ; assert (isequal (C1, C2)) ; 322C1 = GrB.extract (c, m, I, a, J, accum, desc) ; assert (isequal (C1, C2)) ; 323C1 = GrB.extract (c, m, I, a, accum, J, desc) ; assert (isequal (C1, C2)) ; 324C1 = GrB.extract (c, m, I, accum, a, J, desc) ; assert (isequal (C1, C2)) ; 325C1 = GrB.extract (c, m, I, accum, J, a, desc) ; assert (isequal (C1, C2)) ; 326C1 = GrB.extract (c, I, J, m, a, accum, desc) ; assert (isequal (C1, C2)) ; 327C1 = GrB.extract (c, I, J, m, accum, a, desc) ; assert (isequal (C1, C2)) ; 328C1 = GrB.extract (c, I, J, accum, m, a, desc) ; assert (isequal (C1, C2)) ; 329C1 = GrB.extract (c, I, m, J, a, accum, desc) ; assert (isequal (C1, C2)) ; 330C1 = GrB.extract (c, I, m, J, accum, a, desc) ; assert (isequal (C1, C2)) ; 331C1 = GrB.extract (c, I, m, a, J, accum, desc) ; assert (isequal (C1, C2)) ; 332C1 = GrB.extract (c, I, m, a, accum, J, desc) ; assert (isequal (C1, C2)) ; 333C1 = GrB.extract (c, I, m, accum, J, a, desc) ; assert (isequal (C1, C2)) ; 334C1 = GrB.extract (c, I, m, accum, a, J, desc) ; assert (isequal (C1, C2)) ; 335C1 = GrB.extract (c, I, accum, m, a, J, desc) ; assert (isequal (C1, C2)) ; 336C1 = GrB.extract (c, I, accum, m, J, a, desc) ; assert (isequal (C1, C2)) ; 337C1 = GrB.extract (c, I, accum, J, m, a, desc) ; assert (isequal (C1, C2)) ; 338C1 = GrB.extract (c, accum, m, a, I, J, desc) ; assert (isequal (C1, C2)) ; 339C1 = GrB.extract (c, accum, m, I, a, J, desc) ; assert (isequal (C1, C2)) ; 340C1 = GrB.extract (c, accum, m, I, J, a, desc) ; assert (isequal (C1, C2)) ; 341C1 = GrB.extract (c, accum, I, m, a, J, desc) ; assert (isequal (C1, C2)) ; 342C1 = GrB.extract (c, accum, I, m, J, a, desc) ; assert (isequal (C1, C2)) ; 343C1 = GrB.extract (c, accum, I, J, m, a, desc) ; assert (isequal (C1, C2)) ; 344 345%---------------------------------------------------------------------- 346% V = GrB.extract (U, I, desc) 347%---------------------------------------------------------------------- 348 349% 1 vector: V 350% 1 index: I 351% 0 strings: 352 353% V = U(I) 354 355V2 = U (i) ; 356 357v2 = u (i) ; 358assert (isequal (v2, V2)) ; 359 360V1 = GrB.extract (U, I, desc) ; assert (isequal (V1, V2)) ; 361V1 = GrB.extract (I, U, desc) ; assert (isequal (V1, V2)) ; 362 363V1 = GrB.extract (u, I, desc) ; assert (isequal (V1, V2)) ; 364V1 = GrB.extract (I, u, desc) ; assert (isequal (V1, V2)) ; 365 366%---------------------------------------------------------------------- 367% V = GrB.extract (V, W, U, I, desc) 368%---------------------------------------------------------------------- 369 370% 3 vectors: V, W, U 371% 1 index: I 372% 0 strings: 373 374% V<W> = U(I) 375 376T = U (i) ; 377V2 = V ; 378V2 (W) = T (W) ; 379 380t = u (i) ; 381v2 = v ; 382v2 (w) = t (w) ; 383assert (isequal (v2, V2)) ; 384 385V1 = GrB.extract (V, W, U, I, desc) ; assert (isequal (V1, V2)) ; 386V1 = GrB.extract (V, W, I, U, desc) ; assert (isequal (V1, V2)) ; 387V1 = GrB.extract (V, I, W, U, desc) ; assert (isequal (V1, V2)) ; 388V1 = GrB.extract (I, V, W, U, desc) ; assert (isequal (V1, V2)) ; 389 390V1 = GrB.extract (v, w, u, I, desc) ; assert (isequal (V1, V2)) ; 391V1 = GrB.extract (v, w, I, u, desc) ; assert (isequal (V1, V2)) ; 392V1 = GrB.extract (v, I, w, u, desc) ; assert (isequal (V1, V2)) ; 393V1 = GrB.extract (I, v, w, u, desc) ; assert (isequal (V1, V2)) ; 394 395%---------------------------------------------------------------------- 396% V = GrB.extract (V, accum, U, I, desc) 397%---------------------------------------------------------------------- 398 399% 2 vectors: V, U 400% 1 index: I 401% 1 string: accum 402 403% V += U(I) 404 405V2 = V + U (i) ; 406 407v2 = v + u (i) ; 408assert (isequal (v2, V2)) ; 409 410V1 = GrB.extract (V, accum, U, I, desc) ; assert (isequal (V1, V2)) ; 411V1 = GrB.extract (V, accum, I, U, desc) ; assert (isequal (V1, V2)) ; 412V1 = GrB.extract (V, U, accum, I, desc) ; assert (isequal (V1, V2)) ; 413V1 = GrB.extract (V, U, I, accum, desc) ; assert (isequal (V1, V2)) ; 414V1 = GrB.extract (V, accum, U, I, desc) ; assert (isequal (V1, V2)) ; 415V1 = GrB.extract (V, accum, I, U, desc) ; assert (isequal (V1, V2)) ; 416 417V1 = GrB.extract (v, accum, u, I, desc) ; assert (isequal (V1, V2)) ; 418V1 = GrB.extract (v, accum, I, u, desc) ; assert (isequal (V1, V2)) ; 419V1 = GrB.extract (v, u, accum, I, desc) ; assert (isequal (V1, V2)) ; 420V1 = GrB.extract (v, u, I, accum, desc) ; assert (isequal (V1, V2)) ; 421V1 = GrB.extract (v, accum, u, I, desc) ; assert (isequal (V1, V2)) ; 422V1 = GrB.extract (v, accum, I, u, desc) ; assert (isequal (V1, V2)) ; 423 424%---------------------------------------------------------------------- 425% V = GrB.extract (V, W, accum, U, I, desc) 426%---------------------------------------------------------------------- 427 428% 3 vectors: V, W, U 429% 1 index: I 430% 1 strings: accum 431 432% V<W> += U(I) 433 434T = V + U (i) ; 435V2 = V ; 436V2 (W) = T (W) ; 437 438t = v + u (i) ; 439v2 = v ; 440v2 (w) = t (w) ; 441assert (isequal (v2, V2)) ; 442 443V1 = GrB.extract (V, W, accum, U, I, desc) ; assert (isequal (V1, V2)) ; 444V1 = GrB.extract (V, W, accum, I, U, desc) ; assert (isequal (V1, V2)) ; 445V1 = GrB.extract (V, W, U, accum, I, desc) ; assert (isequal (V1, V2)) ; 446V1 = GrB.extract (V, W, U, I, accum, desc) ; assert (isequal (V1, V2)) ; 447V1 = GrB.extract (V, W, I, U, accum, desc) ; assert (isequal (V1, V2)) ; 448V1 = GrB.extract (V, W, I, accum, U, desc) ; assert (isequal (V1, V2)) ; 449V1 = GrB.extract (V, I, W, U, accum, desc) ; assert (isequal (V1, V2)) ; 450V1 = GrB.extract (V, I, W, accum, U, desc) ; assert (isequal (V1, V2)) ; 451V1 = GrB.extract (V, I, accum, W, U, desc) ; assert (isequal (V1, V2)) ; 452V1 = GrB.extract (V, accum, I, W, U, desc) ; assert (isequal (V1, V2)) ; 453V1 = GrB.extract (V, accum, W, I, U, desc) ; assert (isequal (V1, V2)) ; 454V1 = GrB.extract (V, accum, W, U, I, desc) ; assert (isequal (V1, V2)) ; 455 456V1 = GrB.extract (v, w, accum, u, I, desc) ; assert (isequal (V1, V2)) ; 457V1 = GrB.extract (v, w, accum, I, u, desc) ; assert (isequal (V1, V2)) ; 458V1 = GrB.extract (v, w, u, accum, I, desc) ; assert (isequal (V1, V2)) ; 459V1 = GrB.extract (v, w, u, I, accum, desc) ; assert (isequal (V1, V2)) ; 460V1 = GrB.extract (v, w, I, u, accum, desc) ; assert (isequal (V1, V2)) ; 461V1 = GrB.extract (v, w, I, accum, u, desc) ; assert (isequal (V1, V2)) ; 462V1 = GrB.extract (v, I, w, u, accum, desc) ; assert (isequal (V1, V2)) ; 463V1 = GrB.extract (v, I, w, accum, u, desc) ; assert (isequal (V1, V2)) ; 464V1 = GrB.extract (v, I, accum, w, u, desc) ; assert (isequal (V1, V2)) ; 465V1 = GrB.extract (v, accum, I, w, u, desc) ; assert (isequal (V1, V2)) ; 466V1 = GrB.extract (v, accum, w, I, u, desc) ; assert (isequal (V1, V2)) ; 467V1 = GrB.extract (v, accum, w, u, I, desc) ; assert (isequal (V1, V2)) ; 468 469fprintf ('gbtest89: all tests passed\n') ; 470 471