[arrayfire] 317/408: Updating documentation and adding version guards for for 3.1
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Mon Sep 21 19:12:21 UTC 2015
This is an automated email from the git hooks/post-receive script.
ghisvail-guest pushed a commit to branch debian/sid
in repository arrayfire.
commit f34693e71692a29c06ccb762da526e72eaf9efd3
Author: Pavan Yalamanchili <pavan at arrayfire.com>
Date: Mon Aug 24 02:17:13 2015 -0400
Updating documentation and adding version guards for for 3.1
---
CMakeModules/Version.cmake | 2 +-
CMakeModules/version.h.in | 2 +-
docs/details/image.dox | 11 -----------
docs/details/vision.dox | 13 +++++++++++++
include/af/algorithm.h | 17 +++++++++++++++-
include/af/arith.h | 5 ++++-
include/af/array.h | 42 +++++++++++++++-------------------------
include/af/cuda.h | 8 ++++++++
include/af/data.h | 23 ++++++++++++++++++++--
include/af/defines.h | 5 +++++
include/af/device.h | 4 ++++
include/af/graphics.h | 2 ++
include/af/image.h | 48 ++++++++++++++++++++--------------------------
include/af/index.h | 4 +++-
include/af/signal.h | 40 ++++++++++++++++++++++++++++++++++++++
include/af/util.h | 24 +++++++++++++++++++++++
include/af/vision.h | 45 ++++++++++++++++++++++++++++++++++++++++++-
src/api/c/dog.cpp | 1 +
src/api/cpp/dog.cpp | 2 +-
test/dog.cpp | 1 +
20 files changed, 225 insertions(+), 74 deletions(-)
diff --git a/CMakeModules/Version.cmake b/CMakeModules/Version.cmake
index 608c56e..26d1e8c 100644
--- a/CMakeModules/Version.cmake
+++ b/CMakeModules/Version.cmake
@@ -6,7 +6,7 @@ SET(AF_VERSION_MINOR "1")
SET(AF_VERSION_PATCH "0")
SET(AF_VERSION "${AF_VERSION_MAJOR}.${AF_VERSION_MINOR}.${AF_VERSION_PATCH}")
-SET(AF_API_VERSION ${AF_VERSION_MAJOR}${AF_VERSION_MINOR})
+SET(AF_API_VERSION_CURRENT ${AF_VERSION_MAJOR}${AF_VERSION_MINOR})
# From CMake 3.0.0 CMAKE_<LANG>_COMPILER_ID is AppleClang for OSX machines
# that use clang for compilations
diff --git a/CMakeModules/version.h.in b/CMakeModules/version.h.in
index 71ecd3d..99ee03f 100644
--- a/CMakeModules/version.h.in
+++ b/CMakeModules/version.h.in
@@ -13,6 +13,6 @@
#define AF_VERSION_MAJOR @AF_VERSION_MAJOR@
#define AF_VERSION_MINOR @AF_VERSION_MINOR@
#define AF_VERSION_PATCH @AF_VERSION_PATCH@
-#define AF_API_VERSION @AF_API_VERSION@
+#define AF_API_VERSION_CURRENT @AF_API_VERSION_CURRENT@
#define AF_REVISION "@GIT_COMMIT_HASH@"
#define AF_CMPLR_STR "@AF_COMPILER_STRING@"
diff --git a/docs/details/image.dox b/docs/details/image.dox
index 4a9cb9b..d9e91e9 100644
--- a/docs/details/image.dox
+++ b/docs/details/image.dox
@@ -678,17 +678,6 @@ are specializations of the transform function.
=======================================================================
-\defgroup image_func_dog DoG
-\ingroup imageflt_mat
-
-\brief Difference of Gaussians
-
-Given an image, this function computes two different versions of smoothed
-input image using the difference smoothing parameters and subtracts one
-from the other and returns the result.
-
-=======================================================================
-
\defgroup image_func_sat SAT
\ingroup imageflt_mat
diff --git a/docs/details/vision.dox b/docs/details/vision.dox
index d381068..549c1f9 100644
--- a/docs/details/vision.dox
+++ b/docs/details/vision.dox
@@ -111,6 +111,17 @@ equal to the number of features contained in the query array.
=======================================================================
+\defgroup cv_func_dog DoG
+\ingroup featdetect_mat
+
+\brief Difference of Gaussians
+
+Given an image, this function computes two different versions of smoothed
+input image using the difference smoothing parameters and subtracts one
+from the other and returns the result.
+
+=======================================================================
+
\defgroup cv_func_match_template matchTemplate
\ingroup match_mat
@@ -120,5 +131,7 @@ Template matching is an image processing technique to find small patches of an i
match a given template image. A more in depth discussion on the topic can be found
[here](http://en.wikipedia.org/wiki/Template_matching).
+
+
@}
*/
diff --git a/include/af/algorithm.h b/include/af/algorithm.h
index 1bb3a0d..792d6e2 100644
--- a/include/af/algorithm.h
+++ b/include/af/algorithm.h
@@ -28,6 +28,7 @@ namespace af
*/
AFAPI array sum(const array &in, const int dim = -1);
+#if AF_API_VERSION >= 31
/**
C++ Interface for sum of elements in an array while replacing nan values
@@ -40,6 +41,7 @@ namespace af
*/
AFAPI array sum(const array &in, const int dim, const double nanval);
+#endif
/**
C++ Interface for product of elements in an array
@@ -54,6 +56,7 @@ namespace af
*/
AFAPI array product(const array &in, const int dim = -1);
+#if AF_API_VERSION >= 31
/**
C++ Interface for product of elements in an array while replacing nan values
@@ -66,7 +69,7 @@ namespace af
*/
AFAPI array product(const array &in, const int dim, const double nanval);
-
+#endif
/**
C++ Interface for minimum values in an array
@@ -148,6 +151,7 @@ namespace af
*/
template<typename T> T sum(const array &in);
+#if AF_API_VERSION >= 31
/**
C++ Interface for sum of all elements in an array while replacing nan values
@@ -158,6 +162,7 @@ namespace af
\ingroup reduce_func_sum
*/
template<typename T> T sum(const array &in, double nanval);
+#endif
/**
C++ Interface for product of all elements in an array
@@ -169,6 +174,7 @@ namespace af
*/
template<typename T> T product(const array &in);
+#if AF_API_VERSION >= 31
/**
C++ Interface for product of all elements in an array while replacing nan values
@@ -179,6 +185,7 @@ namespace af
\ingroup reduce_func_product
*/
template<typename T> T product(const array &in, double nanval);
+#endif
/**
C++ Interface for getting minimum value of an array
@@ -440,6 +447,7 @@ extern "C" {
*/
AFAPI af_err af_sum(af_array *out, const af_array in, const int dim);
+#if AF_API_VERSION >= 31
/**
C Interface for sum of elements in an array while replacing nans
@@ -452,6 +460,7 @@ extern "C" {
\ingroup reduce_func_sum
*/
AFAPI af_err af_sum_nan(af_array *out, const af_array in, const int dim, const double nanval);
+#endif
/**
C Interface for product of elements in an array
@@ -465,6 +474,7 @@ extern "C" {
*/
AFAPI af_err af_product(af_array *out, const af_array in, const int dim);
+#if AF_API_VERSION >= 31
/**
C Interface for product of elements in an array while replacing nans
@@ -477,6 +487,7 @@ extern "C" {
\ingroup reduce_func_product
*/
AFAPI af_err af_product_nan(af_array *out, const af_array in, const int dim, const double nanval);
+#endif
/**
C Interface for minimum values in an array
@@ -552,6 +563,7 @@ extern "C" {
*/
AFAPI af_err af_sum_all(double *real, double *imag, const af_array in);
+#if AF_API_VERSION >= 31
/**
C Interface for sum of all elements in an array while replacing nans
@@ -566,6 +578,7 @@ extern "C" {
\ingroup reduce_func_sum
*/
AFAPI af_err af_sum_nan_all(double *real, double *imag, const af_array in, const double nanval);
+#endif
/**
C Interface for product of all elements in an array
@@ -581,6 +594,7 @@ extern "C" {
*/
AFAPI af_err af_product_all(double *real, double *imag, const af_array in);
+#if AF_API_VERSION >= 31
/**
C Interface for product of all elements in an array while replacing nans
@@ -595,6 +609,7 @@ extern "C" {
\ingroup reduce_func_product
*/
AFAPI af_err af_product_nan_all(double *real, double *imag, const af_array in, const double nanval);
+#endif
/**
C Interface for getting minimum value of an array
diff --git a/include/af/arith.h b/include/af/arith.h
index d8e6bb2..d258e83 100644
--- a/include/af/arith.h
+++ b/include/af/arith.h
@@ -386,7 +386,7 @@ namespace af
AFAPI array pow2 (const array &in);
/// @}
-
+#if AF_API_VERSION >= 31
/// C++ Interface for calculating sigmoid function of an array
///
/// \param[in] in is input
@@ -394,6 +394,7 @@ namespace af
///
/// \ingroup arith_func_sigmoid
AFAPI array sigmoid (const array &in);
+#endif
/// C++ Interface for exponential of an array
///
@@ -1173,6 +1174,7 @@ extern "C" {
*/
AFAPI af_err af_exp (af_array *out, const af_array in);
+#if AF_API_VERSION >= 31
/**
C Interface for calculating sigmoid function of an array
@@ -1183,6 +1185,7 @@ extern "C" {
\ingroup arith_func_sigmoid
*/
AFAPI af_err af_sigmoid (af_array *out, const af_array in);
+#endif
/**
C Interface for exponential of an array minus 1
diff --git a/include/af/array.h b/include/af/array.h
index 270c541..f763a75 100644
--- a/include/af/array.h
+++ b/include/af/array.h
@@ -32,13 +32,15 @@ namespace af
///
/// \brief Updates the internal \ref af_array object
///
- /// /note This function will reduce the reference of the previous
+ /// \note This function will reduce the reference of the previous
/// \ref af_array object
///
void set(af_array tmp);
///
- /// \brief Intermediate data class. Used for assignment and indexing
+ /// \brief Intermediate data class. Used for assignment and indexing.
+ ///
+ /// \note This class is for internal book keeping while indexing. This class is not intended for use in user code.
///
class AFAPI array_proxy
{
@@ -295,15 +297,6 @@ namespace af
/**
Create a column vector on the device using a host/device pointer
- This function can be used to transfer data from a host or device
- pointer to an array object on the device with one column. The type
- of the array is automatically matched to the type of the data.
-
- Depending on the specified size of the column vector, the data will
- be copied partially or completely. However, the user needs to be
- careful to ensure that the array size is not larger than the number
- of elements in the input buffer.
-
\param[in] dim0 number of elements in the column vector
\param[in] pointer pointer (points to a buffer on the host/device)
\param[in] src source of the data (default is afHost, can also
@@ -321,6 +314,9 @@ namespace af
// = 99
\endcode
+
+ \note If \p src is \ref afHost, the first \p dim0 elements are copied. If \p src is \ref afDevice, no copy is done; the array object just wraps the device pointer.
+
*/
template<typename T>
array(dim_t dim0,
@@ -330,14 +326,6 @@ namespace af
/**
Create a 2D array on the device using a host/device pointer
- This function copies data from the location specified by the
- pointer to a 2D array on the device. The data is arranged in
- "column-major" format (similar to that used by FORTRAN).
-
- Note that this is a synchronous copy. The elements are not
- actually filled until this array is evaluated or used in the
- evaluation of some other expression that uses this array object.
-
\param[in] dim0 number of rows
\param[in] dim1 number of columns
\param[in] pointer pointer (points to a buffer on the host/device)
@@ -350,6 +338,8 @@ namespace af
\endcode
\image html 2dArray.png
+
+ \note If \p src is \ref afHost, the first \p dim0 * \p dim1 elements are copied. If \p src is \ref afDevice, no copy is done; the array object just wraps the device pointer. The data is treated as column major format when performing linear algebra operations.
*/
template<typename T>
array(dim_t dim0, dim_t dim1,
@@ -359,10 +349,6 @@ namespace af
/**
Create a 3D array on the device using a host/device pointer
- This function copies data from the location specified by the pointer
- to a 3D array on the device. The data is arranged in "column-major"
- format (similar to that used by FORTRAN).
-
\param[in] dim0 first dimension
\param[in] dim1 second dimension
\param[in] dim2 third dimension
@@ -377,6 +363,8 @@ namespace af
array A(3, 3, 2, h_buffer); // copy host data to 3D device array
\endcode
+ \note If \p src is \ref afHost, the first \p dim0 * \p dim1 * \p dim2 elements are copied. If \p src is \ref afDevice, no copy is done; the array object just wraps the device pointer. The data is treated as column major format when performing linear algebra operations.
+
\image html 3dArray.png
*/
template<typename T>
@@ -387,10 +375,6 @@ namespace af
/**
Create a 4D array on the device using a host/device pointer
- This function copies data from the location specified by the pointer
- to a 4D array on the device. The data is arranged in "column-major"
- format (similar to that used by FORTRAN).
-
\param[in] dim0 first dimension
\param[in] dim1 second dimension
\param[in] dim2 third dimension
@@ -407,6 +391,8 @@ namespace af
array A(2, 2, 2, 2, h_buffer); // copy host data to 4D device array
\endcode
+
+ \note If \p src is \ref afHost, the first \p dim0 * \p dim1 * \p dim2 * \p dim3 elements are copied. If \p src is \ref afDevice, no copy is done; the array object just wraps the device pointer. The data is treated as column major format when performing linear algebra operations.
*/
template<typename T>
array(dim_t dim0, dim_t dim1, dim_t dim2, dim_t dim3,
@@ -442,6 +428,8 @@ namespace af
// Note the "column-major" ordering
// used in ArrayFire
\endcode
+
+ \note If \p src is \ref afHost, the first dims.elements() elements are copied. If \p src is \ref afDevice, no copy is done; the array object just wraps the device pointer. The data is treated as column major format when performing linear algebra operations.
*/
template<typename T>
explicit
diff --git a/include/af/cuda.h b/include/af/cuda.h
index 6b178d2..b3cf921 100644
--- a/include/af/cuda.h
+++ b/include/af/cuda.h
@@ -16,9 +16,13 @@
extern "C" {
#endif
+#if AF_API_VERSION >= 31
AFAPI af_err afcu_get_stream(cudaStream_t* stream, int id);
+#endif
+#if AF_API_VERSION >= 31
AFAPI af_err afcu_get_native_id(int* nativeid, int id);
+#endif
#ifdef __cplusplus
}
@@ -29,6 +33,7 @@ AFAPI af_err afcu_get_native_id(int* nativeid, int id);
namespace afcu
{
+#if AF_API_VERSION >= 31
static inline cudaStream_t getStream(int id)
{
cudaStream_t retVal;
@@ -37,7 +42,9 @@ static inline cudaStream_t getStream(int id)
throw af::exception("Failed to get CUDA stream from ArrayFire");
return retVal;
}
+#endif
+#if AF_API_VERSION >= 31
static inline int getNativeId(int id)
{
int retVal;
@@ -46,6 +53,7 @@ static inline int getNativeId(int id)
throw af::exception("Failed to get CUDA device native id from ArrayFire");
return retVal;
}
+#endif
}
#endif
diff --git a/include/af/data.h b/include/af/data.h
index acbc0f6..b2516a3 100644
--- a/include/af/data.h
+++ b/include/af/data.h
@@ -489,6 +489,7 @@ namespace af
*/
AFAPI array upper(const array &in, bool is_unit_diag=false);
+#if AF_API_VERSION >= 31
/**
\param[in] cond is the conditional array
\param[in] a is the array containing elements from the true part of the condition
@@ -498,7 +499,9 @@ namespace af
\ingroup data_func_select
*/
AFAPI array select(const array &cond, const array &a, const array &b);
+#endif
+#if AF_API_VERSION >= 31
/**
\param[in] cond is the conditional array
\param[in] a is the array containing elements from the true part of the condition
@@ -508,7 +511,9 @@ namespace af
\ingroup data_func_select
*/
AFAPI array select(const array &cond, const array &a, const double &b);
+#endif
+#if AF_API_VERSION >= 31
/**
\param[in] cond is the conditional array
\param[in] a is a scalar assigned to \p out when \p cond is true
@@ -518,7 +523,9 @@ namespace af
\ingroup data_func_select
*/
AFAPI array select(const array &cond, const double &a, const array &b);
+#endif
+#if AF_API_VERSION >= 31
/**
\param[inout] a is the array whose values are replaced with values from \p b when \p cond is true
\param[in] cond is the conditional array
@@ -527,7 +534,9 @@ namespace af
\ingroup data_func_replace
*/
AFAPI void replace(array &a, const array &cond, const array &b);
+#endif
+#if AF_API_VERSION >= 31
/**
\param[inout] a is the array whose values are replaced with values from \p b when \p cond is true
\param[in] cond is the conditional array
@@ -536,7 +545,7 @@ namespace af
\ingroup data_func_replace
*/
AFAPI void replace(array &a, const array &cond, const double &b);
-
+#endif
/**
@}
@@ -809,6 +818,7 @@ extern "C" {
@}
*/
+#if AF_API_VERSION >= 31
/**
\param[out] out is the output containing elements of \p a when \p cond is true else elements from \p b
\param[in] cond is the conditional array
@@ -818,7 +828,9 @@ extern "C" {
\ingroup data_func_select
*/
AFAPI af_err af_select(af_array *out, const af_array cond, const af_array a, const af_array b);
+#endif
+#if AF_API_VERSION >= 31
/**
\param[out] out is the output containing elements of \p a when \p cond is true else elements from \p b
\param[in] cond is the conditional array
@@ -828,7 +840,9 @@ extern "C" {
\ingroup data_func_select
*/
AFAPI af_err af_select_scalar_r(af_array *out, const af_array cond, const af_array a, const double b);
+#endif
+#if AF_API_VERSION >= 31
/**
\param[out] out is the output containing elements of \p a when \p cond is true else elements from \p b
\param[in] cond is the conditional array
@@ -838,8 +852,9 @@ extern "C" {
\ingroup data_func_select
*/
AFAPI af_err af_select_scalar_l(af_array *out, const af_array cond, const double a, const af_array b);
+#endif
-
+#if AF_API_VERSION >= 31
/**
\param[inout] a is the array whose values are replaced by \p b when \p cond is true
\param[in] cond is the conditional array
@@ -848,7 +863,9 @@ extern "C" {
\ingroup data_func_replace
*/
AFAPI af_err af_replace(af_array a, const af_array cond, const af_array b);
+#endif
+#if AF_API_VERSION >= 31
/**
\param[inout] a is the array whose values are replaced by \p b when \p cond is true
\param[in] cond is the conditional array
@@ -857,6 +874,8 @@ extern "C" {
\ingroup data_func_replace
*/
AFAPI af_err af_replace_scalar(af_array a, const af_array cond, const double b);
+#endif
+
#ifdef __cplusplus
}
#endif
diff --git a/include/af/defines.h b/include/af/defines.h
index 13cba0c..21c089d 100644
--- a/include/af/defines.h
+++ b/include/af/defines.h
@@ -59,6 +59,11 @@
typedef long long intl;
typedef unsigned long long uintl;
+#include <af/version.h>
+#ifndef AF_API_VERSION
+#define AF_API_VERSION AF_API_VERSION_CURRENT
+#endif
+
typedef enum {
///
/// The function returned successfully
diff --git a/include/af/device.h b/include/af/device.h
index 0717d59..826863e 100644
--- a/include/af/device.h
+++ b/include/af/device.h
@@ -252,6 +252,7 @@ extern "C" {
*/
AFAPI af_err af_get_mem_step_size(size_t *step_bytes);
+#if AF_API_VERSION >= 31
/**
Lock the device buffer in the memory manager.
@@ -259,7 +260,9 @@ extern "C" {
\ingroup device_func_mem
*/
AFAPI af_err af_lock_device_ptr(const af_array arr);
+#endif
+#if AF_API_VERSION >= 31
/**
Unlock device buffer in the memory manager.
@@ -267,6 +270,7 @@ extern "C" {
\ingroup device_func_mem
*/
AFAPI af_err af_unlock_device_ptr(const af_array arr);
+#endif
/**
Get the device pointer and lock the buffer in memory manager.
diff --git a/include/af/graphics.h b/include/af/graphics.h
index 81dc7da..5b83e6b 100644
--- a/include/af/graphics.h
+++ b/include/af/graphics.h
@@ -239,6 +239,7 @@ AFAPI af_err af_set_position(const af_window wind, const unsigned x, const unsig
*/
AFAPI af_err af_set_title(const af_window wind, const char* const title);
+#if AF_API_VERSION >= 31
/**
C Interface wrapper for setting window position
@@ -252,6 +253,7 @@ AFAPI af_err af_set_title(const af_window wind, const char* const title);
\ingroup gfx_func_window
*/
AFAPI af_err af_set_size(const af_window wind, const unsigned w, const unsigned h);
+#endif
/**
C Interface wrapper for drawing an array as an image
diff --git a/include/af/image.h b/include/af/image.h
index f2e4d04..84dd7ac 100644
--- a/include/af/image.h
+++ b/include/af/image.h
@@ -8,6 +8,7 @@
********************************************************/
#pragma once
+#include <af/defines.h>
#include <af/features.h>
#ifdef __cplusplus
@@ -503,18 +504,7 @@ AFAPI array rgb2hsv(const array& in);
*/
AFAPI array colorSpace(const array& image, const CSpace to, const CSpace from);
-/**
- C++ Interface wrapper for Difference of Gaussians
-
- \param[in] in is input image
- \param[in] radius1 is the radius of first gaussian kernel
- \param[in] radius2 is the radius of second gaussian kernel
- \return Difference of smoothed inputs
-
- \ingroup image_func_dog
- */
-AFAPI array dog(const array& in, const int radius1, const int radius2);
-
+#if AF_API_VERSION >= 31
/**
C++ Interface wrapper for unwrap
@@ -533,7 +523,9 @@ AFAPI array dog(const array& in, const int radius1, const int radius2);
AFAPI array unwrap(const array& in, const dim_t wx, const dim_t wy,
const dim_t sx, const dim_t sy, const dim_t px=0, const dim_t py=0,
const bool is_column = true);
+#endif
+#if AF_API_VERSION >= 31
/**
C++ Interface wrapper for wrap
@@ -557,7 +549,9 @@ AFAPI array wrap(const array& in,
const dim_t sx, const dim_t sy,
const dim_t px = 0, const dim_t py = 0,
const bool is_column = true);
+#endif
+#if AF_API_VERSION >= 31
/**
C++ Interface wrapper for summed area tables
@@ -567,7 +561,9 @@ AFAPI array wrap(const array& in,
\ingroup image_func_sat
*/
AFAPI array sat(const array& in);
+#endif
+#if AF_API_VERSION >= 31
/**
C++ Interface for converting YCbCr to RGB
@@ -581,7 +577,9 @@ AFAPI array sat(const array& in);
\ingroup image_func_ycbcr2rgb
*/
AFAPI array ycbcr2rgb(const array& in, const YCCStd standard=AF_YCC_601);
+#endif
+#if AF_API_VERSION >= 31
/**
C++ Interface for converting RGB to YCbCr
@@ -595,6 +593,7 @@ AFAPI array ycbcr2rgb(const array& in, const YCCStd standard=AF_YCC_601);
\ingroup image_func_rgb2ycbcr
*/
AFAPI array rgb2ycbcr(const array& in, const YCCStd standard=AF_YCC_601);
+#endif
}
#endif
@@ -1075,20 +1074,7 @@ extern "C" {
*/
AFAPI af_err af_color_space(af_array *out, const af_array image, const af_cspace_t to, const af_cspace_t from);
- /**
- C Interface wrapper for Difference of Gaussians
-
- \param[out] out is difference of smoothed inputs
- \param[in] in is input image
- \param[in] radius1 is the radius of first gaussian kernel
- \param[in] radius2 is the radius of second gaussian kernel
- \return \ref AF_SUCCESS if the computation is is successful,
- otherwise an appropriate error code is returned.
-
- \ingroup image_func_dog
- */
- AFAPI af_err af_dog(af_array *out, const af_array in, const int radius1, const int radius2);
-
+#if AF_API_VERSION >= 31
/**
C Interface wrapper for unwrap
@@ -1109,7 +1095,9 @@ extern "C" {
AFAPI af_err af_unwrap(af_array *out, const af_array in, const dim_t wx, const dim_t wy,
const dim_t sx, const dim_t sy, const dim_t px, const dim_t py,
const bool is_column);
+#endif
+#if AF_API_VERSION >= 31
/**
C Interface wrapper for wrap
@@ -1138,7 +1126,9 @@ extern "C" {
const dim_t sx, const dim_t sy,
const dim_t px, const dim_t py,
const bool is_column);
+#endif
+#if AF_API_VERSION >= 31
/**
C Interface wrapper for summed area tables
@@ -1150,7 +1140,9 @@ extern "C" {
\ingroup image_func_sat
*/
AFAPI af_err af_sat(af_array *out, const af_array in);
+#endif
+#if AF_API_VERSION >= 31
/**
C Interface for converting YCbCr to RGB
@@ -1166,7 +1158,9 @@ extern "C" {
\ingroup image_func_ycbcr2rgb
*/
AFAPI af_err af_ycbcr2rgb(af_array* out, const af_array in, const af_ycc_std standard);
+#endif
+#if AF_API_VERSION >= 31
/**
C Interface for converting RGB to YCbCr
@@ -1182,7 +1176,7 @@ extern "C" {
\ingroup image_func_rgb2ycbcr
*/
AFAPI af_err af_rgb2ycbcr(af_array* out, const af_array in, const af_ycc_std standard);
-
+#endif
#ifdef __cplusplus
}
#endif
diff --git a/include/af/index.h b/include/af/index.h
index 373804d..4dd5b9a 100644
--- a/include/af/index.h
+++ b/include/af/index.h
@@ -131,7 +131,7 @@ class AFAPI index {
///
/// \param[in] idx0 is the index to be assigned to the /ref af::index
/// \returns the reference to this
- ///
+ ///
///
index & operator=(const index& idx0);
@@ -165,6 +165,7 @@ class AFAPI index {
AFAPI array lookup(const array &in, const array &idx, const int dim = -1);
+#if AF_API_VERSION >= 31
///
/// Copy the values of an input array based on index
///
@@ -182,6 +183,7 @@ AFAPI void copy(array &dst, const array &src,
const index &idx1 = span,
const index &idx2 = span,
const index &idx3 = span);
+#endif
}
#endif
diff --git a/include/af/signal.h b/include/af/signal.h
index 556a4eb..efaa124 100644
--- a/include/af/signal.h
+++ b/include/af/signal.h
@@ -87,6 +87,7 @@ AFAPI array fft2Norm(const array& in, const double norm_factor, const dim_t odim
*/
AFAPI array fft3Norm(const array& in, const double norm_factor, const dim_t odim0=0, const dim_t odim1=0, const dim_t odim2=0);
+#if AF_API_VERSION >= 31
/**
C++ Interface for fast fourier transform on one dimensional signals
@@ -98,7 +99,9 @@ AFAPI array fft3Norm(const array& in, const double norm_factor, const dim_t odim
\ingroup signal_func_fft
*/
AFAPI void fftInPlace(array& in, const double norm_factor = 1);
+#endif
+#if AF_API_VERSION >= 31
/**
C++ Interface for fast fourier transform on two dimensional signals
@@ -111,7 +114,9 @@ AFAPI void fftInPlace(array& in, const double norm_factor = 1);
\ingroup signal_func_fft2
*/
AFAPI void fft2InPlace(array& in, const double norm_factor = 1);
+#endif
+#if AF_API_VERSION >= 31
/**
C++ Interface for fast fourier transform on three dimensional signals
@@ -124,6 +129,7 @@ AFAPI void fft2InPlace(array& in, const double norm_factor = 1);
\ingroup signal_func_fft3
*/
AFAPI void fft3InPlace(array& in, const double norm_factor = 1);
+#endif
/**
C++ Interface for fast fourier transform on one dimensional signals
@@ -248,6 +254,7 @@ AFAPI array ifft2Norm(const array& in, const double norm_factor, const dim_t odi
*/
AFAPI array ifft3Norm(const array& in, const double norm_factor, const dim_t odim0=0, const dim_t odim1=0, const dim_t odim2=0);
+#if AF_API_VERSION >= 31
/**
C++ Interface for fast fourier transform on one dimensional signals
@@ -259,7 +266,9 @@ AFAPI array ifft3Norm(const array& in, const double norm_factor, const dim_t odi
\ingroup signal_func_ifft
*/
AFAPI void ifftInPlace(array& in, const double norm_factor = 1);
+#endif
+#if AF_API_VERSION >= 31
/**
C++ Interface for fast fourier transform on two dimensional signals
@@ -272,7 +281,9 @@ AFAPI void ifftInPlace(array& in, const double norm_factor = 1);
\ingroup signal_func_ifft2
*/
AFAPI void ifft2InPlace(array& in, const double norm_factor = 1);
+#endif
+#if AF_API_VERSION >= 31
/**
C++ Interface for fast fourier transform on three dimensional signals
@@ -285,6 +296,7 @@ AFAPI void ifft2InPlace(array& in, const double norm_factor = 1);
\ingroup signal_func_ifft3
*/
AFAPI void ifft3InPlace(array& in, const double norm_factor = 1);
+#endif
/**
C++ Interface for inverse fast fourier transform on one dimensional signals
@@ -370,6 +382,7 @@ AFAPI array idft(const array& in, const dim4 outDims);
*/
AFAPI array idft(const array& in);
+#if AF_API_VERSION >= 31
/**
C++ Interface for real to complex fast fourier transform for one dimensional signals
@@ -386,7 +399,9 @@ template<int rank>
array fftR2C(const array &in,
const dim4& dims,
const double norm_factor = 0);
+#endif
+#if AF_API_VERSION >= 31
/**
C++ Interface for real to complex fast fourier transform for one dimensional signals
@@ -401,6 +416,7 @@ array fftR2C(const array &in,
template<int rank>
array fftR2C(const array &in,
const double norm_factor = 0);
+#endif
/**
C++ Interface for complex to real fast fourier transform
@@ -641,6 +657,7 @@ AFAPI af_err af_approx2(af_array *out, const af_array in, const af_array pos0, c
*/
AFAPI af_err af_fft(af_array *out, const af_array in, const double norm_factor, const dim_t odim0);
+#if AF_API_VERSION >= 31
/**
C Interface for fast fourier transform on one dimensional signals
@@ -654,6 +671,7 @@ AFAPI af_err af_fft(af_array *out, const af_array in, const double norm_factor,
\ingroup signal_func_fft
*/
AFAPI af_err af_fft_inplace(af_array in, const double norm_factor);
+#endif
/**
C Interface for fast fourier transform on two dimensional signals
@@ -670,6 +688,7 @@ AFAPI af_err af_fft_inplace(af_array in, const double norm_factor);
*/
AFAPI af_err af_fft2(af_array *out, const af_array in, const double norm_factor, const dim_t odim0, const dim_t odim1);
+#if AF_API_VERSION >= 31
/**
C Interface for fast fourier transform on two dimensional signals
@@ -683,6 +702,7 @@ AFAPI af_err af_fft2(af_array *out, const af_array in, const double norm_factor,
\ingroup signal_func_fft2
*/
AFAPI af_err af_fft2_inplace(af_array in, const double norm_factor);
+#endif
/**
C Interface for fast fourier transform on three dimensional signals
@@ -700,6 +720,7 @@ AFAPI af_err af_fft2_inplace(af_array in, const double norm_factor);
*/
AFAPI af_err af_fft3(af_array *out, const af_array in, const double norm_factor, const dim_t odim0, const dim_t odim1, const dim_t odim2);
+#if AF_API_VERSION >= 31
/**
C Interface for fast fourier transform on three dimensional signals
@@ -713,6 +734,7 @@ AFAPI af_err af_fft3(af_array *out, const af_array in, const double norm_factor,
\ingroup signal_func_fft3
*/
AFAPI af_err af_fft3_inplace(af_array in, const double norm_factor);
+#endif
/**
C Interface for inverse fast fourier transform on one dimensional signals
@@ -728,6 +750,7 @@ AFAPI af_err af_fft3_inplace(af_array in, const double norm_factor);
*/
AFAPI af_err af_ifft(af_array *out, const af_array in, const double norm_factor, const dim_t odim0);
+#if AF_API_VERSION >= 31
/**
C Interface for fast fourier transform on one dimensional signals
@@ -741,6 +764,7 @@ AFAPI af_err af_ifft(af_array *out, const af_array in, const double norm_factor,
\ingroup signal_func_ifft
*/
AFAPI af_err af_ifft_inplace(af_array in, const double norm_factor);
+#endif
/**
C Interface for inverse fast fourier transform on two dimensional signals
@@ -757,6 +781,7 @@ AFAPI af_err af_ifft_inplace(af_array in, const double norm_factor);
*/
AFAPI af_err af_ifft2(af_array *out, const af_array in, const double norm_factor, const dim_t odim0, const dim_t odim1);
+#if AF_API_VERSION >= 31
/**
C Interface for fast fourier transform on two dimensional signals
@@ -770,6 +795,7 @@ AFAPI af_err af_ifft2(af_array *out, const af_array in, const double norm_factor
\ingroup signal_func_ifft2
*/
AFAPI af_err af_ifft2_inplace(af_array in, const double norm_factor);
+#endif
/**
C Interface for inverse fast fourier transform on three dimensional signals
@@ -787,6 +813,7 @@ AFAPI af_err af_ifft2_inplace(af_array in, const double norm_factor);
*/
AFAPI af_err af_ifft3(af_array *out, const af_array in, const double norm_factor, const dim_t odim0, const dim_t odim1, const dim_t odim2);
+#if AF_API_VERSION >= 31
/**
C Interface for fast fourier transform on three dimensional signals
@@ -800,7 +827,9 @@ AFAPI af_err af_ifft3(af_array *out, const af_array in, const double norm_factor
\ingroup signal_func_ifft3
*/
AFAPI af_err af_ifft3_inplace(af_array in, const double norm_factor);
+#endif
+#if AF_API_VERSION >= 31
/**
C Interface for real to complex fast fourier transform for one dimensional signals
@@ -816,7 +845,9 @@ AFAPI af_err af_ifft3_inplace(af_array in, const double norm_factor);
\ingroup signal_func_fft_r2c
*/
AFAPI af_err af_fft_r2c (af_array *out, const af_array in, const double norm_factor, const dim_t pad0);
+#endif
+#if AF_API_VERSION >= 31
/**
C Interface for real to complex fast fourier transform for two dimensional signals
@@ -833,7 +864,9 @@ AFAPI af_err af_fft_r2c (af_array *out, const af_array in, const double norm_fac
\ingroup signal_func_fft_r2c
*/
AFAPI af_err af_fft2_r2c(af_array *out, const af_array in, const double norm_factor, const dim_t pad0, const dim_t pad1);
+#endif
+#if AF_API_VERSION >= 31
/**
C Interface for real to complex fast fourier transform for three dimensional signals
@@ -851,7 +884,9 @@ AFAPI af_err af_fft2_r2c(af_array *out, const af_array in, const double norm_fac
\ingroup signal_func_fft_r2c
*/
AFAPI af_err af_fft3_r2c(af_array *out, const af_array in, const double norm_factor, const dim_t pad0, const dim_t pad1, const dim_t pad2);
+#endif
+#if AF_API_VERSION >= 31
/**
C Interface for complex to real fast fourier transform for one dimensional signals
@@ -868,7 +903,9 @@ AFAPI af_err af_fft3_r2c(af_array *out, const af_array in, const double norm_fac
*/
AFAPI af_err af_fft_c2r (af_array *out, const af_array in, const double norm_factor, const bool is_odd);
+#endif
+#if AF_API_VERSION >= 31
/**
C Interface for complex to real fast fourier transform for two dimensional signals
@@ -884,7 +921,9 @@ AFAPI af_err af_fft_c2r (af_array *out, const af_array in, const double norm_fac
\ingroup signal_func_fft_c2r
*/
AFAPI af_err af_fft2_c2r(af_array *out, const af_array in, const double norm_factor, const bool is_odd);
+#endif
+#if AF_API_VERSION >= 31
/**
C Interface for complex to real fast fourier transform for three dimensional signals
@@ -900,6 +939,7 @@ AFAPI af_err af_fft2_c2r(af_array *out, const af_array in, const double norm_fac
\ingroup signal_func_fft_c2r
*/
AFAPI af_err af_fft3_c2r(af_array *out, const af_array in, const double norm_factor, const bool is_odd);
+#endif
/**
C Interface for convolution on one dimensional signals
diff --git a/include/af/util.h b/include/af/util.h
index 2bbe155..9e10733 100644
--- a/include/af/util.h
+++ b/include/af/util.h
@@ -23,6 +23,7 @@ namespace af
*/
AFAPI void print(const char *exp, const array &arr);
+#if AF_API_VERSION >= 31
/**
\param[in] exp is an expression, generally the name of the array
\param[in] arr is the input array
@@ -31,7 +32,9 @@ namespace af
\ingroup print_func_print
*/
AFAPI void print(const char *exp, const array &arr, const int precision);
+#endif
+#if AF_API_VERSION >= 31
/**
\param[in] key is an expression used as tag/key for the array during \ref readArray
\param[in] arr is the array to be written
@@ -44,7 +47,9 @@ namespace af
\ingroup stream_func_save
*/
AFAPI int saveArray(const char *key, const array &arr, const char *filename, const bool append = false);
+#endif
+#if AF_API_VERSION >= 31
/**
\param[in] filename is the path to the location on disk
\param[in] index is the 0-based sequential location of the array to be read
@@ -56,7 +61,9 @@ namespace af
\ingroup stream_func_read
*/
AFAPI array readArray(const char *filename, const unsigned index);
+#endif
+#if AF_API_VERSION >= 31
/**
\param[in] filename is the path to the location on disk
\param[in] key is the tag/name of the array to be read. The key needs to have an exact match.
@@ -68,7 +75,9 @@ namespace af
\ingroup stream_func_read
*/
AFAPI array readArray(const char *filename, const char *key);
+#endif
+#if AF_API_VERSION >= 31
/**
When reading by key, it may be a good idea to run this function first to check for the key
and then call the readArray using the index. This will avoid exceptions in case of key not found.
@@ -81,7 +90,9 @@ namespace af
\ingroup stream_func_read
*/
AFAPI int readArrayCheck(const char *filename, const char *key);
+#endif
+#if AF_API_VERSION >= 31
/**
\param[out] output is the pointer to the c-string that will hold the data. The memory for
output is allocated by the function. The user is responsible for deleting the memory.
@@ -95,6 +106,7 @@ namespace af
*/
AFAPI void toString(char **output, const char *exp, const array &arr,
const int precision = 4, const bool transpose = true);
+#endif
// Purpose of Addition: "How to add Function" documentation
AFAPI array exampleFunction(const array& in, const af_someenum_t param);
@@ -153,6 +165,7 @@ extern "C" {
*/
AFAPI af_err af_print_array(af_array arr);
+#if AF_API_VERSION >= 31
/**
\param[in] exp is the expression or name of the array
\param[in] arr is the input array
@@ -163,7 +176,9 @@ extern "C" {
\ingroup print_func_print
*/
AFAPI af_err af_print_array_gen(const char *exp, const af_array arr, const int precision);
+#endif
+#if AF_API_VERSION >= 31
/**
\param[out] index is the index location of the array in the file
\param[in] key is an expression used as tag/key for the array during \ref readArray
@@ -175,7 +190,9 @@ extern "C" {
\ingroup stream_func_save
*/
AFAPI af_err af_save_array(int *index, const char* key, const af_array arr, const char *filename, const bool append);
+#endif
+#if AF_API_VERSION >= 31
/**
\param[out] out is the array read from index
\param[in] filename is the path to the location on disk
@@ -186,7 +203,9 @@ extern "C" {
\ingroup stream_func_read
*/
AFAPI af_err af_read_array_index(af_array *out, const char *filename, const unsigned index);
+#endif
+#if AF_API_VERSION >= 31
/**
\param[out] out is the array read from key
\param[in] filename is the path to the location on disk
@@ -197,7 +216,9 @@ extern "C" {
\ingroup stream_func_read
*/
AFAPI af_err af_read_array_key(af_array *out, const char *filename, const char* key);
+#endif
+#if AF_API_VERSION >= 31
/**
When reading by key, it may be a good idea to run this function first to check for the key
and then call the readArray using the index. This will avoid exceptions in case of key not found.
@@ -209,7 +230,9 @@ extern "C" {
\ingroup stream_func_read
*/
AFAPI af_err af_read_array_key_check(int *index, const char *filename, const char* key);
+#endif
+#if AF_API_VERSION >= 31
/**
\param[out] output is the pointer to the c-string that will hold the data. The memory for
output is allocated by the function. The user is responsible for deleting the memory.
@@ -223,6 +246,7 @@ extern "C" {
*/
AFAPI af_err af_array_to_string(char **output, const char *exp, const af_array arr,
const int precision, const bool transpose);
+#endif
// Purpose of Addition: "How to add Function" documentation
AFAPI af_err af_example_function(af_array* out, const af_array in, const af_someenum_t param);
diff --git a/include/af/vision.h b/include/af/vision.h
index 22decc1..76e77fa 100644
--- a/include/af/vision.h
+++ b/include/af/vision.h
@@ -8,6 +8,7 @@
********************************************************/
#pragma once
+#include <af/defines.h>
#include <af/features.h>
#ifdef __cplusplus
@@ -40,6 +41,7 @@ class array;
*/
AFAPI features fast(const array& in, const float thr=20.0f, const unsigned arc_length=9, const bool non_max=true, const float feature_ratio=0.05, const unsigned edge=3);
+#if AF_API_VERSION >= 31
/**
C++ Interface for ORB feature descriptor
@@ -67,6 +69,7 @@ AFAPI features fast(const array& in, const float thr=20.0f, const unsigned arc_l
\ingroup cv_func_harris
*/
AFAPI features harris(const array& in, const unsigned max_corners=500, const float min_response=1e5f, const float sigma=1.f, const unsigned block_size=0, const float k_thr=0.04f);
+#endif
/**
C++ Interface for ORB feature descriptor
@@ -120,6 +123,7 @@ AFAPI void hammingMatcher(array& idx, array& dist,
const array& query, const array& train,
const dim_t dist_dim=0, const unsigned n_dist=1);
+#if AF_API_VERSION >= 31
/**
C++ Interface wrapper for Nearest Neighbour
@@ -148,6 +152,7 @@ AFAPI void nearestNeighbour(array& idx, array& dist,
const array& query, const array& train,
const dim_t dist_dim=0, const unsigned n_dist=1,
const af_match_type dist_type = AF_SSD);
+#endif
/**
C++ Interface for image template matching
@@ -166,7 +171,7 @@ AFAPI void nearestNeighbour(array& idx, array& dist,
*/
AFAPI array matchTemplate(const array &searchImg, const array &templateImg, const matchType mType=AF_SAD);
-
+#if AF_API_VERSION >= 31
/**
C++ Interface for SUSAN corner detector
@@ -189,6 +194,22 @@ AFAPI features susan(const array& in,
const float geom_thr=10.0f,
const float feature_ratio=0.05f,
const unsigned edge=3);
+#endif
+
+#if AF_API_VERSION >= 31
+/**
+ C++ Interface wrapper for Difference of Gaussians
+
+ \param[in] in is input image
+ \param[in] radius1 is the radius of first gaussian kernel
+ \param[in] radius2 is the radius of second gaussian kernel
+ \return Difference of smoothed inputs
+
+ \ingroup cv_func_dog
+ */
+AFAPI array dog(const array& in, const int radius1, const int radius2);
+#endif
+
}
#endif
@@ -223,6 +244,7 @@ extern "C" {
*/
AFAPI af_err af_fast(af_features *out, const af_array in, const float thr, const unsigned arc_length, const bool non_max, const float feature_ratio, const unsigned edge);
+#if AF_API_VERSION >= 31
/**
C Interface for Harris feature descriptor
@@ -250,6 +272,7 @@ extern "C" {
\ingroup cv_func_harris
*/
AFAPI af_err af_harris(af_features *out, const af_array in, const unsigned max_corners, const float min_response, const float sigma, const unsigned block_size, const float k_thr);
+#endif
/**
C Interface for ORB feature descriptor
@@ -300,6 +323,7 @@ extern "C" {
const af_array query, const af_array train,
const dim_t dist_dim, const unsigned n_dist);
+#if AF_API_VERSION >= 31
/**
C Interface wrapper for Nearest Neighbour
@@ -328,6 +352,7 @@ extern "C" {
const af_array query, const af_array train,
const dim_t dist_dim, const unsigned n_dist,
const af_match_type dist_type);
+#endif
/**
C Interface for image template matching
@@ -348,6 +373,7 @@ extern "C" {
*/
AFAPI af_err af_match_template(af_array *out, const af_array search_img, const af_array template_img, const af_match_type m_type);
+#if AF_API_VERSION >= 31
/**
C Interface for SUSAN corner detector
@@ -368,6 +394,23 @@ extern "C" {
*/
AFAPI af_err af_susan(af_features* out, const af_array in, const unsigned radius, const float diff_thr, const float geom_thr,
const float feature_ratio, const unsigned edge);
+#endif
+
+#if AF_API_VERSION >= 31
+ /**
+ C Interface wrapper for Difference of Gaussians
+
+ \param[out] out is difference of smoothed inputs
+ \param[in] in is input image
+ \param[in] radius1 is the radius of first gaussian kernel
+ \param[in] radius2 is the radius of second gaussian kernel
+ \return \ref AF_SUCCESS if the computation is is successful,
+ otherwise an appropriate error code is returned.
+
+ \ingroup cv_func_dog
+ */
+ AFAPI af_err af_dog(af_array *out, const af_array in, const int radius1, const int radius2);
+#endif
#ifdef __cplusplus
}
diff --git a/src/api/c/dog.cpp b/src/api/c/dog.cpp
index a6c87f5..3c490cb 100644
--- a/src/api/c/dog.cpp
+++ b/src/api/c/dog.cpp
@@ -9,6 +9,7 @@
#include <af/dim4.hpp>
#include <af/defines.h>
+#include <af/vision.h>
#include <af/image.h>
#include <err_common.hpp>
#include <backend.hpp>
diff --git a/src/api/cpp/dog.cpp b/src/api/cpp/dog.cpp
index 6d8e138..a18fdb1 100644
--- a/src/api/cpp/dog.cpp
+++ b/src/api/cpp/dog.cpp
@@ -8,7 +8,7 @@
********************************************************/
#include <af/array.h>
-#include <af/image.h>
+#include <af/vision.h>
#include "error.hpp"
namespace af
diff --git a/test/dog.cpp b/test/dog.cpp
index aa85814..284a8ad 100644
--- a/test/dog.cpp
+++ b/test/dog.cpp
@@ -11,6 +11,7 @@
#include <arrayfire.h>
#include <af/dim4.hpp>
#include <af/traits.hpp>
+#include <af/vision.h>
#include <string>
#include <vector>
#include <testHelpers.hpp>
--
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