Skip to content

Commit 27010f4

Browse files
committed
FEAT: Add support for copy and constructing af.array from another array
1 parent 944cc93 commit 27010f4

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

arrayfire/array.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,10 @@ def __init__(self, src=None, dims=(0,)):
9696

9797
if src is not None:
9898

99+
if (isinstance(src, array)):
100+
safe_call(clib.af_retain_array(ct.pointer(self.arr), src.arr))
101+
return
102+
99103
host = __import__("array")
100104

101105
if isinstance(src, host.array):
@@ -124,6 +128,11 @@ def __init__(self, src=None, dims=(0,)):
124128

125129
self.arr = create_array(buf, numdims, idims, dtype)
126130

131+
def copy(self):
132+
out = array()
133+
safe_call(clib.af_retain_array(ct.pointer(out.arr), self.arr))
134+
return out
135+
127136
def __del__(self):
128137
if (self.arr.value != 0):
129138
clib.af_release_array(self.arr)

tests/simple_array.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,9 @@
3232
print(a.is_empty(), a.is_scalar(), a.is_column(), a.is_row())
3333
print(a.is_complex(), a.is_real(), a.is_double(), a.is_single())
3434
print(a.is_real_floating(), a.is_floating(), a.is_integer(), a.is_bool())
35+
36+
b = af.array(a)
37+
af.print_array(b)
38+
39+
c = a.copy()
40+
af.print_array(c)

0 commit comments

Comments
 (0)