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