Loading...
Searching...
No Matches
kernel-dispatch.h
Go to the documentation of this file.
1// BSD 3-Clause License; see https://github.com/scikit-hep/awkward-1.0/blob/main/LICENSE
2
3#ifndef AWKWARD_KERNEL_DISPATCH_H_
4#define AWKWARD_KERNEL_DISPATCH_H_
5
6#include "awkward/common.h"
7#include "awkward/util.h"
9#include "awkward/kernels.h"
10
11#include <sstream>
12
13#ifndef _MSC_VER
14 #include "dlfcn.h"
15#endif
16
17namespace awkward {
18 namespace kernel {
19
20 enum class lib {
21 cpu,
22 cuda,
23 size
24 };
25
27 public:
29 virtual std::string library_path() = 0;
30 };
31
33 public:
35
37 kernel::lib ptr_lib,
38 const std::shared_ptr<LibraryPathCallback> &callback);
39
40 std::string awkward_library_path(kernel::lib ptr_lib);
41
42 private:
43 std::map<kernel::lib, std::vector<std::shared_ptr<LibraryPathCallback>>> lib_path_callbacks;
44 std::mutex lib_path_callbacks_mutex;
45 };
46
47 extern std::shared_ptr<LibraryCallback> lib_callback;
48
53
57 void* acquire_symbol(void* handle, const std::string& symbol_name);
58
73 template <typename T>
75 public:
78 void operator()(T const *ptr) {
79 awkward_free(reinterpret_cast<void const*>(ptr));
80 }
81 };
82
97 template <typename T>
99 public:
102 void operator()(T const *ptr) {
103 auto handle = acquire_handle(lib::cuda);
104 typedef decltype(awkward_free) functor_type;
105 auto* awkward_free_fcn = reinterpret_cast<functor_type*>(
106 acquire_symbol(handle, "awkward_free"));
107 (*awkward_free_fcn)(reinterpret_cast<void const*>(ptr));
108 }
109 };
110
125 template <typename T>
127 public:
130 void operator()(T const *ptr) { }
131 };
132
134 const int64_t
136 kernel::lib ptr_lib,
137 void* ptr);
138
141 const std::string lib_tostring(
142 kernel::lib ptr_lib,
143 void* ptr,
144 const std::string& indent,
145 const std::string& pre,
146 const std::string& post);
147
155 void* to_ptr,
156 void* from_ptr,
157 int64_t bytelength);
158
160 const std::string
162 kernel::lib ptr_lib,
163 const std::string& cache_key);
164
170 template <typename T>
171 std::shared_ptr<T> malloc(
172 kernel::lib ptr_lib,
173 int64_t bytelength) {
174 if (ptr_lib == lib::cpu) {
175 return std::shared_ptr<T>(
176 reinterpret_cast<T*>(awkward_malloc(bytelength)),
178 }
179 else if (ptr_lib == lib::cuda) {
181 typedef decltype(awkward_malloc) functor_type;
182 auto* awkward_malloc_fcn = reinterpret_cast<functor_type*>(
183 acquire_symbol(handle, "awkward_malloc"));
184 return std::shared_ptr<T>(
185 reinterpret_cast<T*>((*awkward_malloc_fcn)(bytelength)),
187 }
188 else {
189 throw std::runtime_error(
190 std::string("unrecognized ptr_lib in ptr_alloc<bool>"));
191 }
192 }
193
194 template<class T>
196 template<class T>
197 using UniquePtr = std::unique_ptr<T, UniquePtrDeleter<T>>;
198
199 template <typename T>
201 kernel::lib ptr_lib,
202 int64_t bytelength) {
203 if (ptr_lib == lib::cpu) {
204 return UniquePtr<T>(
205 reinterpret_cast<T*>(awkward_malloc(bytelength)),
207 }
208 else {
209 throw std::runtime_error(
210 std::string("unrecognized ptr_lib in ptr_alloc<bool>"));
211 }
212 }
213
215
217 template <typename T>
219 kernel::lib ptr_lib,
220 T* ptr);
221
222 // FIXME: move regularize_rangeslice to common.h; it's not a kernel.
224 int64_t* start,
225 int64_t* stop,
226 bool posstep,
227 bool hasstart,
228 bool hasstop,
229 int64_t length);
230
232 kernel::lib ptr_lib,
235 int64_t length);
236
237 template <typename T>
239 kernel::lib ptr_lib,
240 bool* result,
241 const T* fromindex,
242 int64_t length);
243
244 template <typename T>
246 kernel::lib ptr_lib,
247 int64_t* toptr,
248 const T* fromptr,
249 int64_t length);
250
251 template <typename T>
253 kernel::lib ptr_lib,
254 T* toindex,
255 const T* fromindex,
256 const int64_t* carry,
258 int64_t length);
259
260 template <typename T>
262 kernel::lib ptr_lib,
263 T* toindex,
264 const T* fromindex,
265 const int64_t* carry,
266 int64_t length);
267
269 kernel::lib ptr_lib,
270 int64_t* toptr,
271 const int64_t* fromptr,
272 int64_t ndim,
273 const int64_t* shape,
274 const int64_t* strides);
275
277 kernel::lib ptr_lib,
278 bool* same,
279 const int8_t* bytemask,
280 const int64_t* missingindex,
281 int64_t length);
282
283 template <typename T>
285 kernel::lib ptr_lib,
286 T* toptr,
287 int64_t length);
288
289 template <typename ID>
291 kernel::lib ptr_lib,
293 const ID* identitiesptr,
294 const int64_t* carryptr,
296 int64_t width,
297 int64_t length);
298
300 kernel::lib ptr_lib,
301 int64_t* toptr,
302 int64_t skip,
304
306 kernel::lib ptr_lib,
307 uint8_t* toptr,
308 const uint8_t* fromptr,
309 int64_t len);
310
312 kernel::lib ptr_lib,
313 uint8_t* toptr,
314 const uint8_t* fromptr,
315 int64_t len,
317 const int64_t* pos);
318
320 kernel::lib ptr_lib,
321 uint8_t* toptr,
322 const uint8_t** fromptrs,
324 int64_t len,
326 const int64_t* pos);
327
329 kernel::lib ptr_lib,
330 int64_t* topos,
331 const int64_t* frompos,
332 int64_t len,
333 int64_t skip,
335
337 kernel::lib ptr_lib,
338 uint8_t* toptr,
339 const uint8_t* fromptr,
340 int64_t len,
342 const int64_t* pos);
343
345 kernel::lib ptr_lib,
347 const int64_t* carryptr,
349 int64_t skip,
350 int64_t at);
351
353 kernel::lib ptr_lib,
355 const int64_t* carryptr,
358 int64_t skip,
359 int64_t start,
360 int64_t step);
361
363 kernel::lib ptr_lib,
366 const int64_t* carryptr,
367 const int64_t* advancedptr,
370 int64_t skip,
371 int64_t start,
372 int64_t step);
373
375 kernel::lib ptr_lib,
378 const int64_t* carryptr,
379 const int64_t* flatheadptr,
382 int64_t skip);
383
385 kernel::lib ptr_lib,
387 const int64_t* carryptr,
388 const int64_t* advancedptr,
389 const int64_t* flatheadptr,
391 int64_t skip);
392
394 kernel::lib ptr_lib,
396 const int8_t* fromptr,
397 int64_t length,
399
401 kernel::lib ptr_lib,
402 int64_t* toptr,
403 const int8_t* fromptr,
404 int64_t length,
406
407 template <typename T>
409 kernel::lib ptr_lib,
411 const T* fromstarts,
412 const T* fromstops,
414 int64_t at);
415
416
417 template <typename T>
419 kernel::lib ptr_lib,
421 const T* fromstarts,
422 const T* fromstops,
424 int64_t start,
425 int64_t stop,
426 int64_t step);
427
428 template <typename T>
430 kernel::lib ptr_lib,
431 T* tooffsets,
433 const T* fromstarts,
434 const T* fromstops,
436 int64_t start,
437 int64_t stop,
438 int64_t step);
439
440
441 template <typename T>
443 kernel::lib ptr_lib,
444 int64_t* total,
445 const T* fromoffsets,
447
448
449 template <typename T>
451 kernel::lib ptr_lib,
453 const int64_t* fromadvanced,
454 const T* fromoffsets,
456
457
458 template <typename T>
460 kernel::lib ptr_lib,
463 const T* fromstarts,
464 const T* fromstops,
465 const int64_t* fromarray,
469
470
471 template <typename T>
473 kernel::lib ptr_lib,
476 const T* fromstarts,
477 const T* fromstops,
478 const int64_t* fromarray,
479 const int64_t* fromadvanced,
483
484
485 template <typename T>
487 kernel::lib ptr_lib,
488 T* tostarts,
489 T* tostops,
490 const T* fromstarts,
491 const T* fromstops,
492 const int64_t* fromcarry,
495
497 kernel::lib ptr_lib,
499 int64_t at,
500 int64_t len,
501 int64_t size);
502
504 kernel::lib ptr_lib,
507 int64_t step,
508 int64_t len,
511
513 kernel::lib ptr_lib,
515 const int64_t* fromadvanced,
516 int64_t len,
518
520 kernel::lib ptr_lib,
522 const int64_t* fromarray,
524 int64_t size);
525
527 kernel::lib ptr_lib,
530 const int64_t* fromarray,
531 int64_t len,
533 int64_t size);
534
536 kernel::lib ptr_lib,
539 const int64_t* fromadvanced,
540 const int64_t* fromarray,
541 int64_t len,
543 int64_t size);
544
546 kernel::lib ptr_lib,
548 const int64_t* fromcarry,
550 int64_t size);
551
553 kernel::lib ptr_lib,
556 int64_t length);
557
559 kernel::lib ptr_lib,
562 const int64_t* parents,
564 int64_t length);
565
566 template <typename T>
568 kernel::lib ptr_lib,
570 const T* fromindex,
572
573 template <typename T>
575 kernel::lib ptr_lib,
577 const T* fromindex,
579 const int64_t* parents,
580 const int64_t* starts);
581
582 template <typename T>
584 kernel::lib ptr_lib,
586 T* toindex,
587 const T* fromindex,
590
591 template <typename T>
593 kernel::lib ptr_lib,
596 const T* fromindex,
599
601 kernel::lib ptr_lib,
604 const int64_t* fromoffsets,
605 int64_t length,
606 const int64_t* nonzero,
608
610 kernel::lib ptr_lib,
613 const int64_t* fromoffsets,
614 int64_t length,
615 const int64_t* index,
617 const int64_t* nonzero,
619 const int8_t* originalmask,
621
623 kernel::lib ptr_lib,
624 int8_t* tomask,
627 const int64_t* fromindex,
629 const int64_t* nonzero,
631
632 template <typename T>
634 kernel::lib ptr_lib,
636 const T* fromindex,
639
640
641 template <typename T>
643 kernel::lib ptr_lib,
644 T* toindex,
645 const T* fromindex,
646 const int64_t* fromcarry,
649
650 template <typename T>
652 kernel::lib ptr_lib,
653 int64_t* size,
654 const T* fromtags,
655 int64_t length);
656
657 template <typename T, typename I>
659 kernel::lib ptr_lib,
660 I* toindex,
661 I* current,
663 const T* fromtags,
664 int64_t length);
665
666 template <typename T, typename I>
668 kernel::lib ptr_lib,
671 const T* fromtags,
672 const I* fromindex,
673 int64_t length,
674 int64_t which);
675
677 kernel::lib ptr_lib,
679 const int64_t* index,
683
685 kernel::lib ptr_lib,
688 const int64_t* singleoffsets,
691
692 template <typename T>
694 kernel::lib ptr_lib,
697 const int64_t* singleoffsets,
699 const T* fromstarts,
700 const T* fromstops,
702 int64_t length);
703
705 kernel::lib ptr_lib,
707 const int64_t* slicestarts,
708 const int64_t* slicestops,
710
711 template <typename T>
713 kernel::lib ptr_lib,
716 const int64_t* slicestarts,
717 const int64_t* slicestops,
719 const int64_t* sliceindex,
721 const T* fromstarts,
722 const T* fromstops,
724
726 kernel::lib ptr_lib,
728 const int64_t* slicestarts,
729 const int64_t* slicestops,
730 int64_t length,
731 const int64_t* missing,
733
735 kernel::lib ptr_lib,
739 const int64_t* slicestarts,
740 const int64_t* slicestops,
741 int64_t length,
742 const int64_t* missing);
743
744 template <typename T>
746 kernel::lib ptr_lib,
748 const int64_t* slicestarts,
749 const int64_t* slicestops,
751 const T* fromstarts,
752 const T* fromstops);
753
754 template <typename T>
756 kernel::lib ptr_lib,
757 T* ptr,
758 int64_t at);
759
760 template <typename T>
762 kernel::lib ptr_lib,
763 T* ptr,
764 int64_t at,
765 T value);
766
768 kernel::lib ptr_lib,
769 int8_t* tomask,
770 const int8_t* frommask,
772 const int64_t* fromcarry,
774
776 kernel::lib ptr_lib,
778 const int8_t* mask,
779 int64_t length,
780 bool validwhen);
781
783 kernel::lib ptr_lib,
785 const int8_t* mask,
786 int64_t length,
787 bool validwhen);
788
790 kernel::lib ptr_lib,
793 const int8_t* mask,
794 int64_t length,
795 bool validwhen);
796
798 kernel::lib ptr_lib,
800 const int8_t* mask,
801 int64_t length,
802 bool validwhen);
803
805 kernel::lib ptr_lib,
811 int64_t length);
812
813 template <typename T>
815 kernel::lib ptr_lib,
816 T* index,
821 int64_t length);
822
824
825 template <typename T>
827 kernel::lib ptr_lib,
828 T* toptr,
829 int64_t length);
830
831 template <typename T>
833 kernel::lib ptr_lib,
834 int64_t* toptr,
835 const T* fromptr,
836 int64_t length,
837 int64_t width);
838
839 template <typename C, typename T>
841 kernel::lib ptr_lib,
842 C* toptr,
843 const C* fromptr,
844 const T* fromoffsets,
848
849 template <typename C, typename T>
851 kernel::lib ptr_lib,
852 bool* uniquecontents,
853 C* toptr,
854 const C* fromptr,
855 const T* fromstarts,
856 const T* fromstops,
860
861 template <typename ID>
863 kernel::lib ptr_lib,
864 ID* toptr,
865 const ID* fromptr,
870
871
872 template <typename C, typename T>
874 kernel::lib ptr_lib,
875 bool* uniquecontents,
876 C* toptr,
877 const C* fromptr,
878 const T* fromindex,
882
883
884 template <typename C, typename T, typename I>
886 kernel::lib ptr_lib,
887 bool* uniquecontents,
888 C* toptr,
889 const C* fromptr,
890 const T* fromtags,
891 const I* fromindex,
895 int64_t which);
896
897 template <typename ID>
899 kernel::lib ptr_lib,
900 ID* toptr,
901 const ID* fromptr,
904
906
907 template <typename T>
909 kernel::lib ptr_lib,
910 int64_t* tonum,
911 const T* fromstarts,
912 const T* fromstops,
913 int64_t length);
914
916 kernel::lib ptr_lib,
917 int64_t* tonum,
919 int64_t length);
920
921 template <typename T>
923 kernel::lib ptr_lib,
925 const T* outeroffsets,
927 const int64_t* inneroffsets,
929
930 template <typename T>
932 kernel::lib ptr_lib,
934 const T* outindex,
936 const int64_t* offsets,
938
939
940 template <typename T, typename I>
942 kernel::lib ptr_lib,
944 const T* fromtags,
945 const I* fromindex,
946 int64_t length,
948
949
950 template <typename T, typename I>
952 kernel::lib ptr_lib,
953 T* totags,
954 I* toindex,
956 T tag,
957 const int64_t* fromcounts,
958 int64_t length);
959
960
961 template <typename T, typename I>
963 kernel::lib ptr_lib,
964 int8_t* totags,
967 const T* fromtags,
968 const I* fromindex,
969 int64_t length,
971
972
973 template <typename T>
975 kernel::lib ptr_lib,
977 const T* fromindex,
980
981 template <typename T>
983 kernel::lib ptr_lib,
985 const int8_t* mask,
986 const T* fromindex,
987 int64_t length);
988
989
990 template <typename T>
992 kernel::lib ptr_lib,
993 int8_t* tomask,
994 const T* fromindex,
995 int64_t length);
996
998 kernel::lib ptr_lib,
999 int8_t* tomask,
1000 const int8_t* frommask,
1001 int64_t length,
1002 bool validwhen);
1003
1005 kernel::lib ptr_lib,
1006 int8_t* tomask,
1007 int64_t length);
1008
1010 kernel::lib ptr_lib,
1011 int8_t* tomask,
1012 int64_t length);
1013
1014 template <typename T>
1016 kernel::lib ptr_lib,
1018 const T* outerindex,
1020 const int32_t* innerindex,
1022
1023
1024 template <typename T>
1026 kernel::lib ptr_lib,
1028 const T* outerindex,
1030 const uint32_t* innerindex,
1032
1033
1034 template <typename T>
1036 kernel::lib ptr_lib,
1038 const T* outerindex,
1040 const int64_t* innerindex,
1042
1043 template <typename T>
1045 kernel::lib ptr_lib,
1047 const T* fromstarts,
1048 const T* fromstops,
1049 int64_t length);
1050
1052 kernel::lib ptr_lib,
1054 int64_t length,
1055 int64_t size);
1056
1057 template <typename T>
1059 kernel::lib ptr_lib,
1061 const T* fromoffsets,
1062 int64_t length);
1063
1064
1065 template <typename T>
1067 kernel::lib ptr_lib,
1069 const int64_t* fromoffsets,
1071 const T* fromstarts,
1072 const T* fromstops,
1074
1076 kernel::lib ptr_lib,
1077 const int64_t* fromoffsets,
1079 int64_t size);
1080
1082 kernel::lib ptr_lib,
1084 const int64_t* fromoffsets,
1086
1087 template <typename T>
1089 kernel::lib ptr_lib,
1090 int64_t* size,
1091 const T* fromoffsets,
1093
1094 template <typename FROM, typename TO>
1096 kernel::lib ptr_lib,
1097 TO* toptr,
1099 const FROM* fromptr,
1100 int64_t length);
1101
1102 template <typename TO>
1104 kernel::lib ptr_lib,
1105 TO* toptr,
1107 const bool* fromptr,
1108 int64_t length);
1109
1110 template <typename FROM, typename TO>
1112 kernel::lib ptr_lib,
1113 TO* toptr,
1115 const FROM* fromptr,
1116 int64_t length);
1117
1118 template <typename FROM, typename TO>
1120 kernel::lib ptr_lib,
1121 TO* toptr,
1123 const FROM* fromptr,
1124 int64_t length);
1125
1126 template <typename TO>
1128 kernel::lib ptr_lib,
1129 TO* toptr,
1131 const bool* fromptr,
1132 int64_t length);
1133
1134 template <typename FROM, typename TO>
1136 kernel::lib ptr_lib,
1137 TO* toptr,
1139 const FROM* fromptr,
1140 int64_t length,
1141 double scale);
1142
1143 template <typename FROM, typename TO>
1145 kernel::lib ptr_lib,
1146 TO* toptr,
1147 const FROM* fromshifts,
1148 int64_t length,
1149 const FROM* fromoffsets,
1151 const FROM* fromparents,
1153 const FROM* fromstarts,
1155
1156 template <typename FROM, typename TO>
1158 kernel::lib ptr_lib,
1159 TO* tostarts,
1161 TO* tostops,
1163 const FROM* fromstarts,
1164 const FROM* fromstops,
1165 int64_t length,
1166 int64_t base);
1167
1168 template <typename FROM, typename TO>
1170 kernel::lib ptr_lib,
1171 TO* toindex,
1173 const FROM* fromindex,
1174 int64_t length,
1175 int64_t base);
1176
1178 kernel::lib ptr_lib,
1181 int64_t length,
1182 int64_t base);
1183
1185 kernel::lib ptr_lib,
1186 int8_t* totags,
1188 const int8_t* fromtags,
1189 int64_t length,
1190 int64_t base);
1191
1192 template <typename FROM, typename TO>
1194 kernel::lib ptr_lib,
1195 TO* toindex,
1197 const FROM* fromindex,
1198 int64_t length);
1199
1201 kernel::lib ptr_lib,
1202 int8_t* totags,
1204 int64_t length,
1205 int64_t base);
1206
1208 kernel::lib ptr_lib,
1211 int64_t length);
1212
1213 template <typename T, typename I>
1215 kernel::lib ptr_lib,
1216 int8_t* totags,
1218 const T* outertags,
1219 const I* outerindex,
1220 const int8_t* innertags,
1221 const int32_t* innerindex,
1225 int64_t length,
1226 int64_t base);
1227
1228
1229 template <typename T, typename I>
1231 kernel::lib ptr_lib,
1232 int8_t* totags,
1234 const T* outertags,
1235 const I* outerindex,
1236 const int8_t* innertags,
1237 const uint32_t* innerindex,
1241 int64_t length,
1242 int64_t base);
1243
1244
1245 template <typename T, typename I>
1247 kernel::lib ptr_lib,
1248 int8_t* totags,
1250 const T* outertags,
1251 const I* outerindex,
1252 const int8_t* innertags,
1253 const int64_t* innerindex,
1257 int64_t length,
1258 int64_t base);
1259
1260
1261 template <typename T, typename I>
1263 kernel::lib ptr_lib,
1264 int8_t* totags,
1266 const T* fromtags,
1267 const I* fromindex,
1270 int64_t length,
1271 int64_t base);
1272
1273 template <typename T>
1275 kernel::lib ptr_lib,
1276 const T* starts,
1277 const T* stops,
1278 int64_t length,
1280
1281
1282 template <typename T>
1284 kernel::lib ptr_lib,
1285 const T* index,
1286 int64_t length,
1288 bool isoption);
1289
1290
1291 template <typename T, typename I>
1293 kernel::lib ptr_lib,
1294 const T* tags,
1295 const I* index,
1296 int64_t length,
1297 int64_t numcontents,
1298 const int64_t* lencontents);
1299
1300 template <typename T>
1302 kernel::lib ptr_lib,
1304 const T* fromindex,
1305 int64_t length);
1306
1308 kernel::lib ptr_lib,
1310 const int8_t* frommask,
1311 int64_t length);
1312
1314 kernel::lib ptr_lib,
1317 int64_t length);
1318
1320 kernel::lib ptr_lib,
1324 int64_t length);
1325
1327 kernel::lib ptr_lib,
1329 int64_t length);
1330
1332 kernel::lib ptr_lib,
1335 int64_t size,
1336 int64_t length);
1337
1338 template <typename T>
1340 kernel::lib ptr_lib,
1341 int64_t* tomin,
1342 const T* fromstarts,
1343 const T* fromstops,
1345
1346 template <typename T>
1348 kernel::lib ptr_lib,
1350 const T* fromstarts,
1351 const T* fromstops,
1354
1355 template <typename T>
1357 kernel::lib ptr_lib,
1359 const T* fromstarts,
1360 const T* fromstops,
1361 T* tostarts,
1362 T* tostops,
1364 int64_t length);
1365
1366 template <typename T>
1368 kernel::lib ptr_lib,
1370 const T* fromoffsets,
1371 int64_t length,
1372 int64_t target);
1373
1374 template <typename T>
1376 kernel::lib ptr_lib,
1377 T* tooffsets,
1378 const T* fromoffsets,
1381 int64_t* tolength);
1382
1383 template <typename T>
1385 kernel::lib ptr_lib,
1387 const T* fromoffsets,
1389 int64_t target);
1390
1392 kernel::lib ptr_lib,
1394 int64_t length);
1395
1396 template <typename T>
1398 kernel::lib ptr_lib,
1400 const T* offsets,
1401 int64_t length);
1402
1404 kernel::lib ptr_lib,
1406 int64_t size,
1407 int64_t length);
1408
1409 template <typename T>
1411 kernel::lib ptr_lib,
1412 T* toindex,
1413 int64_t n,
1414 bool replacement,
1416
1417 template <typename T>
1419 kernel::lib ptr_lib,
1422 int64_t n,
1423 bool replacement,
1424 const T* starts,
1425 const T* stops,
1426 int64_t length);
1427
1428 template <typename T>
1430 kernel::lib ptr_lib,
1431 int64_t** tocarry,
1434 int64_t n,
1435 bool replacement,
1436 const T* starts,
1437 const T* stops,
1438 int64_t length);
1439
1441 kernel::lib ptr_lib,
1442 int64_t** tocarry,
1445 int64_t n,
1446 bool replacement,
1447 int64_t size,
1448 int64_t length);
1449
1451 kernel::lib ptr_lib,
1452 int8_t* tomask,
1453 const int8_t* theirmask,
1454 const int8_t* mymask,
1455 int64_t length,
1456 bool validwhen);
1457
1459 kernel::lib ptr_lib,
1461 const uint8_t* frombitmask,
1463 bool validwhen,
1464 bool lsb_order);
1465
1467 kernel::lib ptr_lib,
1469 const uint8_t* frombitmask,
1471 bool validwhen,
1472 bool lsb_order);
1473
1475
1477 kernel::lib ptr_lib,
1478 int64_t* toptr,
1479 const int64_t* parents,
1482
1483 template <typename IN>
1485 kernel::lib ptr_lib,
1486 int64_t* toptr,
1487 const IN* fromptr,
1488 const int64_t* parents,
1491
1492 template <typename OUT, typename IN>
1494 kernel::lib ptr_lib,
1495 OUT* toptr,
1496 const IN* fromptr,
1497 const int64_t* parents,
1500
1501 template <typename IN>
1503 kernel::lib ptr_lib,
1504 bool* toptr,
1505 const IN* fromptr,
1506 const int64_t* parents,
1509
1510 template <typename OUT, typename IN>
1512 kernel::lib ptr_lib,
1513 OUT* toptr,
1514 const IN* fromptr,
1515 const int64_t* parents,
1518
1519 template <typename IN>
1521 kernel::lib ptr_lib,
1522 bool* toptr,
1523 const IN* fromptr,
1524 const int64_t* parents,
1527
1528 template <typename OUT, typename IN>
1530 kernel::lib ptr_lib,
1531 OUT* toptr,
1532 const IN* fromptr,
1533 const int64_t* parents,
1536 OUT identity);
1537
1538 template <typename OUT, typename IN>
1540 kernel::lib ptr_lib,
1541 OUT* toptr,
1542 const IN* fromptr,
1543 const int64_t* parents,
1546 OUT identity);
1547
1548 template <typename OUT, typename IN>
1550 kernel::lib ptr_lib,
1551 OUT* toptr,
1552 const IN* fromptr,
1553 const int64_t* parents,
1556
1557 template <typename OUT, typename IN>
1559 kernel::lib ptr_lib,
1560 OUT* toptr,
1561 const IN* fromptr,
1562 const int64_t* parents,
1565
1567 kernel::lib ptr_lib,
1569 int64_t length);
1570
1572 kernel::lib ptr_lib,
1575 const int64_t* offsets,
1576 int64_t length);
1577
1579 kernel::lib ptr_lib,
1582 const int64_t* offsets,
1583 int64_t length);
1584
1586 kernel::lib ptr_lib,
1594 const int64_t* offsets,
1595 int64_t length,
1596 const int64_t* parents,
1598
1600 kernel::lib ptr_lib,
1602 const int64_t* nextparents,
1604
1606 kernel::lib ptr_lib,
1609 const int64_t* distincts,
1612
1614 kernel::lib ptr_lib,
1618 const int64_t* offsets,
1619 int64_t length,
1620 const int64_t* starts,
1621 const int64_t* parents,
1624 const int64_t* nextcarry);
1625
1627 kernel::lib ptr_lib,
1629 const int64_t* offsets,
1630 int64_t length);
1631
1633 kernel::lib ptr_lib,
1635 const int64_t* parents,
1638
1639 template <typename T>
1641 kernel::lib ptr_lib,
1645 const T* index,
1647 int64_t length);
1648
1649 template <typename T>
1651 kernel::lib ptr_lib,
1653 const T* index,
1654 int64_t length);
1655
1656 template <typename T>
1658 kernel::lib ptr_lib,
1660 const T* index,
1661 int64_t length,
1662 const int64_t* shifts);
1663
1665 kernel::lib ptr_lib,
1667 const int64_t* starts,
1670
1672 kernel::lib ptr_lib,
1673 int64_t* toptr,
1675 const int64_t* parents,
1676 const int64_t* starts);
1677
1679 kernel::lib ptr_lib,
1680 int64_t* toptr,
1682 const int64_t* parents,
1683 const int64_t* starts,
1684 const int64_t* shifts);
1685
1687 kernel::lib ptr_lib,
1688 int8_t* toptr,
1689 const int64_t* parents,
1692
1694 kernel::lib ptr_lib,
1695 int8_t* toptr,
1696 const int64_t* parents,
1699
1701 kernel::lib ptr_lib,
1705 const int8_t* mask,
1706 const int64_t* parents,
1707 int64_t length,
1708 bool validwhen);
1709
1711 kernel::lib ptr_lib,
1713 const int8_t* mask,
1714 int64_t length,
1715 bool valid_when);
1716
1718 kernel::lib ptr_lib,
1720 const int8_t* mask,
1721 int64_t length,
1722 bool valid_when,
1723 const int64_t* shifts);
1724
1726
1728 kernel::lib ptr_lib,
1731 const int64_t* parents,
1733
1735 kernel::lib ptr_lib,
1737 const int64_t* parents,
1739
1740 template <typename T>
1742 kernel::lib ptr_lib,
1743 T* toptr,
1744 int64_t length,
1745 int64_t* tolength);
1746
1747 template <typename T>
1749 kernel::lib ptr_lib,
1750 const T* index,
1751 const int64_t* fromstarts,
1752 const int64_t* fromstops,
1753 int64_t length,
1756 int64_t* tolength);
1757
1758 template <typename T>
1760 kernel::lib ptr_lib,
1761 const T* index,
1762 const int64_t* fromstarts,
1763 const int64_t* fromstops,
1764 int64_t length,
1765 int64_t* tocarry);
1766
1767 template <typename T>
1769 kernel::lib ptr_lib,
1770 T* tmpptr,
1771 const int64_t* fromstarts,
1772 const int64_t* fromstops,
1773 int64_t length,
1774 bool* toequal);
1775
1776 template <typename T>
1778 kernel::lib ptr_lib,
1779 T* tmpptr,
1780 int64_t* tmpbeg,
1781 int64_t* tmpend,
1782 const int64_t* fromstarts,
1783 const int64_t* fromstops,
1784 bool ascending,
1785 int64_t length,
1787
1788 template <typename T>
1790 kernel::lib ptr_lib,
1791 int64_t* toptr,
1792 const T* fromptr,
1793 int64_t length,
1794 int64_t* tmpbeg,
1795 int64_t* tmpend,
1796 const int64_t* offsets,
1798 bool ascending,
1799 bool stable,
1801
1802 template <typename T>
1804 kernel::lib ptr_lib,
1805 int64_t* toptr,
1806 const T* fromptr,
1807 int64_t length,
1808 const int64_t* offsets,
1810 bool ascending,
1811 bool stable);
1812
1813 template <typename T>
1815 kernel::lib ptr_lib,
1816 T* toptr,
1817 const T* fromptr,
1818 int64_t length,
1819 const int64_t* offsets,
1822 bool ascending,
1823 bool stable);
1824
1826 kernel::lib ptr_lib,
1828 const int64_t* fromparents,
1829 int64_t length,
1830 const uint8_t* stringdata,
1831 const int64_t* stringstarts,
1832 const int64_t* stringstops,
1833 bool is_stable,
1834 bool is_ascending,
1835 bool is_local);
1836
1837 template <typename T>
1839 kernel::lib ptr_lib,
1840 T* toptr,
1841 const T* fromptr,
1842 const int64_t* offsets,
1845 bool ascending,
1846 bool stable);
1847
1848 template <typename T>
1850 kernel::lib ptr_lib,
1851 T* toptr,
1852 const int64_t* offsets,
1855 int64_t* tolength);
1856
1858 kernel::lib ptr_lib,
1860 const int64_t* fromindex,
1861 int64_t length);
1862
1864 kernel::lib ptr_lib,
1866 const int64_t* starts,
1867 const int64_t* parents,
1868 const int64_t parentslength,
1869 const int64_t* nextparents,
1870 const int64_t nextlen);
1871
1872 }
1873}
1874
1875#endif //AWKWARD_KERNEL_DISPATCH_H_
Filters, rearranges, and/or duplicates items in its content through an index, which has the same effe...
Definition IndexedArray.h:204
Definition kernel-dispatch.h:32
std::string awkward_library_path(kernel::lib ptr_lib)
void add_library_path_callback(kernel::lib ptr_lib, const std::shared_ptr< LibraryPathCallback > &callback)
Definition kernel-dispatch.h:26
virtual std::string library_path()=0
Used as a std::shared_ptr deleter (second argument) to overload delete ptr with delete[] ptr.
Definition kernel-dispatch.h:74
void operator()(T const *ptr)
Called by std::shared_ptr when its reference count reaches zero.
Definition kernel-dispatch.h:78
Used as a std::shared_ptr deleter (second argument) to overload delete ptr with cudaFree.
Definition kernel-dispatch.h:98
void operator()(T const *ptr)
Called by std::shared_ptr when its reference count reaches zero.
Definition kernel-dispatch.h:102
Used as a std::shared_ptr deleter (second argument) to overload delete ptr with nothing (no dereferen...
Definition kernel-dispatch.h:126
void operator()(T const *ptr)
Called by std::shared_ptr when its reference count reaches zero.
Definition kernel-dispatch.h:130
#define LIBAWKWARD_EXPORT_SYMBOL
Definition common.h:45
#define ERROR
Definition common.h:28
int64_t len(const T &self)
Definition content.h:46
py::tuple identity(const T &self)
Creates a single identity as a Python tuple of integers and strings.
EXPORT_SYMBOL void * awkward_malloc(int64_t bytelength)
EXPORT_SYMBOL void awkward_free(void const *ptr)
ERROR ListArray_fill(kernel::lib ptr_lib, TO *tostarts, int64_t tostartsoffset, TO *tostops, int64_t tostopsoffset, const FROM *fromstarts, const FROM *fromstops, int64_t length, int64_t base)
ERROR UnionArray_flatten_combine_64(kernel::lib ptr_lib, int8_t *totags, int64_t *toindex, int64_t *tooffsets, const T *fromtags, const I *fromindex, int64_t length, int64_t **offsetsraws)
ERROR IndexedArray_simplify64_to64(kernel::lib ptr_lib, int64_t *toindex, const T *outerindex, int64_t outerlength, const int64_t *innerindex, int64_t innerlength)
ERROR localindex_64(kernel::lib ptr_lib, int64_t *toindex, int64_t length)
ERROR reduce_sum_64(kernel::lib ptr_lib, OUT *toptr, const IN *fromptr, const int64_t *parents, int64_t lenparents, int64_t outlength)
ERROR ListOffsetArray_toRegularArray(kernel::lib ptr_lib, int64_t *size, const T *fromoffsets, int64_t offsetslength)
ERROR Identities_extend(kernel::lib ptr_lib, ID *toptr, const ID *fromptr, int64_t fromlength, int64_t tolength)
ERROR ListArray_getitem_carry_64(kernel::lib ptr_lib, T *tostarts, T *tostops, const T *fromstarts, const T *fromstops, const int64_t *fromcarry, int64_t lenstarts, int64_t lencarry)
ERROR NumpyArray_quick_argsort(kernel::lib ptr_lib, int64_t *toptr, const T *fromptr, int64_t length, int64_t *tmpbeg, int64_t *tmpend, const int64_t *offsets, int64_t offsetslength, bool ascending, bool stable, int64_t maxlevels)
ERROR ByteMaskedArray_reduce_next_64(kernel::lib ptr_lib, int64_t *nextcarry, int64_t *nextparents, int64_t *outindex, const int8_t *mask, const int64_t *parents, int64_t length, bool validwhen)
ERROR Identities_from_RegularArray(kernel::lib ptr_lib, ID *toptr, const ID *fromptr, int64_t size, int64_t tolength, int64_t fromlength, int64_t fromwidth)
ERROR ListOffsetArray_reduce_nonlocal_outstartsstops_64(kernel::lib ptr_lib, int64_t *outstarts, int64_t *outstops, const int64_t *distincts, int64_t lendistincts, int64_t outlength)
ERROR ListOffsetArray_flatten_offsets_64(kernel::lib ptr_lib, int64_t *tooffsets, const T *outeroffsets, int64_t outeroffsetslen, const int64_t *inneroffsets, int64_t inneroffsetslen)
ERROR reduce_min_64(kernel::lib ptr_lib, OUT *toptr, const IN *fromptr, const int64_t *parents, int64_t lenparents, int64_t outlength, OUT identity)
ERROR NumpyArray_reduce_adjust_starts_64(kernel::lib ptr_lib, int64_t *toptr, int64_t outlength, const int64_t *parents, const int64_t *starts)
ERROR IndexedArray_flatten_none2empty_64(kernel::lib ptr_lib, int64_t *outoffsets, const T *outindex, int64_t outindexlength, const int64_t *offsets, int64_t offsetslength)
ERROR IndexedArray_simplify32_to64(kernel::lib ptr_lib, int64_t *toindex, const T *outerindex, int64_t outerlength, const int32_t *innerindex, int64_t innerlength)
ERROR ListArray_combinations_64(kernel::lib ptr_lib, int64_t **tocarry, int64_t *toindex, int64_t *fromindex, int64_t n, bool replacement, const T *starts, const T *stops, int64_t length)
ERROR IndexedArray_getitem_nextcarry_64(kernel::lib ptr_lib, int64_t *tocarry, const T *fromindex, int64_t lenindex, int64_t lencontent)
ERROR RegularArray_broadcast_tooffsets_size1_64(kernel::lib ptr_lib, int64_t *tocarry, const int64_t *fromoffsets, int64_t offsetslength)
ERROR Identities_to_Identities64(kernel::lib ptr_lib, int64_t *toptr, const T *fromptr, int64_t length, int64_t width)
ERROR RegularArray_getitem_next_range_64(kernel::lib ptr_lib, int64_t *tocarry, int64_t regular_start, int64_t step, int64_t len, int64_t size, int64_t nextsize)
ERROR NumpyArray_reduce_mask_ByteMaskedArray_64(kernel::lib ptr_lib, int8_t *toptr, const int64_t *parents, int64_t lenparents, int64_t outlength)
ERROR Identities_from_IndexedArray(kernel::lib ptr_lib, bool *uniquecontents, C *toptr, const C *fromptr, const T *fromindex, int64_t tolength, int64_t fromlength, int64_t fromwidth)
ERROR Index_carry_64(kernel::lib ptr_lib, T *toindex, const T *fromindex, const int64_t *carry, int64_t lenfromindex, int64_t length)
ERROR zero_mask8(kernel::lib ptr_lib, int8_t *tomask, int64_t length)
ERROR BitMaskedArray_to_IndexedOptionArray64(kernel::lib ptr_lib, int64_t *toindex, const uint8_t *frombitmask, int64_t bitmasklength, bool validwhen, bool lsb_order)
ERROR ListOffsetArray_reduce_nonlocal_nextstarts_64(kernel::lib ptr_lib, int64_t *nextstarts, const int64_t *nextparents, int64_t nextlen)
ERROR IndexedArray_reduce_next_nonlocal_nextshifts_64(kernel::lib ptr_lib, int64_t *nextshifts, const T *index, int64_t length)
ERROR ListArray_rpad_and_clip_length_axis1(kernel::lib ptr_lib, int64_t *tolength, const T *fromstarts, const T *fromstops, int64_t target, int64_t lenstarts)
ERROR Index_iscontiguous(kernel::lib ptr_lib, bool *result, const T *fromindex, int64_t length)
ERROR UnionArray_simplify8_64_to8_64(kernel::lib ptr_lib, int8_t *totags, int64_t *toindex, const T *outertags, const I *outerindex, const int8_t *innertags, const int64_t *innerindex, int64_t towhich, int64_t innerwhich, int64_t outerwhich, int64_t length, int64_t base)
ERROR RegularArray_combinations_64(kernel::lib ptr_lib, int64_t **tocarry, int64_t *toindex, int64_t *fromindex, int64_t n, bool replacement, int64_t size, int64_t length)
ERROR ListOffsetArray_compact_offsets_64(kernel::lib ptr_lib, int64_t *tooffsets, const T *fromoffsets, int64_t length)
ERROR ListArray_getitem_jagged_descend_64(kernel::lib ptr_lib, int64_t *tooffsets, const int64_t *slicestarts, const int64_t *slicestops, int64_t sliceouterlen, const T *fromstarts, const T *fromstops)
ERROR UnionArray_validity(kernel::lib ptr_lib, const T *tags, const I *index, int64_t length, int64_t numcontents, const int64_t *lencontents)
ERROR ByteMaskedArray_mask8(kernel::lib ptr_lib, int8_t *tomask, const int8_t *frommask, int64_t length, bool validwhen)
ERROR ListArray_getitem_next_array_advanced_64(kernel::lib ptr_lib, int64_t *tocarry, int64_t *toadvanced, const T *fromstarts, const T *fromstops, const int64_t *fromarray, const int64_t *fromadvanced, int64_t lenstarts, int64_t lenarray, int64_t lencontent)
ERROR IndexedArray_flatten_nextcarry_64(kernel::lib ptr_lib, int64_t *tocarry, const T *fromindex, int64_t lenindex, int64_t lencontent)
ERROR ListOffsetArray_local_preparenext_64(kernel::lib ptr_lib, int64_t *tocarry, const int64_t *fromindex, int64_t length)
ERROR ListArray_localindex_64(kernel::lib ptr_lib, int64_t *toindex, const T *offsets, int64_t length)
ERROR IndexedArray_fill_to64_count(kernel::lib ptr_lib, int64_t *toindex, int64_t toindexoffset, int64_t length, int64_t base)
ERROR Identities_from_ListOffsetArray(kernel::lib ptr_lib, C *toptr, const C *fromptr, const T *fromoffsets, int64_t tolength, int64_t fromlength, int64_t fromwidth)
ERROR ByteMaskedArray_overlay_mask8(kernel::lib ptr_lib, int8_t *tomask, const int8_t *theirmask, const int8_t *mymask, int64_t length, bool validwhen)
ERROR missing_repeat_64(kernel::lib ptr_lib, int64_t *outindex, const int64_t *index, int64_t indexlength, int64_t repetitions, int64_t regularsize)
ERROR RegularArray_getitem_next_at_64(kernel::lib ptr_lib, int64_t *tocarry, int64_t at, int64_t len, int64_t size)
ERROR NumpyArray_subrange_equal(kernel::lib ptr_lib, T *tmpptr, const int64_t *fromstarts, const int64_t *fromstops, int64_t length, bool *toequal)
ERROR NumpyArray_fill_tocomplex(kernel::lib ptr_lib, TO *toptr, int64_t tooffset, const FROM *fromptr, int64_t length)
ERROR IndexedArray_fill(kernel::lib ptr_lib, TO *toindex, int64_t toindexoffset, const FROM *fromindex, int64_t length, int64_t base)
ERROR UnionArray_fillindex(kernel::lib ptr_lib, TO *toindex, int64_t toindexoffset, const FROM *fromindex, int64_t length)
ERROR IndexedArray_reduce_next_64(kernel::lib ptr_lib, int64_t *nextcarry, int64_t *nextparents, int64_t *outindex, const T *index, int64_t *parents, int64_t length)
ERROR RegularArray_getitem_next_range_spreadadvanced_64(kernel::lib ptr_lib, int64_t *toadvanced, const int64_t *fromadvanced, int64_t len, int64_t nextsize)
ERROR Index_nones_as_index_64(kernel::lib ptr_lib, int64_t *toindex, int64_t length)
ERROR slicearray_ravel_64(kernel::lib ptr_lib, int64_t *toptr, const int64_t *fromptr, int64_t ndim, const int64_t *shape, const int64_t *strides)
ERROR ListOffsetArray_reduce_local_nextparents_64(kernel::lib ptr_lib, int64_t *nextparents, const int64_t *offsets, int64_t length)
ERROR ListOffsetArray_reduce_nonlocal_preparenext_64(kernel::lib ptr_lib, int64_t *nextcarry, int64_t *nextparents, int64_t nextlen, int64_t *maxnextparents, int64_t *distincts, int64_t distinctslen, int64_t *offsetscopy, const int64_t *offsets, int64_t length, const int64_t *parents, int64_t maxcount)
ERROR NumpyArray_argsort(kernel::lib ptr_lib, int64_t *toptr, const T *fromptr, int64_t length, const int64_t *offsets, int64_t offsetslength, bool ascending, bool stable)
ERROR NumpyArray_contiguous_init_64(kernel::lib ptr_lib, int64_t *toptr, int64_t skip, int64_t stride)
ERROR ListArray_getitem_next_array_64(kernel::lib ptr_lib, int64_t *tocarry, int64_t *toadvanced, const T *fromstarts, const T *fromstops, const int64_t *fromarray, int64_t lenstarts, int64_t lenarray, int64_t lencontent)
ERROR NumpyArray_fill_frombool(kernel::lib ptr_lib, TO *toptr, int64_t tooffset, const bool *fromptr, int64_t length)
ERROR RegularArray_getitem_carry_64(kernel::lib ptr_lib, int64_t *tocarry, const int64_t *fromcarry, int64_t lencarry, int64_t size)
ERROR reduce_prod_bool_64(kernel::lib ptr_lib, bool *toptr, const IN *fromptr, const int64_t *parents, int64_t lenparents, int64_t outlength)
ERROR NumpyArray_getitem_next_null_64(kernel::lib ptr_lib, uint8_t *toptr, const uint8_t *fromptr, int64_t len, int64_t stride, const int64_t *pos)
ERROR RegularArray_num_64(kernel::lib ptr_lib, int64_t *tonum, int64_t size, int64_t length)
ERROR reduce_max_64(kernel::lib ptr_lib, OUT *toptr, const IN *fromptr, const int64_t *parents, int64_t lenparents, int64_t outlength, OUT identity)
ERROR NumpyArray_contiguous_next_64(kernel::lib ptr_lib, int64_t *topos, const int64_t *frompos, int64_t len, int64_t skip, int64_t stride)
ERROR NumpyArray_copy(kernel::lib ptr_lib, uint8_t *toptr, const uint8_t *fromptr, int64_t len)
ERROR UnionArray_fillna_64(kernel::lib ptr_lib, int64_t *toindex, const T *fromindex, int64_t length)
ERROR IndexedArray_overlay_mask8_to64(kernel::lib ptr_lib, int64_t *toindex, const int8_t *mask, const T *fromindex, int64_t length)
ERROR UnionArray_filltags_to8_from8(kernel::lib ptr_lib, int8_t *totags, int64_t totagsoffset, const int8_t *fromtags, int64_t length, int64_t base)
ERROR NumpyArray_unique_strings(kernel::lib ptr_lib, T *toptr, const int64_t *offsets, int64_t offsetslength, int64_t *outoffsets, int64_t *tolength)
ERROR NumpyArray_getitem_next_array_advanced_64(kernel::lib ptr_lib, int64_t *nextcarryptr, const int64_t *carryptr, const int64_t *advancedptr, const int64_t *flatheadptr, int64_t lencarry, int64_t skip)
ERROR IndexedArray_index_of_nulls(kernel::lib ptr_lib, int64_t *toindex, const T *fromindex, int64_t lenindex, const int64_t *parents, const int64_t *starts)
void regularize_rangeslice(int64_t *start, int64_t *stop, bool posstep, bool hasstart, bool hasstop, int64_t length)
ERROR sorting_ranges(kernel::lib ptr_lib, int64_t *toindex, int64_t tolength, const int64_t *parents, int64_t parentslength)
const std::string lib_tostring(kernel::lib ptr_lib, void *ptr, const std::string &indent, const std::string &pre, const std::string &post)
Produces a <Lib> element for 'tostring' to indicate the kernel library.
ERROR IndexedArray_getitem_nextcarry_outindex_64(kernel::lib ptr_lib, int64_t *tocarry, T *toindex, const T *fromindex, int64_t lenindex, int64_t lencontent)
ERROR IndexedArray_ranges_next_64(kernel::lib ptr_lib, const T *index, const int64_t *fromstarts, const int64_t *fromstops, int64_t length, int64_t *tostarts, int64_t *tostops, int64_t *tolength)
ERROR ByteMaskedArray_toIndexedOptionArray64(kernel::lib ptr_lib, int64_t *toindex, const int8_t *mask, int64_t length, bool validwhen)
ERROR ListOffsetArray_rpad_and_clip_axis1_64(kernel::lib ptr_lib, int64_t *toindex, const T *fromoffsets, int64_t length, int64_t target)
UniquePtr< T > unique_malloc(kernel::lib ptr_lib, int64_t bytelength)
Definition kernel-dispatch.h:200
ERROR ListArray_getitem_jagged_apply_64(kernel::lib ptr_lib, int64_t *tooffsets, int64_t *tocarry, const int64_t *slicestarts, const int64_t *slicestops, int64_t sliceouterlen, const int64_t *sliceindex, int64_t sliceinnerlen, const T *fromstarts, const T *fromstops, int64_t contentlen)
ERROR IndexedArray_numnull(kernel::lib ptr_lib, int64_t *numnull, const T *fromindex, int64_t lenindex)
ERROR ByteMaskedArray_getitem_nextcarry_outindex_64(kernel::lib ptr_lib, int64_t *tocarry, int64_t *toindex, const int8_t *mask, int64_t length, bool validwhen)
ERROR ListOffsetArray_reduce_nonlocal_maxcount_offsetscopy_64(kernel::lib ptr_lib, int64_t *maxcount, int64_t *offsetscopy, const int64_t *offsets, int64_t length)
ERROR RegularArray_getitem_jagged_expand_64(kernel::lib ptr_lib, int64_t *multistarts, int64_t *multistops, const int64_t *singleoffsets, int64_t regularsize, int64_t regularlength)
ERROR ListArray_getitem_next_range_counts_64(kernel::lib ptr_lib, int64_t *total, const T *fromoffsets, int64_t lenstarts)
ERROR BitMaskedArray_to_ByteMaskedArray(kernel::lib ptr_lib, int8_t *tobytemask, const uint8_t *frombitmask, int64_t bitmasklength, bool validwhen, bool lsb_order)
ERROR ListArray_rpad_axis1_64(kernel::lib ptr_lib, int64_t *toindex, const T *fromstarts, const T *fromstops, T *tostarts, T *tostops, int64_t target, int64_t length)
ERROR ByteMaskedArray_numnull(kernel::lib ptr_lib, int64_t *numnull, const int8_t *mask, int64_t length, bool validwhen)
ERROR IndexedArray_ranges_carry_next_64(kernel::lib ptr_lib, const T *index, const int64_t *fromstarts, const int64_t *fromstops, int64_t length, int64_t *tocarry)
ERROR copy_to(kernel::lib to_lib, kernel::lib from_lib, void *to_ptr, void *from_ptr, int64_t bytelength)
Internal Function an array buffer from library FROM to library TO, usually between main memory and a ...
ERROR ListArray_num_64(kernel::lib ptr_lib, int64_t *tonum, const T *fromstarts, const T *fromstops, int64_t length)
ERROR NumpyArray_sort(kernel::lib ptr_lib, T *toptr, const T *fromptr, int64_t length, const int64_t *offsets, int64_t offsetslength, int64_t parentslength, bool ascending, bool stable)
std::shared_ptr< LibraryCallback > lib_callback
ERROR ListArray_validity(kernel::lib ptr_lib, const T *starts, const T *stops, int64_t length, int64_t lencontent)
const std::string fully_qualified_cache_key(kernel::lib ptr_lib, const std::string &cache_key)
FIXME.
ERROR reduce_prod_64(kernel::lib ptr_lib, OUT *toptr, const IN *fromptr, const int64_t *parents, int64_t lenparents, int64_t outlength)
ERROR reduce_count_64(kernel::lib ptr_lib, int64_t *toptr, const int64_t *parents, int64_t lenparents, int64_t outlength)
ERROR ListOffsetArray_argsort_strings(kernel::lib ptr_lib, int64_t *tocarry, const int64_t *fromparents, int64_t length, const uint8_t *stringdata, const int64_t *stringstarts, const int64_t *stringstops, bool is_stable, bool is_ascending, bool is_local)
ERROR ListOffsetArray_reduce_global_startstop_64(kernel::lib ptr_lib, int64_t *globalstart, int64_t *globalstop, const int64_t *offsets, int64_t length)
ERROR NumpyArray_getitem_boolean_nonzero_64(kernel::lib ptr_lib, int64_t *toptr, const int8_t *fromptr, int64_t length, int64_t stride)
ERROR NumpyArray_getitem_next_array_64(kernel::lib ptr_lib, int64_t *nextcarryptr, int64_t *nextadvancedptr, const int64_t *carryptr, const int64_t *flatheadptr, int64_t lencarry, int64_t lenflathead, int64_t skip)
ERROR Content_getitem_next_missing_jagged_getmaskstartstop(kernel::lib ptr_lib, int64_t *index_in, int64_t *offsets_in, int64_t *mask_out, int64_t *starts_out, int64_t *stops_out, int64_t length)
ERROR RegularArray_reduce_nonlocal_preparenext_64(kernel::lib ptr_lib, int64_t *nextcarry, int64_t *nextparents, const int64_t *parents, int64_t size, int64_t length)
ERROR ListOffsetArray_reduce_local_outoffsets_64(kernel::lib ptr_lib, int64_t *outoffsets, const int64_t *parents, int64_t lenparents, int64_t outlength)
ERROR index_rpad_and_clip_axis0_64(kernel::lib ptr_lib, int64_t *toindex, int64_t target, int64_t length)
ERROR UnionArray_filltags_to8_const(kernel::lib ptr_lib, int8_t *totags, int64_t totagsoffset, int64_t length, int64_t base)
ERROR ListArray_getitem_next_at_64(kernel::lib ptr_lib, int64_t *tocarry, const T *fromstarts, const T *fromstops, int64_t lenstarts, int64_t at)
ERROR NumpyArray_fill_tocomplex_frombool(kernel::lib ptr_lib, TO *toptr, int64_t tooffset, const bool *fromptr, int64_t length)
ERROR reduce_argmax_64(kernel::lib ptr_lib, OUT *toptr, const IN *fromptr, const int64_t *parents, int64_t lenparents, int64_t outlength)
ERROR ByteMaskedArray_reduce_next_nonlocal_nextshifts_64(kernel::lib ptr_lib, int64_t *nextshifts, const int8_t *mask, int64_t length, bool valid_when)
const int64_t lib_device_num(kernel::lib ptr_lib, void *ptr)
Returns the number of the device associated with the pointer.
ERROR ListArray_min_range(kernel::lib ptr_lib, int64_t *tomin, const T *fromstarts, const T *fromstops, int64_t lenstarts)
ERROR MaskedArray_getitem_next_jagged_project(kernel::lib ptr_lib, T *index, int64_t *starts_in, int64_t *stops_in, int64_t *starts_out, int64_t *stops_out, int64_t length)
ERROR ListArray_getitem_next_range_carrylength(kernel::lib ptr_lib, int64_t *carrylength, const T *fromstarts, const T *fromstops, int64_t lenstarts, int64_t start, int64_t stop, int64_t step)
ERROR NumpyArray_contiguous_copy_64(kernel::lib ptr_lib, uint8_t *toptr, const uint8_t *fromptr, int64_t len, int64_t stride, const int64_t *pos)
ERROR UnionArray_simplify_one_to8_64(kernel::lib ptr_lib, int8_t *totags, int64_t *toindex, const T *fromtags, const I *fromindex, int64_t towhich, int64_t fromwhich, int64_t length, int64_t base)
ERROR unique(kernel::lib ptr_lib, T *toptr, int64_t length, int64_t *tolength)
void * acquire_symbol(void *handle, const std::string &symbol_name)
Internal utility function to return an opaque ptr if an symbol is found for the corresponding handle....
ERROR carry_arange(kernel::lib ptr_lib, T *toptr, int64_t length)
ERROR UnionArray_simplify8_32_to8_64(kernel::lib ptr_lib, int8_t *totags, int64_t *toindex, const T *outertags, const I *outerindex, const int8_t *innertags, const int32_t *innerindex, int64_t towhich, int64_t innerwhich, int64_t outerwhich, int64_t length, int64_t base)
ERROR reduce_argmin_64(kernel::lib ptr_lib, OUT *toptr, const IN *fromptr, const int64_t *parents, int64_t lenparents, int64_t outlength)
ERROR RegularArray_getitem_next_array_64(kernel::lib ptr_lib, int64_t *tocarry, int64_t *toadvanced, const int64_t *fromarray, int64_t len, int64_t lenarray, int64_t size)
ERROR ListArray_broadcast_tooffsets_64(kernel::lib ptr_lib, int64_t *tocarry, const int64_t *fromoffsets, int64_t offsetslength, const T *fromstarts, const T *fromstops, int64_t lencontent)
ERROR NumpyArray_getitem_next_range_advanced_64(kernel::lib ptr_lib, int64_t *nextcarryptr, int64_t *nextadvancedptr, const int64_t *carryptr, const int64_t *advancedptr, int64_t lencarry, int64_t lenhead, int64_t skip, int64_t start, int64_t step)
ERROR one_mask8(kernel::lib ptr_lib, int8_t *tomask, int64_t length)
ERROR new_Identities(kernel::lib ptr_lib, T *toptr, int64_t length)
ERROR RegularArray_compact_offsets_64(kernel::lib ptr_lib, int64_t *tooffsets, int64_t length, int64_t size)
ERROR ListArray_compact_offsets_64(kernel::lib ptr_lib, int64_t *tooffsets, const T *fromstarts, const T *fromstops, int64_t length)
ERROR NumpyArray_getitem_next_at_64(kernel::lib ptr_lib, int64_t *nextcarryptr, const int64_t *carryptr, int64_t lencarry, int64_t skip, int64_t at)
ERROR Identities_getitem_carry_64(kernel::lib ptr_lib, ID *newidentitiesptr, const ID *identitiesptr, const int64_t *carryptr, int64_t lencarry, int64_t width, int64_t length)
ERROR RegularArray_rpad_and_clip_axis1_64(kernel::lib ptr_lib, int64_t *toindex, int64_t target, int64_t size, int64_t length)
ERROR slicemissing_check_same(kernel::lib ptr_lib, bool *same, const int8_t *bytemask, const int64_t *missingindex, int64_t length)
ERROR reduce_sum_bool_64(kernel::lib ptr_lib, bool *toptr, const IN *fromptr, const int64_t *parents, int64_t lenparents, int64_t outlength)
ERROR ByteMaskedArray_reduce_next_nonlocal_nextshifts_fromshifts_64(kernel::lib ptr_lib, int64_t *nextshifts, const int8_t *mask, int64_t length, bool valid_when, const int64_t *shifts)
std::unique_ptr< T, UniquePtrDeleter< T > > UniquePtr
Definition kernel-dispatch.h:197
ERROR ListArray_getitem_jagged_carrylen_64(kernel::lib ptr_lib, int64_t *carrylen, const int64_t *slicestarts, const int64_t *slicestops, int64_t sliceouterlen)
ERROR ListArray_getitem_jagged_shrink_64(kernel::lib ptr_lib, int64_t *tocarry, int64_t *tosmalloffsets, int64_t *tolargeoffsets, const int64_t *slicestarts, const int64_t *slicestops, int64_t length, const int64_t *missing)
ERROR IndexedArray_validity(kernel::lib ptr_lib, const T *index, int64_t length, int64_t lencontent, bool isoption)
ERROR RegularArray_getitem_next_array_advanced_64(kernel::lib ptr_lib, int64_t *tocarry, int64_t *toadvanced, const int64_t *fromadvanced, const int64_t *fromarray, int64_t len, int64_t lenarray, int64_t size)
ERROR ListArray_getitem_next_range_64(kernel::lib ptr_lib, T *tooffsets, int64_t *tocarry, const T *fromstarts, const T *fromstops, int64_t lenstarts, int64_t start, int64_t stop, int64_t step)
ERROR UnionArray_flatten_length_64(kernel::lib ptr_lib, int64_t *total_length, const T *fromtags, const I *fromindex, int64_t length, int64_t **offsetsraws)
ERROR ListArray_getitem_jagged_numvalid_64(kernel::lib ptr_lib, int64_t *numvalid, const int64_t *slicestarts, const int64_t *slicestops, int64_t length, const int64_t *missing, int64_t missinglength)
ERROR UnionArray_project_64(kernel::lib ptr_lib, int64_t *lenout, int64_t *tocarry, const T *fromtags, const I *fromindex, int64_t length, int64_t which)
ERROR IndexedArray_simplifyU32_to64(kernel::lib ptr_lib, int64_t *toindex, const T *outerindex, int64_t outerlength, const uint32_t *innerindex, int64_t innerlength)
ERROR NumpyArray_quick_sort(kernel::lib ptr_lib, T *tmpptr, int64_t *tmpbeg, int64_t *tmpend, const int64_t *fromstarts, const int64_t *fromstops, bool ascending, int64_t length, int64_t maxlevels)
ERROR Index_carry_nocheck_64(kernel::lib ptr_lib, T *toindex, const T *fromindex, const int64_t *carry, int64_t length)
ERROR IndexedArray_mask8(kernel::lib ptr_lib, int8_t *tomask, const T *fromindex, int64_t length)
ERROR NumpyArray_fill_scaled(kernel::lib ptr_lib, TO *toptr, int64_t tooffset, const FROM *fromptr, int64_t length, double scale)
T NumpyArray_getitem_at0(kernel::lib ptr_lib, T *ptr)
Internal utility kernel to avoid raw pointer access.
ERROR NumpyArray_contiguous_copy_from_many_64(kernel::lib ptr_lib, uint8_t *toptr, const uint8_t **fromptrs, int64_t *fromlens, int64_t len, int64_t stride, const int64_t *pos)
ERROR regularize_arrayslice_64(kernel::lib ptr_lib, int64_t *flatheadptr, int64_t lenflathead, int64_t length)
T index_getitem_at_nowrap(kernel::lib ptr_lib, T *ptr, int64_t at)
ERROR IndexedOptionArray_rpad_and_clip_mask_axis1_64(kernel::lib ptr_lib, int64_t *toindex, const int8_t *frommask, int64_t length)
ERROR NumpyArray_sort_asstrings(kernel::lib ptr_lib, T *toptr, const T *fromptr, const int64_t *offsets, int64_t offsetslength, int64_t *outoffsets, bool ascending, bool stable)
ERROR RegularArray_reduce_local_nextparents_64(kernel::lib ptr_lib, int64_t *nextparents, int64_t size, int64_t length)
ERROR NumpyArray_rearrange_shifted(kernel::lib ptr_lib, TO *toptr, const FROM *fromshifts, int64_t length, const FROM *fromoffsets, int64_t offsetslength, const FROM *fromparents, int64_t parentslength, const FROM *fromstarts, int64_t startslength)
ERROR ListArray_getitem_next_range_spreadadvanced_64(kernel::lib ptr_lib, int64_t *toadvanced, const int64_t *fromadvanced, const T *fromoffsets, int64_t lenstarts)
ERROR content_reduce_zeroparents_64(kernel::lib ptr_lib, int64_t *toparents, int64_t length)
ERROR ByteMaskedArray_getitem_nextcarry_64(kernel::lib ptr_lib, int64_t *tocarry, const int8_t *mask, int64_t length, bool validwhen)
std::shared_ptr< T > malloc(kernel::lib ptr_lib, int64_t bytelength)
Internal Function to allocate an empty array of a given length with a given type. The bytelength para...
Definition kernel-dispatch.h:171
lib
Definition kernel-dispatch.h:20
ERROR ListOffsetArray_getitem_adjust_offsets_64(kernel::lib ptr_lib, int64_t *tooffsets, int64_t *tononzero, const int64_t *fromoffsets, int64_t length, const int64_t *nonzero, int64_t nonzerolength)
ERROR ListOffsetArray_rpad_axis1_64(kernel::lib ptr_lib, int64_t *toindex, const T *fromoffsets, int64_t fromlength, int64_t target)
ERROR NumpyArray_reduce_adjust_starts_shifts_64(kernel::lib ptr_lib, int64_t *toptr, int64_t outlength, const int64_t *parents, const int64_t *starts, const int64_t *shifts)
ERROR index_rpad_and_clip_axis1_64(kernel::lib ptr_lib, int64_t *tostarts, int64_t *tostops, int64_t target, int64_t length)
decltype(kernel::array_deleter< T >()) UniquePtrDeleter
Definition kernel-dispatch.h:195
ERROR ListOffsetArray_getitem_adjust_offsets_index_64(kernel::lib ptr_lib, int64_t *tooffsets, int64_t *tononzero, const int64_t *fromoffsets, int64_t length, const int64_t *index, int64_t indexlength, const int64_t *nonzero, int64_t nonzerolength, const int8_t *originalmask, int64_t masklength)
ERROR reduce_countnonzero_64(kernel::lib ptr_lib, int64_t *toptr, const IN *fromptr, const int64_t *parents, int64_t lenparents, int64_t outlength)
void * acquire_handle(kernel::lib ptr_lib)
Internal utility function to return an opaque ptr if an handle is acquired for the specified ptr_lib....
ERROR UnionArray_fillindex_count_64(kernel::lib ptr_lib, int64_t *toindex, int64_t toindexoffset, int64_t length)
ERROR UnionArray_nestedfill_tags_index_64(kernel::lib ptr_lib, T *totags, I *toindex, int64_t *tmpstarts, T tag, const int64_t *fromcounts, int64_t length)
ERROR ByteMaskedArray_getitem_carry_64(kernel::lib ptr_lib, int8_t *tomask, const int8_t *frommask, int64_t lenmask, const int64_t *fromcarry, int64_t lencarry)
ERROR sorting_ranges_length(kernel::lib ptr_lib, int64_t *tolength, const int64_t *parents, int64_t parentslength)
ERROR UnionArray_regular_index(kernel::lib ptr_lib, I *toindex, I *current, int64_t size, const T *fromtags, int64_t length)
ERROR RegularArray_localindex_64(kernel::lib ptr_lib, int64_t *toindex, int64_t size, int64_t length)
ERROR IndexedArray_reduce_next_fix_offsets_64(kernel::lib ptr_lib, int64_t *outoffsets, const int64_t *starts, int64_t startslength, int64_t outindexlength)
ERROR ListOffsetArray_reduce_nonlocal_nextshifts_64(kernel::lib ptr_lib, int64_t *nummissing, int64_t *missing, int64_t *nextshifts, const int64_t *offsets, int64_t length, const int64_t *starts, const int64_t *parents, int64_t maxcount, int64_t nextlen, const int64_t *nextcarry)
ERROR NumpyArray_fill_fromcomplex(kernel::lib ptr_lib, TO *toptr, int64_t tooffset, const FROM *fromptr, int64_t length)
ERROR Index_to_Index64(kernel::lib ptr_lib, int64_t *toptr, const T *fromptr, int64_t length)
ERROR ListArray_combinations_length_64(kernel::lib ptr_lib, int64_t *totallen, int64_t *tooffsets, int64_t n, bool replacement, const T *starts, const T *stops, int64_t length)
ERROR NumpyArray_getitem_boolean_numtrue(kernel::lib ptr_lib, int64_t *numtrue, const int8_t *fromptr, int64_t length, int64_t stride)
ERROR ListOffsetArray_rpad_length_axis1(kernel::lib ptr_lib, T *tooffsets, const T *fromoffsets, int64_t fromlength, int64_t target, int64_t *tolength)
ERROR NumpyArray_fill(kernel::lib ptr_lib, TO *toptr, int64_t tooffset, const FROM *fromptr, int64_t length)
ERROR RegularArray_broadcast_tooffsets_64(kernel::lib ptr_lib, const int64_t *fromoffsets, int64_t offsetslength, int64_t size)
ERROR IndexedArray_getitem_nextcarry_outindex_mask_64(kernel::lib ptr_lib, int64_t *tocarry, int64_t *toindex, const T *fromindex, int64_t lenindex, int64_t lencontent)
ERROR RegularArray_getitem_next_array_regularize_64(kernel::lib ptr_lib, int64_t *toarray, const int64_t *fromarray, int64_t lenarray, int64_t size)
ERROR UnionArray_simplify8_U32_to8_64(kernel::lib ptr_lib, int8_t *totags, int64_t *toindex, const T *outertags, const I *outerindex, const int8_t *innertags, const uint32_t *innerindex, int64_t towhich, int64_t innerwhich, int64_t outerwhich, int64_t length, int64_t base)
ERROR Identities_from_UnionArray(kernel::lib ptr_lib, bool *uniquecontents, C *toptr, const C *fromptr, const T *fromtags, const I *fromindex, int64_t tolength, int64_t fromlength, int64_t fromwidth, int64_t which)
ERROR combinations(kernel::lib ptr_lib, T *toindex, int64_t n, bool replacement, int64_t singlelen)
ERROR UnionArray_regular_index_getsize(kernel::lib ptr_lib, int64_t *size, const T *fromtags, int64_t length)
ERROR ListArray_getitem_jagged_expand_64(kernel::lib ptr_lib, int64_t *multistarts, int64_t *multistops, const int64_t *singleoffsets, int64_t *tocarry, const T *fromstarts, const T *fromstops, int64_t jaggedsize, int64_t length)
ERROR IndexedArray_getitem_carry_64(kernel::lib ptr_lib, T *toindex, const T *fromindex, const int64_t *fromcarry, int64_t lenindex, int64_t lencarry)
ERROR IndexedArray_reduce_next_nonlocal_nextshifts_fromshifts_64(kernel::lib ptr_lib, int64_t *nextshifts, const T *index, int64_t length, const int64_t *shifts)
ERROR IndexedArray_local_preparenext_64(kernel::lib ptr_lib, int64_t *tocarry, const int64_t *starts, const int64_t *parents, const int64_t parentslength, const int64_t *nextparents, const int64_t nextlen)
ERROR NumpyArray_getitem_next_range_64(kernel::lib ptr_lib, int64_t *nextcarryptr, const int64_t *carryptr, int64_t lencarry, int64_t lenhead, int64_t skip, int64_t start, int64_t step)
ERROR IndexedArray_getitem_adjust_outindex_64(kernel::lib ptr_lib, int8_t *tomask, int64_t *toindex, int64_t *tononzero, const int64_t *fromindex, int64_t fromindexlength, const int64_t *nonzero, int64_t nonzerolength)
void index_setitem_at_nowrap(kernel::lib ptr_lib, T *ptr, int64_t at, T value)
ERROR Identities_from_ListArray(kernel::lib ptr_lib, bool *uniquecontents, C *toptr, const C *fromptr, const T *fromstarts, const T *fromstops, int64_t tolength, int64_t fromlength, int64_t fromwidth)
Definition BitMaskedArray.h:15