@@ -320,17 +320,23 @@ using OffsetArrays
320
320
x = zeros (100 );
321
321
# R = reshape(view(x, 1:100), (10,10));
322
322
# A = zeros(3,4,5);
323
- A = Wrapper (reshape (view (x, 1 : 60 ), (3 ,4 ,5 )))
323
+ A = Wrapper (reshape (view (x, 1 : 60 ), (3 ,4 ,5 )));
324
324
B = A .== 0 ;
325
- D1 = view (A, 1 : 2 : 3 , :, :) # first dimension is discontiguous
326
- D2 = view (A, :, 2 : 2 : 4 , :) # first dimension is contiguous
325
+ D1 = view (A, 1 : 2 : 3 , :, :); # first dimension is discontiguous
326
+ D2 = view (A, :, 2 : 2 : 4 , :); # first dimension is contiguous
327
+ C1 = reinterpret (reshape, Float64, PermutedDimsArray (Array {Complex{Float64}} (undef, 3 ,4 ,5 ), (2 ,1 ,3 )));
328
+ C2 = reinterpret (reshape, Complex{Float64}, PermutedDimsArray (view (A,1 : 2 ,:,:), (1 ,3 ,2 )));
329
+ C3 = reinterpret (reshape, Complex{Float64}, PermutedDimsArray (Wrapper (reshape (view (x, 1 : 24 ), (2 ,3 ,4 ))), (1 ,3 ,2 )));
327
330
328
331
@test @inferred (ArrayInterface. defines_strides (x))
329
332
@test @inferred (ArrayInterface. defines_strides (A))
330
333
@test @inferred (ArrayInterface. defines_strides (D1))
331
334
@test ! @inferred (ArrayInterface. defines_strides (view (A, :, [1 ,2 ],1 )))
332
335
@test @inferred (ArrayInterface. defines_strides (DenseWrapper{Int,2 ,Matrix{Int}}))
333
-
336
+ @test @inferred (ArrayInterface. defines_strides (C1))
337
+ @test @inferred (ArrayInterface. defines_strides (C2))
338
+ @test @inferred (ArrayInterface. defines_strides (C3))
339
+
334
340
@test @inferred (device (A)) === ArrayInterface. CPUPointer ()
335
341
@test @inferred (device (B)) === ArrayInterface. CPUIndex ()
336
342
@test @inferred (device (- 1 : 19 )) === ArrayInterface. CPUIndex ()
@@ -346,7 +352,9 @@ using OffsetArrays
346
352
@test @inferred (device (OffsetArray (@MArray (zeros (2 ,2 ,2 )),8 ,- 2 ,- 5 ))) === ArrayInterface. CPUPointer ()
347
353
@test isnothing (device (" Hello, world!" ))
348
354
@test @inferred (device (DenseWrapper{Int,2 ,Matrix{Int}})) === ArrayInterface. CPUPointer ()
349
-
355
+ @test @inferred (device (C1)) === ArrayInterface. CPUPointer ()
356
+ @test @inferred (device (C2)) === ArrayInterface. CPUPointer ()
357
+ @test @inferred (device (C3)) === ArrayInterface. CPUPointer ()
350
358
#=
351
359
@btime ArrayInterface.contiguous_axis($(reshape(view(zeros(100), 1:60), (3,4,5))))
352
360
0.047 ns (0 allocations: 0 bytes)
@@ -372,7 +380,10 @@ using OffsetArrays
372
380
@test @inferred (contiguous_axis (PermutedDimsArray (DummyZeros (3 ,4 ), (2 , 1 )))) === nothing
373
381
@test @inferred (contiguous_axis (view (DummyZeros (3 ,4 ), 1 , :))) === nothing
374
382
@test @inferred (contiguous_axis (view (DummyZeros (3 ,4 ), 1 , :)' )) === nothing
375
-
383
+ @test @inferred (contiguous_axis (C1)) === StaticInt (1 )
384
+ @test @inferred (contiguous_axis (C2)) === StaticInt (0 )
385
+ @test @inferred (contiguous_axis (C3)) === StaticInt (2 )
386
+
376
387
@test @inferred (ArrayInterface. contiguous_axis_indicator (@SArray (zeros (2 ,2 ,2 )))) == (true ,false ,false )
377
388
@test @inferred (ArrayInterface. contiguous_axis_indicator (A)) == (true ,false ,false )
378
389
@test @inferred (ArrayInterface. contiguous_axis_indicator (B)) == (true ,false ,false )
@@ -386,6 +397,9 @@ using OffsetArrays
386
397
@test @inferred (ArrayInterface. contiguous_axis_indicator (@view (PermutedDimsArray (A,(3 ,1 ,2 ))[:,1 : 2 ,1 ])' )) == (true ,false )
387
398
@test @inferred (ArrayInterface. contiguous_axis_indicator (@view (PermutedDimsArray (A,(3 ,1 ,2 ))[:,1 : 2 ,[1 ,3 ,4 ]]))) == (false ,true ,false )
388
399
@test @inferred (ArrayInterface. contiguous_axis_indicator (DummyZeros (3 ,4 ))) === nothing
400
+ @test @inferred (ArrayInterface. contiguous_axis_indicator (C1)) == (true ,false ,false ,false )
401
+ @test @inferred (ArrayInterface. contiguous_axis_indicator (C2)) == (false ,false )
402
+ @test @inferred (ArrayInterface. contiguous_axis_indicator (C3)) == (false ,true )
389
403
390
404
@test @inferred (contiguous_batch_size (@SArray (zeros (2 ,2 ,2 )))) === ArrayInterface. StaticInt (0 )
391
405
@test @inferred (contiguous_batch_size (A)) === ArrayInterface. StaticInt (0 )
@@ -398,6 +412,9 @@ using OffsetArrays
398
412
@test @inferred (contiguous_batch_size (@view (PermutedDimsArray (A,(3 ,1 ,2 ))[2 : 3 ,2 ,:]))) === ArrayInterface. StaticInt (- 1 )
399
413
@test @inferred (contiguous_batch_size (@view (PermutedDimsArray (A,(3 ,1 ,2 ))[2 : 3 ,2 ,:])' )) === ArrayInterface. StaticInt (- 1 )
400
414
@test @inferred (contiguous_batch_size (@view (PermutedDimsArray (A,(3 ,1 ,2 ))[:,1 : 2 ,1 ])' )) === ArrayInterface. StaticInt (0 )
415
+ @test @inferred (contiguous_batch_size (C1)) === ArrayInterface. StaticInt (0 )
416
+ @test @inferred (contiguous_batch_size (C2)) === ArrayInterface. StaticInt (0 )
417
+ @test @inferred (contiguous_batch_size (C3)) === ArrayInterface. StaticInt (0 )
401
418
402
419
@test @inferred (stride_rank (@SArray (zeros (2 ,2 ,2 )))) == (1 , 2 , 3 )
403
420
@test @inferred (stride_rank (A)) == (1 ,2 ,3 )
@@ -417,6 +434,11 @@ using OffsetArrays
417
434
@test @inferred (stride_rank (DummyZeros (3 ,4 )' )) === nothing
418
435
@test @inferred (stride_rank (PermutedDimsArray (DummyZeros (3 ,4 ), (2 , 1 )))) === nothing
419
436
@test @inferred (stride_rank (view (DummyZeros (3 ,4 ), 1 , :))) === nothing
437
+ @test @inferred (stride_rank (C1)) == (1 ,3 ,2 ,4 )
438
+ @test @inferred (stride_rank (C2)) == (2 ,1 )
439
+ @test @inferred (stride_rank (C3)) == (2 ,1 )
440
+
441
+
420
442
#=
421
443
@btime ArrayInterface.is_column_major($(PermutedDimsArray(A,(3,1,2))))
422
444
0.047 ns (0 allocations: 0 bytes)
@@ -442,6 +464,9 @@ using OffsetArrays
442
464
@test @inferred (ArrayInterface. is_column_major (@view (PermutedDimsArray (A,(3 ,1 ,2 ))[:,1 : 2 ,1 ])' )) === True ()
443
465
@test @inferred (ArrayInterface. is_column_major (@view (PermutedDimsArray (A,(3 ,1 ,2 ))[:,2 ,1 ])' )) === False ()
444
466
@test @inferred (ArrayInterface. is_column_major (2.3 )) === False ()
467
+ @test @inferred (ArrayInterface. is_column_major (C1)) === False ()
468
+ @test @inferred (ArrayInterface. is_column_major (C2)) === False ()
469
+ @test @inferred (ArrayInterface. is_column_major (C3)) === False ()
445
470
446
471
@test @inferred (dense_dims (@SArray (zeros (2 ,2 ,2 )))) == (true ,true ,true )
447
472
@test @inferred (dense_dims (A)) == (true ,true ,true )
@@ -467,6 +492,9 @@ using OffsetArrays
467
492
@test @inferred (dense_dims (PermutedDimsArray (DummyZeros (3 ,4 ), (2 , 1 )))) === nothing
468
493
@test @inferred (dense_dims (view (DummyZeros (3 ,4 ), :, 1 ))) === nothing
469
494
@test @inferred (dense_dims (view (DummyZeros (3 ,4 ), :, 1 )' )) === nothing
495
+ @test @inferred (dense_dims (C1)) == (true ,true ,true ,true )
496
+ @test @inferred (dense_dims (C2)) == (false ,false )
497
+ @test @inferred (dense_dims (C3)) == (true ,true )
470
498
471
499
C = Array {Int8} (undef, 2 ,2 ,2 ,2 );
472
500
doubleperm = PermutedDimsArray (PermutedDimsArray (C,(4 ,2 ,3 ,1 )), (4 ,2 ,1 ,3 ));
0 commit comments