Skip to content

Commit a6763b0

Browse files
committed
feat: add float16 dtype support to ndarray/slice
1 parent 51a1812 commit a6763b0

5 files changed

Lines changed: 166 additions & 1 deletion

File tree

‎lib/node_modules/@stdlib/ndarray/slice/benchmark/benchmark.call_signatures.js‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ bench( format( '%s::2d,base,multislice', pkg ), function benchmark( b ) {
4040
values = [
4141
baseEmpty( 'float64', [ 2, 2 ], 'row-major' ),
4242
baseEmpty( 'float32', [ 2, 2 ], 'row-major' ),
43+
baseEmpty( 'float16', [ 2, 2 ], 'row-major' ),
4344
baseEmpty( 'int32', [ 2, 2 ], 'row-major' ),
4445
baseEmpty( 'complex128', [ 2, 2 ], 'row-major' ),
4546
baseEmpty( 'generic', [ 2, 2 ], 'row-major' )
@@ -69,6 +70,7 @@ bench( format( '%s::2d,base,separate_arguments', pkg ), function benchmark( b )
6970
values = [
7071
baseEmpty( 'float64', [ 2, 2 ], 'row-major' ),
7172
baseEmpty( 'float32', [ 2, 2 ], 'row-major' ),
73+
baseEmpty( 'float16', [ 2, 2 ], 'row-major' ),
7274
baseEmpty( 'int32', [ 2, 2 ], 'row-major' ),
7375
baseEmpty( 'complex128', [ 2, 2 ], 'row-major' ),
7476
baseEmpty( 'generic', [ 2, 2 ], 'row-major' )
@@ -97,6 +99,7 @@ bench( format( '%s::2d,base,array', pkg ), function benchmark( b ) {
9799
values = [
98100
baseEmpty( 'float64', [ 2, 2 ], 'row-major' ),
99101
baseEmpty( 'float32', [ 2, 2 ], 'row-major' ),
102+
baseEmpty( 'float16', [ 2, 2 ], 'row-major' ),
100103
baseEmpty( 'int32', [ 2, 2 ], 'row-major' ),
101104
baseEmpty( 'complex128', [ 2, 2 ], 'row-major' ),
102105
baseEmpty( 'generic', [ 2, 2 ], 'row-major' )

‎lib/node_modules/@stdlib/ndarray/slice/benchmark/benchmark.js‎

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ bench( format( '%s::0d,base', pkg ), function benchmark( b ) {
4242
values = [
4343
baseEmpty( 'float64', [], 'row-major' ),
4444
baseEmpty( 'float32', [], 'row-major' ),
45+
baseEmpty( 'float16', [], 'row-major' ),
4546
baseEmpty( 'int32', [], 'row-major' ),
4647
baseEmpty( 'complex128', [], 'row-major' ),
4748
baseEmpty( 'generic', [], 'row-major' )
@@ -74,6 +75,7 @@ bench( format( '%s::0d,non-base', pkg ), function benchmark( b ) {
7475
values = [
7576
empty( [], { 'dtype': 'float64' } ),
7677
empty( [], { 'dtype': 'float32' } ),
78+
empty( [], { 'dtype': 'float16' } ),
7779
empty( [], { 'dtype': 'int32' } ),
7880
empty( [], { 'dtype': 'complex128' } ),
7981
empty( [], { 'dtype': 'generic' } )
@@ -107,6 +109,7 @@ bench( format( '%s::1d,base', pkg ), function benchmark( b ) {
107109
values = [
108110
baseEmpty( 'float64', [ 2 ], 'row-major' ),
109111
baseEmpty( 'float32', [ 2 ], 'row-major' ),
112+
baseEmpty( 'float16', [ 2 ], 'row-major' ),
110113
baseEmpty( 'int32', [ 2 ], 'row-major' ),
111114
baseEmpty( 'complex128', [ 2 ], 'row-major' ),
112115
baseEmpty( 'generic', [ 2 ], 'row-major' )
@@ -139,6 +142,7 @@ bench( format( '%s::1d,non-base', pkg ), function benchmark( b ) {
139142
values = [
140143
empty( [ 2 ], { 'dtype': 'float64' } ),
141144
empty( [ 2 ], { 'dtype': 'float32' } ),
145+
empty( [ 2 ], { 'dtype': 'float16' } ),
142146
empty( [ 2 ], { 'dtype': 'int32' } ),
143147
empty( [ 2 ], { 'dtype': 'complex128' } ),
144148
empty( [ 2 ], { 'dtype': 'generic' } )
@@ -172,6 +176,7 @@ bench( format( '%s::1d,base,reduced', pkg ), function benchmark( b ) {
172176
values = [
173177
baseEmpty( 'float64', [ 2 ], 'row-major' ),
174178
baseEmpty( 'float32', [ 2 ], 'row-major' ),
179+
baseEmpty( 'float16', [ 2 ], 'row-major' ),
175180
baseEmpty( 'int32', [ 2 ], 'row-major' ),
176181
baseEmpty( 'complex128', [ 2 ], 'row-major' ),
177182
baseEmpty( 'generic', [ 2 ], 'row-major' )
@@ -204,6 +209,7 @@ bench( format( '%s::1d,non-base,reduced', pkg ), function benchmark( b ) {
204209
values = [
205210
empty( [ 2 ], { 'dtype': 'float64' } ),
206211
empty( [ 2 ], { 'dtype': 'float32' } ),
212+
empty( [ 2 ], { 'dtype': 'float16' } ),
207213
empty( [ 2 ], { 'dtype': 'int32' } ),
208214
empty( [ 2 ], { 'dtype': 'complex128' } ),
209215
empty( [ 2 ], { 'dtype': 'generic' } )
@@ -238,6 +244,7 @@ bench( format( '%s::1d,base,out-of-bounds', pkg ), function benchmark( b ) {
238244
values = [
239245
baseEmpty( 'float64', [ 2 ], 'row-major' ),
240246
baseEmpty( 'float32', [ 2 ], 'row-major' ),
247+
baseEmpty( 'float16', [ 2 ], 'row-major' ),
241248
baseEmpty( 'int32', [ 2 ], 'row-major' ),
242249
baseEmpty( 'complex128', [ 2 ], 'row-major' ),
243250
baseEmpty( 'generic', [ 2 ], 'row-major' )
@@ -274,6 +281,7 @@ bench( format( '%s::1d,non-base,out-of-bounds', pkg ), function benchmark( b ) {
274281
values = [
275282
empty( [ 2 ], { 'dtype': 'float64' } ),
276283
empty( [ 2 ], { 'dtype': 'float32' } ),
284+
empty( [ 2 ], { 'dtype': 'float16' } ),
277285
empty( [ 2 ], { 'dtype': 'int32' } ),
278286
empty( [ 2 ], { 'dtype': 'complex128' } ),
279287
empty( [ 2 ], { 'dtype': 'generic' } )
@@ -310,6 +318,7 @@ bench( format( '%s::2d,base', pkg ), function benchmark( b ) {
310318
values = [
311319
baseEmpty( 'float64', [ 2, 2 ], 'row-major' ),
312320
baseEmpty( 'float32', [ 2, 2 ], 'row-major' ),
321+
baseEmpty( 'float16', [ 2, 2 ], 'row-major' ),
313322
baseEmpty( 'int32', [ 2, 2 ], 'row-major' ),
314323
baseEmpty( 'complex128', [ 2, 2 ], 'row-major' ),
315324
baseEmpty( 'generic', [ 2, 2 ], 'row-major' )
@@ -342,6 +351,7 @@ bench( format( '%s::2d,non-base', pkg ), function benchmark( b ) {
342351
values = [
343352
empty( [ 2, 2 ], { 'dtype': 'float64' } ),
344353
empty( [ 2, 2 ], { 'dtype': 'float32' } ),
354+
empty( [ 2, 2 ], { 'dtype': 'float16' } ),
345355
empty( [ 2, 2 ], { 'dtype': 'int32' } ),
346356
empty( [ 2, 2 ], { 'dtype': 'complex128' } ),
347357
empty( [ 2, 2 ], { 'dtype': 'generic' } )
@@ -375,6 +385,7 @@ bench( format( '%s::2d,base,reduced', pkg ), function benchmark( b ) {
375385
values = [
376386
baseEmpty( 'float64', [ 2, 2 ], 'row-major' ),
377387
baseEmpty( 'float32', [ 2, 2 ], 'row-major' ),
388+
baseEmpty( 'float16', [ 2, 2 ], 'row-major' ),
378389
baseEmpty( 'int32', [ 2, 2 ], 'row-major' ),
379390
baseEmpty( 'complex128', [ 2, 2 ], 'row-major' ),
380391
baseEmpty( 'generic', [ 2, 2 ], 'row-major' )
@@ -407,6 +418,7 @@ bench( format( '%s::2d,non-base,reduced', pkg ), function benchmark( b ) {
407418
values = [
408419
empty( [ 2, 2 ], { 'dtype': 'float64' } ),
409420
empty( [ 2, 2 ], { 'dtype': 'float32' } ),
421+
empty( [ 2, 2 ], { 'dtype': 'float16' } ),
410422
empty( [ 2, 2 ], { 'dtype': 'int32' } ),
411423
empty( [ 2, 2 ], { 'dtype': 'complex128' } ),
412424
empty( [ 2, 2 ], { 'dtype': 'generic' } )
@@ -441,6 +453,7 @@ bench( format( '%s::2d,base,out-of-bounds', pkg ), function benchmark( b ) {
441453
values = [
442454
baseEmpty( 'float64', [ 2, 2 ], 'row-major' ),
443455
baseEmpty( 'float32', [ 2, 2 ], 'row-major' ),
456+
baseEmpty( 'float16', [ 2, 2 ], 'row-major' ),
444457
baseEmpty( 'int32', [ 2, 2 ], 'row-major' ),
445458
baseEmpty( 'complex128', [ 2, 2 ], 'row-major' ),
446459
baseEmpty( 'generic', [ 2, 2 ], 'row-major' )
@@ -477,6 +490,7 @@ bench( format( '%s::2d,non-base,out-of-bounds', pkg ), function benchmark( b ) {
477490
values = [
478491
empty( [ 2, 2 ], { 'dtype': 'float64' } ),
479492
empty( [ 2, 2 ], { 'dtype': 'float32' } ),
493+
empty( [ 2, 2 ], { 'dtype': 'float16' } ),
480494
empty( [ 2, 2 ], { 'dtype': 'int32' } ),
481495
empty( [ 2, 2 ], { 'dtype': 'complex128' } ),
482496
empty( [ 2, 2 ], { 'dtype': 'generic' } )
@@ -513,6 +527,7 @@ bench( format( '%s::3d,base', pkg ), function benchmark( b ) {
513527
values = [
514528
baseEmpty( 'float64', [ 2, 2, 2 ], 'row-major' ),
515529
baseEmpty( 'float32', [ 2, 2, 2 ], 'row-major' ),
530+
baseEmpty( 'float16', [ 2, 2, 2 ], 'row-major' ),
516531
baseEmpty( 'int32', [ 2, 2, 2 ], 'row-major' ),
517532
baseEmpty( 'complex128', [ 2, 2, 2 ], 'row-major' ),
518533
baseEmpty( 'generic', [ 2, 2, 2 ], 'row-major' )
@@ -545,6 +560,7 @@ bench( format( '%s::3d,non-base', pkg ), function benchmark( b ) {
545560
values = [
546561
empty( [ 2, 2, 2 ], { 'dtype': 'float64' } ),
547562
empty( [ 2, 2, 2 ], { 'dtype': 'float32' } ),
563+
empty( [ 2, 2, 2 ], { 'dtype': 'float16' } ),
548564
empty( [ 2, 2, 2 ], { 'dtype': 'int32' } ),
549565
empty( [ 2, 2, 2 ], { 'dtype': 'complex128' } ),
550566
empty( [ 2, 2, 2 ], { 'dtype': 'generic' } )
@@ -578,6 +594,7 @@ bench( format( '%s::3d,base,reduced', pkg ), function benchmark( b ) {
578594
values = [
579595
baseEmpty( 'float64', [ 2, 2, 2 ], 'row-major' ),
580596
baseEmpty( 'float32', [ 2, 2, 2 ], 'row-major' ),
597+
baseEmpty( 'float16', [ 2, 2, 2 ], 'row-major' ),
581598
baseEmpty( 'int32', [ 2, 2, 2 ], 'row-major' ),
582599
baseEmpty( 'complex128', [ 2, 2, 2 ], 'row-major' ),
583600
baseEmpty( 'generic', [ 2, 2, 2 ], 'row-major' )
@@ -610,6 +627,7 @@ bench( format( '%s::3d,non-base,reduced', pkg ), function benchmark( b ) {
610627
values = [
611628
empty( [ 2, 2, 2 ], { 'dtype': 'float64' } ),
612629
empty( [ 2, 2, 2 ], { 'dtype': 'float32' } ),
630+
empty( [ 2, 2, 2 ], { 'dtype': 'float16' } ),
613631
empty( [ 2, 2, 2 ], { 'dtype': 'int32' } ),
614632
empty( [ 2, 2, 2 ], { 'dtype': 'complex128' } ),
615633
empty( [ 2, 2, 2 ], { 'dtype': 'generic' } )
@@ -644,6 +662,7 @@ bench( format( '%s::3d,base,out-of-bounds', pkg ), function benchmark( b ) {
644662
values = [
645663
baseEmpty( 'float64', [ 2, 2, 2 ], 'row-major' ),
646664
baseEmpty( 'float32', [ 2, 2, 2 ], 'row-major' ),
665+
baseEmpty( 'float16', [ 2, 2, 2 ], 'row-major' ),
647666
baseEmpty( 'int32', [ 2, 2, 2 ], 'row-major' ),
648667
baseEmpty( 'complex128', [ 2, 2, 2 ], 'row-major' ),
649668
baseEmpty( 'generic', [ 2, 2, 2 ], 'row-major' )
@@ -680,6 +699,7 @@ bench( format( '%s::3d,non-base,out-of-bounds', pkg ), function benchmark( b ) {
680699
values = [
681700
empty( [ 2, 2, 2 ], { 'dtype': 'float64' } ),
682701
empty( [ 2, 2, 2 ], { 'dtype': 'float32' } ),
702+
empty( [ 2, 2, 2 ], { 'dtype': 'float16' } ),
683703
empty( [ 2, 2, 2 ], { 'dtype': 'int32' } ),
684704
empty( [ 2, 2, 2 ], { 'dtype': 'complex128' } ),
685705
empty( [ 2, 2, 2 ], { 'dtype': 'generic' } )
@@ -716,6 +736,7 @@ bench( format( '%s::4d,base', pkg ), function benchmark( b ) {
716736
values = [
717737
baseEmpty( 'float64', [ 2, 2, 2, 2 ], 'row-major' ),
718738
baseEmpty( 'float32', [ 2, 2, 2, 2 ], 'row-major' ),
739+
baseEmpty( 'float16', [ 2, 2, 2, 2 ], 'row-major' ),
719740
baseEmpty( 'int32', [ 2, 2, 2, 2 ], 'row-major' ),
720741
baseEmpty( 'complex128', [ 2, 2, 2, 2 ], 'row-major' ),
721742
baseEmpty( 'generic', [ 2, 2, 2, 2 ], 'row-major' )
@@ -748,6 +769,7 @@ bench( format( '%s::4d,non-base', pkg ), function benchmark( b ) {
748769
values = [
749770
empty( [ 2, 2, 2, 2 ], { 'dtype': 'float64' } ),
750771
empty( [ 2, 2, 2, 2 ], { 'dtype': 'float32' } ),
772+
empty( [ 2, 2, 2, 2 ], { 'dtype': 'float16' } ),
751773
empty( [ 2, 2, 2, 2 ], { 'dtype': 'int32' } ),
752774
empty( [ 2, 2, 2, 2 ], { 'dtype': 'complex128' } ),
753775
empty( [ 2, 2, 2, 2 ], { 'dtype': 'generic' } )
@@ -781,6 +803,7 @@ bench( format( '%s::4d,base,reduced', pkg ), function benchmark( b ) {
781803
values = [
782804
baseEmpty( 'float64', [ 2, 2, 2, 2 ], 'row-major' ),
783805
baseEmpty( 'float32', [ 2, 2, 2, 2 ], 'row-major' ),
806+
baseEmpty( 'float16', [ 2, 2, 2, 2 ], 'row-major' ),
784807
baseEmpty( 'int32', [ 2, 2, 2, 2 ], 'row-major' ),
785808
baseEmpty( 'complex128', [ 2, 2, 2, 2 ], 'row-major' ),
786809
baseEmpty( 'generic', [ 2, 2, 2, 2 ], 'row-major' )
@@ -813,6 +836,7 @@ bench( format( '%s::4d,non-base,reduced', pkg ), function benchmark( b ) {
813836
values = [
814837
empty( [ 2, 2, 2, 2 ], { 'dtype': 'float64' } ),
815838
empty( [ 2, 2, 2, 2 ], { 'dtype': 'float32' } ),
839+
empty( [ 2, 2, 2, 2 ], { 'dtype': 'float16' } ),
816840
empty( [ 2, 2, 2, 2 ], { 'dtype': 'int32' } ),
817841
empty( [ 2, 2, 2, 2 ], { 'dtype': 'complex128' } ),
818842
empty( [ 2, 2, 2, 2 ], { 'dtype': 'generic' } )
@@ -847,6 +871,7 @@ bench( format( '%s::4d,base,out-of-bounds', pkg ), function benchmark( b ) {
847871
values = [
848872
baseEmpty( 'float64', [ 2, 2, 2, 2 ], 'row-major' ),
849873
baseEmpty( 'float32', [ 2, 2, 2, 2 ], 'row-major' ),
874+
baseEmpty( 'float16', [ 2, 2, 2, 2 ], 'row-major' ),
850875
baseEmpty( 'int32', [ 2, 2, 2, 2 ], 'row-major' ),
851876
baseEmpty( 'complex128', [ 2, 2, 2, 2 ], 'row-major' ),
852877
baseEmpty( 'generic', [ 2, 2, 2, 2 ], 'row-major' )
@@ -883,6 +908,7 @@ bench( format( '%s::4d,non-base,out-of-bounds', pkg ), function benchmark( b ) {
883908
values = [
884909
empty( [ 2, 2, 2, 2 ], { 'dtype': 'float64' } ),
885910
empty( [ 2, 2, 2, 2 ], { 'dtype': 'float32' } ),
911+
empty( [ 2, 2, 2, 2 ], { 'dtype': 'float16' } ),
886912
empty( [ 2, 2, 2, 2 ], { 'dtype': 'int32' } ),
887913
empty( [ 2, 2, 2, 2 ], { 'dtype': 'complex128' } ),
888914
empty( [ 2, 2, 2, 2 ], { 'dtype': 'generic' } )
@@ -919,6 +945,7 @@ bench( format( '%s::5d,base', pkg ), function benchmark( b ) {
919945
values = [
920946
baseEmpty( 'float64', [ 2, 2, 2, 2, 2 ], 'row-major' ),
921947
baseEmpty( 'float32', [ 2, 2, 2, 2, 2 ], 'row-major' ),
948+
baseEmpty( 'float16', [ 2, 2, 2, 2, 2 ], 'row-major' ),
922949
baseEmpty( 'int32', [ 2, 2, 2, 2, 2 ], 'row-major' ),
923950
baseEmpty( 'complex128', [ 2, 2, 2, 2, 2 ], 'row-major' ),
924951
baseEmpty( 'generic', [ 2, 2, 2, 2, 2 ], 'row-major' )
@@ -951,6 +978,7 @@ bench( format( '%s::5d,non-base', pkg ), function benchmark( b ) {
951978
values = [
952979
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'float64' } ),
953980
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'float32' } ),
981+
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'float16' } ),
954982
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'int32' } ),
955983
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'complex128' } ),
956984
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'generic' } )
@@ -984,6 +1012,7 @@ bench( format( '%s::5d,base,reduced', pkg ), function benchmark( b ) {
9841012
values = [
9851013
baseEmpty( 'float64', [ 2, 2, 2, 2, 2 ], 'row-major' ),
9861014
baseEmpty( 'float32', [ 2, 2, 2, 2, 2 ], 'row-major' ),
1015+
baseEmpty( 'float16', [ 2, 2, 2, 2, 2 ], 'row-major' ),
9871016
baseEmpty( 'int32', [ 2, 2, 2, 2, 2 ], 'row-major' ),
9881017
baseEmpty( 'complex128', [ 2, 2, 2, 2, 2 ], 'row-major' ),
9891018
baseEmpty( 'generic', [ 2, 2, 2, 2, 2 ], 'row-major' )
@@ -1016,6 +1045,7 @@ bench( format( '%s::5d,non-base,reduced', pkg ), function benchmark( b ) {
10161045
values = [
10171046
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'float64' } ),
10181047
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'float32' } ),
1048+
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'float16' } ),
10191049
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'int32' } ),
10201050
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'complex128' } ),
10211051
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'generic' } )
@@ -1050,6 +1080,7 @@ bench( format( '%s::5d,base,out-of-bounds', pkg ), function benchmark( b ) {
10501080
values = [
10511081
baseEmpty( 'float64', [ 2, 2, 2, 2, 2 ], 'row-major' ),
10521082
baseEmpty( 'float32', [ 2, 2, 2, 2, 2 ], 'row-major' ),
1083+
baseEmpty( 'float16', [ 2, 2, 2, 2, 2 ], 'row-major' ),
10531084
baseEmpty( 'int32', [ 2, 2, 2, 2, 2 ], 'row-major' ),
10541085
baseEmpty( 'complex128', [ 2, 2, 2, 2, 2 ], 'row-major' ),
10551086
baseEmpty( 'generic', [ 2, 2, 2, 2, 2 ], 'row-major' )
@@ -1086,6 +1117,7 @@ bench( format( '%s::5d,non-base,out-of-bounds', pkg ), function benchmark( b ) {
10861117
values = [
10871118
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'float64' } ),
10881119
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'float32' } ),
1120+
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'float16' } ),
10891121
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'int32' } ),
10901122
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'complex128' } ),
10911123
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'generic' } )

0 commit comments

Comments
 (0)