[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