Commit aaf444e
authored
Fixes element-wise comparisons of mixed signed-unsigned integer inputs (#1650)
* Align `not_equal` type map to other comparisons
Overloads for combinations of complex and real valued floats are unnecessary, as floats can be safely cast to complex
* Comparisons with signed and unsigned integers behave correctly
Comparions between signed and unsigned integer data previously did not work correctly in some cases, as signed integers could be promoted to uint64 if one input was uint64
Additionally, `-1 < x` for some `x` with unsigned integer data type would always fail, as the -1 would initialize an array of `x.dtype` which would always underflow, leading to undefined behavior
These problems were addressed by adding signed and unsigned 64-bit integer combinations to the type maps for the comparisons, and adding constexpr branches to the comparisons between mixed-kind integers
* Apply suggested docstring for get_array_dtype_scalar_type_resolver_function
* Refactor `isinstance` checks for any weak types into `_is_weak_dtype` utility function
Per suggestion by @oleksandr-pavlyk
* Added tests for comparing unsigned integer arrays to negative integer arrays and Python scalars1 parent 379b939 commit aaf444e
File tree
15 files changed
+340
-76
lines changed- dpctl
- tensor
- libtensor/include/kernels/elementwise_functions
- tests
- elementwise
15 files changed
+340
-76
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
38 | 37 | | |
39 | | - | |
40 | 38 | | |
| 39 | + | |
41 | 40 | | |
42 | 41 | | |
43 | 42 | | |
| |||
47 | 46 | | |
48 | 47 | | |
49 | 48 | | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
| 49 | + | |
59 | 50 | | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
| 51 | + | |
| 52 | + | |
73 | 53 | | |
74 | 54 | | |
75 | 55 | | |
| |||
120 | 100 | | |
121 | 101 | | |
122 | 102 | | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
| 103 | + | |
127 | 104 | | |
128 | 105 | | |
129 | 106 | | |
| |||
152 | 129 | | |
153 | 130 | | |
154 | 131 | | |
155 | | - | |
156 | | - | |
157 | | - | |
158 | | - | |
| 132 | + | |
159 | 133 | | |
160 | | - | |
161 | | - | |
162 | | - | |
163 | | - | |
| 134 | + | |
164 | 135 | | |
165 | 136 | | |
166 | 137 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
416 | 416 | | |
417 | 417 | | |
418 | 418 | | |
| 419 | + | |
419 | 420 | | |
420 | 421 | | |
421 | 422 | | |
| |||
428 | 429 | | |
429 | 430 | | |
430 | 431 | | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
431 | 436 | | |
432 | 437 | | |
433 | 438 | | |
| |||
476 | 481 | | |
477 | 482 | | |
478 | 483 | | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
479 | 504 | | |
480 | 505 | | |
481 | 506 | | |
| |||
579 | 604 | | |
580 | 605 | | |
581 | 606 | | |
582 | | - | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
583 | 610 | | |
584 | 611 | | |
585 | 612 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
25 | 26 | | |
26 | 27 | | |
27 | 28 | | |
| |||
690 | 691 | | |
691 | 692 | | |
692 | 693 | | |
693 | | - | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
694 | 699 | | |
695 | 700 | | |
696 | 701 | | |
| |||
845 | 850 | | |
846 | 851 | | |
847 | 852 | | |
848 | | - | |
| 853 | + | |
| 854 | + | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
849 | 858 | | |
850 | 859 | | |
851 | 860 | | |
| |||
881 | 890 | | |
882 | 891 | | |
883 | 892 | | |
| 893 | + | |
884 | 894 | | |
885 | 895 | | |
886 | 896 | | |
| |||
1027 | 1037 | | |
1028 | 1038 | | |
1029 | 1039 | | |
1030 | | - | |
| 1040 | + | |
| 1041 | + | |
| 1042 | + | |
| 1043 | + | |
| 1044 | + | |
1031 | 1045 | | |
1032 | 1046 | | |
1033 | 1047 | | |
| |||
1063 | 1077 | | |
1064 | 1078 | | |
1065 | 1079 | | |
| 1080 | + | |
1066 | 1081 | | |
1067 | 1082 | | |
1068 | 1083 | | |
| |||
1499 | 1514 | | |
1500 | 1515 | | |
1501 | 1516 | | |
1502 | | - | |
| 1517 | + | |
| 1518 | + | |
| 1519 | + | |
| 1520 | + | |
| 1521 | + | |
1503 | 1522 | | |
1504 | 1523 | | |
1505 | 1524 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
346 | 346 | | |
347 | 347 | | |
348 | 348 | | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
349 | 356 | | |
350 | 357 | | |
351 | | - | |
352 | | - | |
353 | | - | |
354 | | - | |
355 | | - | |
356 | | - | |
357 | | - | |
358 | | - | |
359 | | - | |
360 | | - | |
361 | | - | |
362 | | - | |
363 | | - | |
| 358 | + | |
| 359 | + | |
364 | 360 | | |
365 | 361 | | |
366 | 362 | | |
| |||
377 | 373 | | |
378 | 374 | | |
379 | 375 | | |
380 | | - | |
381 | | - | |
382 | | - | |
383 | | - | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
384 | 424 | | |
385 | 425 | | |
386 | 426 | | |
| |||
395 | 435 | | |
396 | 436 | | |
397 | 437 | | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
398 | 443 | | |
399 | 444 | | |
400 | 445 | | |
| |||
789 | 834 | | |
790 | 835 | | |
791 | 836 | | |
| 837 | + | |
792 | 838 | | |
793 | 839 | | |
794 | 840 | | |
| |||
Lines changed: 23 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
76 | 76 | | |
77 | 77 | | |
78 | 78 | | |
79 | | - | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
80 | 98 | | |
81 | 99 | | |
82 | 100 | | |
| |||
151 | 169 | | |
152 | 170 | | |
153 | 171 | | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
154 | 176 | | |
155 | 177 | | |
156 | 178 | | |
| |||
Lines changed: 23 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
74 | | - | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
75 | 93 | | |
76 | 94 | | |
77 | 95 | | |
| |||
148 | 166 | | |
149 | 167 | | |
150 | 168 | | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
151 | 173 | | |
152 | 174 | | |
153 | 175 | | |
| |||
0 commit comments