[arrayfire] 22/75: Adding functions to get raw pointer out of Array<T>
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Mon Feb 29 08:01:10 UTC 2016
This is an automated email from the git hooks/post-receive script.
ghisvail-guest pushed a commit to branch dfsg-clean
in repository arrayfire.
commit 7bc56a78cb31bff14bac6b5aa9d08c181c2be65c
Author: Pavan Yalamanchili <pavan at arrayfire.com>
Date: Thu Feb 11 16:45:20 2016 -0500
Adding functions to get raw pointer out of Array<T>
---
src/api/c/internal.cpp | 24 ++++++++++++------------
src/backend/cpu/Array.hpp | 7 +++++++
src/backend/cuda/Array.hpp | 7 +++++++
src/backend/opencl/Array.hpp | 7 +++++++
4 files changed, 33 insertions(+), 12 deletions(-)
diff --git a/src/api/c/internal.cpp b/src/api/c/internal.cpp
index 8afdefa..47c62c6 100644
--- a/src/api/c/internal.cpp
+++ b/src/api/c/internal.cpp
@@ -109,18 +109,18 @@ af_err af_get_raw_ptr(void **ptr, const af_array arr)
af_dtype ty = getInfo(arr).getType();
switch (ty) {
- case f32: res = (void *)getArray<float >(arr).get(); break;
- case f64: res = (void *)getArray<double >(arr).get(); break;
- case c32: res = (void *)getArray<cfloat >(arr).get(); break;
- case c64: res = (void *)getArray<cdouble>(arr).get(); break;
- case u32: res = (void *)getArray<uint >(arr).get(); break;
- case s32: res = (void *)getArray<int >(arr).get(); break;
- case u64: res = (void *)getArray<uintl >(arr).get(); break;
- case s64: res = (void *)getArray<intl >(arr).get(); break;
- case u16: res = (void *)getArray<ushort >(arr).get(); break;
- case s16: res = (void *)getArray<short >(arr).get(); break;
- case b8 : res = (void *)getArray<char >(arr).get(); break;
- case u8 : res = (void *)getArray<uchar >(arr).get(); break;
+ case f32: res = (void *)getRawPtr(getArray<float >(arr)); break;
+ case f64: res = (void *)getRawPtr(getArray<double >(arr)); break;
+ case c32: res = (void *)getRawPtr(getArray<cfloat >(arr)); break;
+ case c64: res = (void *)getRawPtr(getArray<cdouble>(arr)); break;
+ case u32: res = (void *)getRawPtr(getArray<uint >(arr)); break;
+ case s32: res = (void *)getRawPtr(getArray<int >(arr)); break;
+ case u64: res = (void *)getRawPtr(getArray<uintl >(arr)); break;
+ case s64: res = (void *)getRawPtr(getArray<intl >(arr)); break;
+ case u16: res = (void *)getRawPtr(getArray<ushort >(arr)); break;
+ case s16: res = (void *)getRawPtr(getArray<short >(arr)); break;
+ case b8 : res = (void *)getRawPtr(getArray<char >(arr)); break;
+ case u8 : res = (void *)getRawPtr(getArray<uchar >(arr)); break;
default: TYPE_ERROR(6, ty);
}
diff --git a/src/backend/cpu/Array.hpp b/src/backend/cpu/Array.hpp
index 0c6e701..2a3afcf 100644
--- a/src/backend/cpu/Array.hpp
+++ b/src/backend/cpu/Array.hpp
@@ -88,6 +88,12 @@ namespace cpu
return (void *)ptr;
}
+ template<typename T>
+ void *getRawPtr(const Array<T>& arr)
+ {
+ return (void *)(arr.get(false));
+ }
+
// Array Array Implementation
template<typename T>
class Array
@@ -227,6 +233,7 @@ namespace cpu
friend void destroyArray<T>(Array<T> *arr);
friend void *getDevicePtr<T>(const Array<T>& arr);
+ friend void *getRawPtr<T>(const Array<T>& arr);
};
}
diff --git a/src/backend/cuda/Array.hpp b/src/backend/cuda/Array.hpp
index 03bd8b3..7678754 100644
--- a/src/backend/cuda/Array.hpp
+++ b/src/backend/cuda/Array.hpp
@@ -91,6 +91,12 @@ namespace cuda
}
template<typename T>
+ void *getRawPtr(const Array<T>& arr)
+ {
+ return (void *)(arr.get(false));
+ }
+
+ template<typename T>
class Array
{
ArrayInfo info; // This must be the first element of Array<T>
@@ -239,6 +245,7 @@ namespace cuda
friend void destroyArray<T>(Array<T> *arr);
friend void *getDevicePtr<T>(const Array<T>& arr);
+ friend void *getRawPtr<T>(const Array<T>& arr);
};
}
diff --git a/src/backend/opencl/Array.hpp b/src/backend/opencl/Array.hpp
index f2a217e..8c5bda9 100644
--- a/src/backend/opencl/Array.hpp
+++ b/src/backend/opencl/Array.hpp
@@ -83,6 +83,12 @@ namespace opencl
}
template<typename T>
+ void *getRawPtr(const Array<T>& arr)
+ {
+ return (void *)(arr.get());
+ }
+
+ template<typename T>
class Array
{
ArrayInfo info; // This must be the first element of Array<T>
@@ -261,6 +267,7 @@ namespace opencl
friend void destroyArray<T>(Array<T> *arr);
friend void *getDevicePtr<T>(const Array<T>& arr);
+ friend void *getRawPtr<T>(const Array<T>& arr);
};
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/arrayfire.git
More information about the debian-science-commits
mailing list