-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathset_operations.py
31 lines (24 loc) · 1.14 KB
/
set_operations.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import ctypes
from arrayfire_wrapper.defines import AFArray
from arrayfire_wrapper.lib._utility import call_from_clib
def set_intersect(first: AFArray, second: AFArray, is_unique: bool, /) -> AFArray:
"""
source: https://arrayfire.org/docs/group__set__func__intersect.htm#ga985f9332c5f858eec66c717881ef2607
"""
out = AFArray.create_null_pointer()
call_from_clib(set_intersect.__name__, ctypes.pointer(out), first, second, ctypes.c_bool(is_unique))
return out
def set_union(first: AFArray, second: AFArray, is_unique: bool, /) -> AFArray:
"""
source: https://arrayfire.org/docs/group__set__func__union.htm#gaabeead0c0dc360db9398e9703dbb273f
"""
out = AFArray.create_null_pointer()
call_from_clib(set_union.__name__, ctypes.pointer(out), first, second, ctypes.c_bool(is_unique))
return out
def set_unique(arr: AFArray, is_sorted: bool, /) -> AFArray:
"""
source: https://arrayfire.org/docs/group__set__func__unique.htm#ga6afa1de48cbbc4b2df530c2530087943
"""
out = AFArray.create_null_pointer()
call_from_clib(set_unique.__name__, ctypes.pointer(out), arr, ctypes.c_bool(is_sorted))
return out