Skip to content

Commit 6ccfa0f

Browse files
committed
feat: add support for float16, complex32, int64, and uint64 dtypes
--- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed ---
1 parent 64309b8 commit 6ccfa0f

File tree

2 files changed

+446
-224
lines changed

2 files changed

+446
-224
lines changed

lib/node_modules/@stdlib/ndarray/promotion-rules/include/stdlib/ndarray/promotion_rules.h

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,11 @@ const int8_t STDLIB_NDARRAY_PROMOTION_RULES_FLOAT64[ STDLIB_NDARRAY_NDTYPES ] =
4141
[ STDLIB_NDARRAY_INT64 ] = -1,
4242
[ STDLIB_NDARRAY_UINT64 ] = -1,
4343

44+
[ STDLIB_NDARRAY_FLOAT16 ] = STDLIB_NDARRAY_FLOAT64,
4445
[ STDLIB_NDARRAY_FLOAT32 ] = STDLIB_NDARRAY_FLOAT64,
4546
[ STDLIB_NDARRAY_FLOAT64 ] = STDLIB_NDARRAY_FLOAT64,
4647

48+
[ STDLIB_NDARRAY_COMPLEX32 ] = STDLIB_NDARRAY_COMPLEX128;
4749
[ STDLIB_NDARRAY_COMPLEX64 ] = STDLIB_NDARRAY_COMPLEX128,
4850
[ STDLIB_NDARRAY_COMPLEX128 ] = STDLIB_NDARRAY_COMPLEX128,
4951

@@ -65,9 +67,37 @@ const int8_t STDLIB_NDARRAY_PROMOTION_RULES_FLOAT32[ STDLIB_NDARRAY_NDTYPES ] =
6567
[ STDLIB_NDARRAY_INT64 ] = -1,
6668
[ STDLIB_NDARRAY_UINT64 ] = -1,
6769

70+
[ STDLIB_NDARRAY_FLOAT16 ] = STDLIB_NDARRAY_FLOAT32,
6871
[ STDLIB_NDARRAY_FLOAT32 ] = STDLIB_NDARRAY_FLOAT32,
6972
[ STDLIB_NDARRAY_FLOAT64 ] = STDLIB_NDARRAY_FLOAT64,
7073

74+
[ STDLIB_NDARRAY_COMPLEX32 ] = STDLIB_NDARRAY_COMPLEX64;
75+
[ STDLIB_NDARRAY_COMPLEX64 ] = STDLIB_NDARRAY_COMPLEX64,
76+
[ STDLIB_NDARRAY_COMPLEX128 ] = STDLIB_NDARRAY_COMPLEX128,
77+
78+
[ STDLIB_NDARRAY_BOOL ] = -1,
79+
80+
[ STDLIB_NDARRAY_BINARY ] = -1,
81+
[ STDLIB_NDARRAY_GENERIC ] = -1
82+
};
83+
84+
const int8_t STDLIB_NDARRAY_PROMOTION_RULES_FLOAT16[ STDLIB_NDARRAY_NDTYPES ] = {
85+
86+
[ STDLIB_NDARRAY_INT8 ] = STDLIB_NDARRAY_FLOAT16,
87+
[ STDLIB_NDARRAY_UINT8 ] = STDLIB_NDARRAY_FLOAT16,
88+
[ STDLIB_NDARRAY_UINT8C ] = STDLIB_NDARRAY_FLOAT16,
89+
[ STDLIB_NDARRAY_INT16 ] = STDLIB_NDARRAY_FLOAT32,
90+
[ STDLIB_NDARRAY_UINT16 ] = STDLIB_NDARRAY_FLOAT32,
91+
[ STDLIB_NDARRAY_INT32 ] = STDLIB_NDARRAY_FLOAT64,
92+
[ STDLIB_NDARRAY_UINT32 ] = STDLIB_NDARRAY_FLOAT64,
93+
[ STDLIB_NDARRAY_INT64 ] = -1,
94+
[ STDLIB_NDARRAY_UINT64 ] = -1,
95+
96+
[ STDLIB_NDARRAY_FLOAT16 ] = STDLIB_NDARRAY_FLOAT16,
97+
[ STDLIB_NDARRAY_FLOAT32 ] = STDLIB_NDARRAY_FLOAT32,
98+
[ STDLIB_NDARRAY_FLOAT64 ] = STDLIB_NDARRAY_FLOAT64,
99+
100+
[ STDLIB_NDARRAY_COMPLEX32 ] = STDLIB_NDARRAY_COMPLEX32;
71101
[ STDLIB_NDARRAY_COMPLEX64 ] = STDLIB_NDARRAY_COMPLEX64,
72102
[ STDLIB_NDARRAY_COMPLEX128 ] = STDLIB_NDARRAY_COMPLEX128,
73103

@@ -89,9 +119,11 @@ const int8_t STDLIB_NDARRAY_PROMOTION_RULES_UINT64[ STDLIB_NDARRAY_NDTYPES ] = {
89119
[ STDLIB_NDARRAY_INT64 ] = -1,
90120
[ STDLIB_NDARRAY_UINT64 ] = STDLIB_NDARRAY_UINT64,
91121

122+
[ STDLIB_NDARRAY_FLOAT16 ] = -1,
92123
[ STDLIB_NDARRAY_FLOAT32 ] = -1,
93124
[ STDLIB_NDARRAY_FLOAT64 ] = -1,
94125

126+
[ STDLIB_NDARRAY_COMPLEX32 ] = -1;
95127
[ STDLIB_NDARRAY_COMPLEX64 ] = -1,
96128
[ STDLIB_NDARRAY_COMPLEX128 ] = -1,
97129

@@ -113,9 +145,11 @@ const int8_t STDLIB_NDARRAY_PROMOTION_RULES_INT64[ STDLIB_NDARRAY_NDTYPES ] = {
113145
[ STDLIB_NDARRAY_INT64 ] = STDLIB_NDARRAY_INT64,
114146
[ STDLIB_NDARRAY_UINT64 ] = -1,
115147

148+
[ STDLIB_NDARRAY_FLOAT16 ] = -1,
116149
[ STDLIB_NDARRAY_FLOAT32 ] = -1,
117150
[ STDLIB_NDARRAY_FLOAT64 ] = -1,
118151

152+
[ STDLIB_NDARRAY_COMPLEX32 ] = -1;
119153
[ STDLIB_NDARRAY_COMPLEX64 ] = -1,
120154
[ STDLIB_NDARRAY_COMPLEX128 ] = -1,
121155

@@ -137,9 +171,11 @@ const int8_t STDLIB_NDARRAY_PROMOTION_RULES_UINT32[ STDLIB_NDARRAY_NDTYPES ] = {
137171
[ STDLIB_NDARRAY_INT64 ] = STDLIB_NDARRAY_INT64,
138172
[ STDLIB_NDARRAY_UINT64 ] = STDLIB_NDARRAY_UINT64,
139173

174+
[ STDLIB_NDARRAY_FLOAT16 ] = STDLIB_NDARRAY_FLOAT64,
140175
[ STDLIB_NDARRAY_FLOAT32 ] = STDLIB_NDARRAY_FLOAT64,
141176
[ STDLIB_NDARRAY_FLOAT64 ] = STDLIB_NDARRAY_FLOAT64,
142177

178+
[ STDLIB_NDARRAY_COMPLEX32 ] = STDLIB_NDARRAY_COMPLEX128;
143179
[ STDLIB_NDARRAY_COMPLEX64 ] = STDLIB_NDARRAY_COMPLEX128,
144180
[ STDLIB_NDARRAY_COMPLEX128 ] = STDLIB_NDARRAY_COMPLEX128,
145181

@@ -161,9 +197,11 @@ const int8_t STDLIB_NDARRAY_PROMOTION_RULES_INT32[ STDLIB_NDARRAY_NDTYPES ] = {
161197
[ STDLIB_NDARRAY_INT64 ] = STDLIB_NDARRAY_INT64,
162198
[ STDLIB_NDARRAY_UINT64 ] = -1,
163199

200+
[ STDLIB_NDARRAY_FLOAT16 ] = STDLIB_NDARRAY_FLOAT64,
164201
[ STDLIB_NDARRAY_FLOAT32 ] = STDLIB_NDARRAY_FLOAT64,
165202
[ STDLIB_NDARRAY_FLOAT64 ] = STDLIB_NDARRAY_FLOAT64,
166203

204+
[ STDLIB_NDARRAY_COMPLEX32 ] = STDLIB_NDARRAY_COMPLEX128;
167205
[ STDLIB_NDARRAY_COMPLEX64 ] = STDLIB_NDARRAY_COMPLEX128,
168206
[ STDLIB_NDARRAY_COMPLEX128 ] = STDLIB_NDARRAY_COMPLEX128,
169207

@@ -185,9 +223,11 @@ const int8_t STDLIB_NDARRAY_PROMOTION_RULES_UINT16[ STDLIB_NDARRAY_NDTYPES ] = {
185223
[ STDLIB_NDARRAY_INT64 ] = STDLIB_NDARRAY_INT64,
186224
[ STDLIB_NDARRAY_UINT64 ] = STDLIB_NDARRAY_UINT64,
187225

226+
[ STDLIB_NDARRAY_FLOAT16 ] = STDLIB_NDARRAY_FLOAT32,
188227
[ STDLIB_NDARRAY_FLOAT32 ] = STDLIB_NDARRAY_FLOAT32,
189228
[ STDLIB_NDARRAY_FLOAT64 ] = STDLIB_NDARRAY_FLOAT64,
190229

230+
[ STDLIB_NDARRAY_COMPLEX32 ] = STDLIB_NDARRAY_COMPLEX64;
191231
[ STDLIB_NDARRAY_COMPLEX64 ] = STDLIB_NDARRAY_COMPLEX64,
192232
[ STDLIB_NDARRAY_COMPLEX128 ] = STDLIB_NDARRAY_COMPLEX128,
193233

@@ -209,9 +249,11 @@ const int8_t STDLIB_NDARRAY_PROMOTION_RULES_INT16[ STDLIB_NDARRAY_NDTYPES ] = {
209249
[ STDLIB_NDARRAY_INT64 ] = STDLIB_NDARRAY_INT64,
210250
[ STDLIB_NDARRAY_UINT64 ] = -1,
211251

252+
[ STDLIB_NDARRAY_FLOAT16 ] = STDLIB_NDARRAY_FLOAT32,
212253
[ STDLIB_NDARRAY_FLOAT32 ] = STDLIB_NDARRAY_FLOAT32,
213254
[ STDLIB_NDARRAY_FLOAT64 ] = STDLIB_NDARRAY_FLOAT64,
214255

256+
[ STDLIB_NDARRAY_COMPLEX32 ] = STDLIB_NDARRAY_COMPLEX64;
215257
[ STDLIB_NDARRAY_COMPLEX64 ] = STDLIB_NDARRAY_COMPLEX64,
216258
[ STDLIB_NDARRAY_COMPLEX128 ] = STDLIB_NDARRAY_COMPLEX128,
217259

@@ -233,9 +275,11 @@ const int8_t STDLIB_NDARRAY_PROMOTION_RULES_UINT8[ STDLIB_NDARRAY_NDTYPES ] = {
233275
[ STDLIB_NDARRAY_INT64 ] = STDLIB_NDARRAY_INT64,
234276
[ STDLIB_NDARRAY_UINT64 ] = STDLIB_NDARRAY_UINT64,
235277

278+
[ STDLIB_NDARRAY_FLOAT16 ] = STDLIB_NDARRAY_FLOAT16,
236279
[ STDLIB_NDARRAY_FLOAT32 ] = STDLIB_NDARRAY_FLOAT32,
237280
[ STDLIB_NDARRAY_FLOAT64 ] = STDLIB_NDARRAY_FLOAT64,
238281

282+
[ STDLIB_NDARRAY_COMPLEX32 ] = STDLIB_NDARRAY_COMPLEX32;
239283
[ STDLIB_NDARRAY_COMPLEX64 ] = STDLIB_NDARRAY_COMPLEX64,
240284
[ STDLIB_NDARRAY_COMPLEX128 ] = STDLIB_NDARRAY_COMPLEX128,
241285

@@ -257,9 +301,11 @@ const int8_t STDLIB_NDARRAY_PROMOTION_RULES_UINT8C[ STDLIB_NDARRAY_NDTYPES ] = {
257301
[ STDLIB_NDARRAY_INT64 ] = STDLIB_NDARRAY_INT64,
258302
[ STDLIB_NDARRAY_UINT64 ] = STDLIB_NDARRAY_UINT64,
259303

304+
[ STDLIB_NDARRAY_FLOAT16 ] = STDLIB_NDARRAY_FLOAT16,
260305
[ STDLIB_NDARRAY_FLOAT32 ] = STDLIB_NDARRAY_FLOAT32,
261306
[ STDLIB_NDARRAY_FLOAT64 ] = STDLIB_NDARRAY_FLOAT64,
262307

308+
[ STDLIB_NDARRAY_COMPLEX32 ] = STDLIB_NDARRAY_COMPLEX32;
263309
[ STDLIB_NDARRAY_COMPLEX64 ] = STDLIB_NDARRAY_COMPLEX64,
264310
[ STDLIB_NDARRAY_COMPLEX128 ] = STDLIB_NDARRAY_COMPLEX128,
265311

@@ -281,9 +327,37 @@ const int8_t STDLIB_NDARRAY_PROMOTION_RULES_INT8[ STDLIB_NDARRAY_NDTYPES ] = {
281327
[ STDLIB_NDARRAY_INT64 ] = STDLIB_NDARRAY_INT64,
282328
[ STDLIB_NDARRAY_UINT64 ] = -1,
283329

330+
[ STDLIB_NDARRAY_FLOAT16 ] = STDLIB_NDARRAY_FLOAT16,
284331
[ STDLIB_NDARRAY_FLOAT32 ] = STDLIB_NDARRAY_FLOAT32,
285332
[ STDLIB_NDARRAY_FLOAT64 ] = STDLIB_NDARRAY_FLOAT64,
286333

334+
[ STDLIB_NDARRAY_COMPLEX32 ] = STDLIB_NDARRAY_COMPLEX32;
335+
[ STDLIB_NDARRAY_COMPLEX64 ] = STDLIB_NDARRAY_COMPLEX64,
336+
[ STDLIB_NDARRAY_COMPLEX128 ] = STDLIB_NDARRAY_COMPLEX128,
337+
338+
[ STDLIB_NDARRAY_BOOL ] = -1,
339+
340+
[ STDLIB_NDARRAY_BINARY ] = -1,
341+
[ STDLIB_NDARRAY_GENERIC ] = -1
342+
};
343+
344+
const int8_t STDLIB_NDARRAY_PROMOTION_RULES_COMPLEX32[ STDLIB_NDARRAY_NDTYPES ] = {
345+
346+
[ STDLIB_NDARRAY_INT8 ] = -1,
347+
[ STDLIB_NDARRAY_UINT8 ] = -1,
348+
[ STDLIB_NDARRAY_UINT8C ] = -1,
349+
[ STDLIB_NDARRAY_INT16 ] = -1,
350+
[ STDLIB_NDARRAY_UINT16 ] = -1,
351+
[ STDLIB_NDARRAY_INT32 ] = -1,
352+
[ STDLIB_NDARRAY_UINT32 ] = -1,
353+
[ STDLIB_NDARRAY_INT64 ] = -1,
354+
[ STDLIB_NDARRAY_UINT64 ] = -1,
355+
356+
[ STDLIB_NDARRAY_FLOAT16 ] = -1,
357+
[ STDLIB_NDARRAY_FLOAT32 ] = -1,
358+
[ STDLIB_NDARRAY_FLOAT64 ] = -1,
359+
360+
[ STDLIB_NDARRAY_COMPLEX32 ] = STDLIB_NDARRAY_COMPLEX32;
287361
[ STDLIB_NDARRAY_COMPLEX64 ] = STDLIB_NDARRAY_COMPLEX64,
288362
[ STDLIB_NDARRAY_COMPLEX128 ] = STDLIB_NDARRAY_COMPLEX128,
289363

@@ -305,9 +379,11 @@ const int8_t STDLIB_NDARRAY_PROMOTION_RULES_COMPLEX64[ STDLIB_NDARRAY_NDTYPES ]
305379
[ STDLIB_NDARRAY_INT64 ] = -1,
306380
[ STDLIB_NDARRAY_UINT64 ] = -1,
307381

382+
[ STDLIB_NDARRAY_FLOAT16 ] = -1,
308383
[ STDLIB_NDARRAY_FLOAT32 ] = -1,
309384
[ STDLIB_NDARRAY_FLOAT64 ] = -1,
310385

386+
[ STDLIB_NDARRAY_COMPLEX32 ] = STDLIB_NDARRAY_COMPLEX64;
311387
[ STDLIB_NDARRAY_COMPLEX64 ] = STDLIB_NDARRAY_COMPLEX64,
312388
[ STDLIB_NDARRAY_COMPLEX128 ] = STDLIB_NDARRAY_COMPLEX128,
313389

@@ -329,9 +405,11 @@ const int8_t STDLIB_NDARRAY_PROMOTION_RULES_COMPLEX128[ STDLIB_NDARRAY_NDTYPES ]
329405
[ STDLIB_NDARRAY_INT64 ] = -1,
330406
[ STDLIB_NDARRAY_UINT64 ] = -1,
331407

408+
[ STDLIB_NDARRAY_FLOAT16 ] = -1,
332409
[ STDLIB_NDARRAY_FLOAT32 ] = -1,
333410
[ STDLIB_NDARRAY_FLOAT64 ] = -1,
334411

412+
[ STDLIB_NDARRAY_COMPLEX32 ] = STDLIB_NDARRAY_COMPLEX128;
335413
[ STDLIB_NDARRAY_COMPLEX64 ] = STDLIB_NDARRAY_COMPLEX128,
336414
[ STDLIB_NDARRAY_COMPLEX128 ] = STDLIB_NDARRAY_COMPLEX128,
337415

@@ -353,9 +431,11 @@ const int8_t STDLIB_NDARRAY_PROMOTION_RULES_BOOL[ STDLIB_NDARRAY_NDTYPES ] = {
353431
[ STDLIB_NDARRAY_INT64 ] = -1,
354432
[ STDLIB_NDARRAY_UINT64 ] = -1,
355433

434+
[ STDLIB_NDARRAY_FLOAT16 ] = -1,
356435
[ STDLIB_NDARRAY_FLOAT32 ] = -1,
357436
[ STDLIB_NDARRAY_FLOAT64 ] = -1,
358437

438+
[ STDLIB_NDARRAY_COMPLEX32 ] = -1;
359439
[ STDLIB_NDARRAY_COMPLEX64 ] = -1,
360440
[ STDLIB_NDARRAY_COMPLEX128 ] = -1,
361441

@@ -377,9 +457,11 @@ const int8_t STDLIB_NDARRAY_PROMOTION_RULES_BINARY[ STDLIB_NDARRAY_NDTYPES ] = {
377457
[ STDLIB_NDARRAY_INT64 ] = -1,
378458
[ STDLIB_NDARRAY_UINT64 ] = -1,
379459

460+
[ STDLIB_NDARRAY_FLOAT16 ] = -1,
380461
[ STDLIB_NDARRAY_FLOAT32 ] = -1,
381462
[ STDLIB_NDARRAY_FLOAT64 ] = -1,
382463

464+
[ STDLIB_NDARRAY_COMPLEX32 ] = -1;
383465
[ STDLIB_NDARRAY_COMPLEX64 ] = -1,
384466
[ STDLIB_NDARRAY_COMPLEX128 ] = -1,
385467

@@ -401,9 +483,11 @@ const int8_t STDLIB_NDARRAY_PROMOTION_RULES_GENERIC[ STDLIB_NDARRAY_NDTYPES ] =
401483
[ STDLIB_NDARRAY_INT64 ] = -1,
402484
[ STDLIB_NDARRAY_UINT64 ] = -1,
403485

486+
[ STDLIB_NDARRAY_FLOAT16 ] = -1,
404487
[ STDLIB_NDARRAY_FLOAT32 ] = -1,
405488
[ STDLIB_NDARRAY_FLOAT64 ] = -1,
406489

490+
[ STDLIB_NDARRAY_COMPLEX32 ] = -1;
407491
[ STDLIB_NDARRAY_COMPLEX64 ] = -1,
408492
[ STDLIB_NDARRAY_COMPLEX128 ] = -1,
409493

@@ -426,9 +510,11 @@ const int8_t *STDLIB_NDARRAY_PROMOTION_RULES[ STDLIB_NDARRAY_NDTYPES ] = {
426510
[ STDLIB_NDARRAY_INT64 ] = STDLIB_NDARRAY_PROMOTION_RULES_INT64,
427511
[ STDLIB_NDARRAY_UINT64 ] = STDLIB_NDARRAY_PROMOTION_RULES_UINT64,
428512

513+
[ STDLIB_NDARRAY_FLOAT16 ] = STDLIB_NDARRAY_PROMOTION_RULES_FLOAT16,
429514
[ STDLIB_NDARRAY_FLOAT32 ] = STDLIB_NDARRAY_PROMOTION_RULES_FLOAT32,
430515
[ STDLIB_NDARRAY_FLOAT64 ] = STDLIB_NDARRAY_PROMOTION_RULES_FLOAT64,
431516

517+
[ STDLIB_NDARRAY_COMPLEX32 ] = STDLIB_NDARRAY_PROMOTION_RULES_COMPLEX32;
432518
[ STDLIB_NDARRAY_COMPLEX64 ] = STDLIB_NDARRAY_PROMOTION_RULES_COMPLEX64,
433519
[ STDLIB_NDARRAY_COMPLEX128 ] = STDLIB_NDARRAY_PROMOTION_RULES_COMPLEX128,
434520

0 commit comments

Comments
 (0)