[python-arrayfire] 25/250: Updating the utility functions and adding relevant tests

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Mon Mar 28 22:59:27 UTC 2016


This is an automated email from the git hooks/post-receive script.

ghisvail-guest pushed a commit to branch debian/master
in repository python-arrayfire.

commit 52f2c19822381e8682fdaf93b520e0bf997e649f
Author: Pavan Yalamanchili <pavan at arrayfire.com>
Date:   Mon Jun 22 13:39:14 2015 -0400

    Updating the utility functions and adding relevant tests
---
 arrayfire/array.py    | 86 ++++++++++++++++++++++++++++++++++++++++++++++-----
 arrayfire/util.py     |  6 ++++
 tests/simple_array.py | 16 ++++++++--
 3 files changed, 97 insertions(+), 11 deletions(-)

diff --git a/arrayfire/array.py b/arrayfire/array.py
index fe4407c..c0d01bd 100644
--- a/arrayfire/array.py
+++ b/arrayfire/array.py
@@ -117,10 +117,15 @@ class array(object):
         if (self.arr.value != 0):
             clib.af_release_array(self.arr)
 
-    def numdims(self):
-        nd = c_uint(0)
-        safe_call(clib.af_get_numdims(pointer(nd), self.arr))
-        return nd.value
+    def elements(self):
+        num = c_ulonglong(0)
+        safe_call(clib.af_get_elements(pointer(num), self.arr))
+        return num.value
+
+    def type(self):
+        dty = c_int(f32.value)
+        safe_call(clib.af_get_type(pointer(dty), self.arr))
+        return dty.value
 
     def dims(self):
         d0 = c_longlong(0)
@@ -131,10 +136,75 @@ class array(object):
         dims = (d0.value,d1.value,d2.value,d3.value)
         return dims[:self.numdims()]
 
-    def type(self):
-        dty = c_int(f32.value)
-        safe_call(clib.af_get_type(pointer(dty), self.arr))
-        return dty.value
+    def numdims(self):
+        nd = c_uint(0)
+        safe_call(clib.af_get_numdims(pointer(nd), self.arr))
+        return nd.value
+
+    def is_empty(self):
+        res = c_bool(False)
+        safe_call(clib.af_is_empty(pointer(res), self.arr))
+        return res.value
+
+    def is_scalar(self):
+        res = c_bool(False)
+        safe_call(clib.af_is_scalar(pointer(res), self.arr))
+        return res.value
+
+    def is_row(self):
+        res = c_bool(False)
+        safe_call(clib.af_is_row(pointer(res), self.arr))
+        return res.value
+
+    def is_column(self):
+        res = c_bool(False)
+        safe_call(clib.af_is_column(pointer(res), self.arr))
+        return res.value
+
+    def is_vector(self):
+        res = c_bool(False)
+        safe_call(clib.af_is_vector(pointer(res), self.arr))
+        return res.value
+
+    def is_complex(self):
+        res = c_bool(False)
+        safe_call(clib.af_is_complex(pointer(res), self.arr))
+        return res.value
+
+    def is_real(self):
+        res = c_bool(False)
+        safe_call(clib.af_is_real(pointer(res), self.arr))
+        return res.value
+
+    def is_double(self):
+        res = c_bool(False)
+        safe_call(clib.af_is_double(pointer(res), self.arr))
+        return res.value
+
+    def is_single(self):
+        res = c_bool(False)
+        safe_call(clib.af_is_single(pointer(res), self.arr))
+        return res.value
+
+    def is_real_floating(self):
+        res = c_bool(False)
+        safe_call(clib.af_is_realfloating(pointer(res), self.arr))
+        return res.value
+
+    def is_floating(self):
+        res = c_bool(False)
+        safe_call(clib.af_is_floating(pointer(res), self.arr))
+        return res.value
+
+    def is_integer(self):
+        res = c_bool(False)
+        safe_call(clib.af_is_integer(pointer(res), self.arr))
+        return res.value
+
+    def is_bool(self):
+        res = c_bool(False)
+        safe_call(clib.af_is_bool(pointer(res), self.arr))
+        return res.value
 
     def __add__(self, other):
         return binary_func(self, other, clib.af_add)
diff --git a/arrayfire/util.py b/arrayfire/util.py
index a1b8586..3e527cd 100644
--- a/arrayfire/util.py
+++ b/arrayfire/util.py
@@ -31,6 +31,12 @@ def safe_call(af_error):
         clib.af_get_last_error(pointer(c_err_str), pointer(c_err_len))
         raise RuntimeError(to_str(c_err_str), af_error)
 
+def get_version():
+    major=c_int(0)
+    minor=c_int(0)
+    patch=c_int(0)
+    safe_call(clib.af_get_version(pointer(major), pointer(minor), pointer(patch)))
+    return major,minor,patch
 
 to_dtype = {'f' : f32,
             'd' : f64,
diff --git a/tests/simple_array.py b/tests/simple_array.py
index 8d5001b..b97fa1b 100644
--- a/tests/simple_array.py
+++ b/tests/simple_array.py
@@ -4,12 +4,22 @@ import array as host
 
 a = af.array([1, 2, 3])
 af.print_array(a)
-print(a.numdims(), a.dims(), a.type())
+print(a.elements(), a.type(), a.dims(), a.numdims())
+print(a.is_empty(), a.is_scalar(), a.is_column(), a.is_row())
+print(a.is_complex(), a.is_real(), a.is_double(), a.is_single())
+print(a.is_real_floating(), a.is_floating(), a.is_integer(), a.is_bool())
+
 
 a = af.array(host.array('d', [4, 5, 6]))
 af.print_array(a)
-print(a.numdims(), a.dims(), a.type())
+print(a.elements(), a.type(), a.dims(), a.numdims())
+print(a.is_empty(), a.is_scalar(), a.is_column(), a.is_row())
+print(a.is_complex(), a.is_real(), a.is_double(), a.is_single())
+print(a.is_real_floating(), a.is_floating(), a.is_integer(), a.is_bool())
 
 a = af.array(host.array('l', [7, 8, 9] * 4), (2, 5))
 af.print_array(a)
-print(a.numdims(), a.dims(), a.type())
+print(a.elements(), a.type(), a.dims(), a.numdims())
+print(a.is_empty(), a.is_scalar(), a.is_column(), a.is_row())
+print(a.is_complex(), a.is_real(), a.is_double(), a.is_single())
+print(a.is_real_floating(), a.is_floating(), a.is_integer(), a.is_bool())

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/python-arrayfire.git



More information about the debian-science-commits mailing list