[arrayfire] 205/408: DOCS: Adding documentation for real to complex transforms
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Mon Sep 21 19:11:58 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 91f6e359d8f3cb792186c40afd2b736b7765f2d5
Author: Pavan Yalamanchili <pavan at arrayfire.com>
Date: Fri Aug 7 00:32:42 2015 -0400
DOCS: Adding documentation for real to complex transforms
- Also cleaned up signal.h documentation
---
docs/details/image.dox | 4 +-
docs/details/signal.dox | 12 ++
include/af/algorithm.h | 2 +
include/af/signal.h | 335 ++++++++++++++++++++++++++++++++----------------
4 files changed, 244 insertions(+), 109 deletions(-)
diff --git a/docs/details/image.dox b/docs/details/image.dox
index c83b5e7..53dc4a1 100644
--- a/docs/details/image.dox
+++ b/docs/details/image.dox
@@ -588,8 +588,8 @@ from the other and returns the result.
Generate image with image windows as columns
-\ref unwrap takes in an input image along with the window sizes \p wx and \p
-wy, strides \p sx and \p sy, and padding \px and \p py. This function then
+unwrap takes in an input image along with the window sizes \p wx and \p
+wy, strides \p sx and \p sy, and padding \p px and \p py. This function then
generates a matrix where each windows is an independent column.
The number of columns in the output array are govenered by the number of
diff --git a/docs/details/signal.dox b/docs/details/signal.dox
index dae171e..ddb7508 100644
--- a/docs/details/signal.dox
+++ b/docs/details/signal.dox
@@ -196,6 +196,18 @@ respectively, then the possible batch operations are as follows.
\copydoc signal_func_fft_desc
+\defgroup signal_func_fft_r2c fftR2C
+\ingroup fft_mat
+
+\brief Real to Complex Fast Fourier Transform
+
+
+\defgroup signal_func_fft_c2r fftC2R
+\ingroup fft_mat
+
+\brief Complex to Real Fast Fourier Transform
+
+
\defgroup signal_func_approx1 approx1
\ingroup approx_mat
diff --git a/include/af/algorithm.h b/include/af/algorithm.h
index e274d17..1bb3a0d 100644
--- a/include/af/algorithm.h
+++ b/include/af/algorithm.h
@@ -558,6 +558,7 @@ extern "C" {
\param[out] real will contain the real part of adding all elements in input \p in
\param[out] imag will contain the imaginary part of adding all elements in input \p in
\param[in] in is the input array
+ \param[in] nanval is the value which replaces nan
\return \ref AF_SUCCESS if the execution completes properly
\note \p imag is always set to 0 when \p in is real
@@ -586,6 +587,7 @@ extern "C" {
\param[out] real will contain the real part of adding all elements in input \p in
\param[out] imag will contain the imaginary part of adding all elements in input \p in
\param[in] in is the input array
+ \param[in] nanval is the value which replaces nan
\return \ref AF_SUCCESS if the execution completes properly
\note \p imag is always set to 0 when \p in is real
diff --git a/include/af/signal.h b/include/af/signal.h
index 35edb79..8fda624 100644
--- a/include/af/signal.h
+++ b/include/af/signal.h
@@ -18,7 +18,7 @@ class array;
class dim4;
/**
- C++ Interface for data interpolation on one dimensional data
+ C++ Interface for data interpolation on one dimensional signals
\param[in] in is the input array
\param[in] pos array contains the interpolation locations
@@ -33,7 +33,7 @@ AFAPI array approx1(const array &in, const array &pos,
const interpType method = AF_INTERP_LINEAR, const float offGrid = 0.0f);
/**
- C++ Interface for data interpolation on two dimensional data
+ C++ Interface for data interpolation on two dimensional signals
\param[in] in is the input array
\param[in] pos0 array contains the interpolation locations for first dimension
@@ -49,11 +49,11 @@ AFAPI array approx2(const array &in, const array &pos0, const array &pos1,
const interpType method = AF_INTERP_LINEAR, const float offGrid = 0.0f);
/**
- C++ Interface for fast fourier transform on one dimensional data
+ C++ Interface for fast fourier transform on one dimensional signals
\param[in] in is the input array
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
- \param[in] odim0 is the length of output data - used to either truncate or pad the input data
+ \param[in] odim0 is the length of output signals - used to either truncate or pad the input signals
\return the transformed array
\ingroup signal_func_fft
@@ -61,12 +61,12 @@ AFAPI array approx2(const array &in, const array &pos0, const array &pos1,
AFAPI array fftNorm(const array& in, const double norm_factor, const dim_t odim0=0);
/**
- C++ Interface for fast fourier transform on two dimensional data
+ C++ Interface for fast fourier transform on two dimensional signals
\param[in] in is the input array
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
- \param[in] odim0 is the length of output data along first dimension - used to either truncate/pad the input
- \param[in] odim1 is the length of output data along second dimension - used to either truncate/pad the input
+ \param[in] odim0 is the length of output signals along first dimension - used to either truncate/pad the input
+ \param[in] odim1 is the length of output signals along second dimension - used to either truncate/pad the input
\return the transformed array
\ingroup signal_func_fft2
@@ -74,13 +74,13 @@ AFAPI array fftNorm(const array& in, const double norm_factor, const dim_t odim0
AFAPI array fft2Norm(const array& in, const double norm_factor, const dim_t odim0=0, const dim_t odim1=0);
/**
- C++ Interface for fast fourier transform on three dimensional data
+ C++ Interface for fast fourier transform on three dimensional signals
\param[in] in is the input array and the output of 1D fourier transform on exit
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
- \param[in] odim0 is the length of output data along first dimension - used to either truncate/pad the input
- \param[in] odim1 is the length of output data along second dimension - used to either truncate/pad the input
- \param[in] odim2 is the length of output data along third dimension - used to either truncate/pad the input
+ \param[in] odim0 is the length of output signals along first dimension - used to either truncate/pad the input
+ \param[in] odim1 is the length of output signals along second dimension - used to either truncate/pad the input
+ \param[in] odim2 is the length of output signals along third dimension - used to either truncate/pad the input
\return the transformed array
\ingroup signal_func_fft3
@@ -88,7 +88,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);
/**
- C++ Interface for fast fourier transform on one dimensional data
+ C++ Interface for fast fourier transform on one dimensional signals
\param[inout] in is the input array on entry and the output of 1D forward fourier transform on exit
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
@@ -100,7 +100,7 @@ AFAPI array fft3Norm(const array& in, const double norm_factor, const dim_t odim
AFAPI void fftInPlace(array& in, const double norm_factor = 1);
/**
- C++ Interface for fast fourier transform on two dimensional data
+ C++ Interface for fast fourier transform on two dimensional signals
\param[inout] in is the input array on entry and the output of 2D forward fourier transform on exit
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
@@ -113,7 +113,7 @@ AFAPI void fftInPlace(array& in, const double norm_factor = 1);
AFAPI void fft2InPlace(array& in, const double norm_factor = 1);
/**
- C++ Interface for fast fourier transform on three dimensional data
+ C++ Interface for fast fourier transform on three dimensional signals
\param[inout] in is the input array on entry and the output of 3D forward fourier transform on exit
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
@@ -126,13 +126,13 @@ AFAPI void fft2InPlace(array& in, const double norm_factor = 1);
AFAPI void fft3InPlace(array& in, const double norm_factor = 1);
/**
- C++ Interface for fast fourier transform on one dimensional data
+ C++ Interface for fast fourier transform on one dimensional signals
This version of fft function uses a default norm_factor parameter that is calculated internally
- based on the input data.
+ based on the input signals.
\param[in] in is the input array
- \param[in] odim0 is the length of output data - used to either truncate or pad the input data
+ \param[in] odim0 is the length of output signals - used to either truncate or pad the input signals
\return the transformed array
\ingroup signal_func_fft
@@ -140,14 +140,14 @@ AFAPI void fft3InPlace(array& in, const double norm_factor = 1);
AFAPI array fft(const array& in, const dim_t odim0=0);
/**
- C++ Interface for fast fourier transform on two dimensional data
+ C++ Interface for fast fourier transform on two dimensional signals
This version of fft function uses a default norm_factor parameter that is calculated internally
- based on the input data.
+ based on the input signals.
\param[in] in is the input array
- \param[in] odim0 is the length of output data along first dimension - used to either truncate/pad the input
- \param[in] odim1 is the length of output data along second dimension - used to either truncate/pad the input
+ \param[in] odim0 is the length of output signals along first dimension - used to either truncate/pad the input
+ \param[in] odim1 is the length of output signals along second dimension - used to either truncate/pad the input
\return the transformed array
\ingroup signal_func_fft2
@@ -155,15 +155,15 @@ AFAPI array fft(const array& in, const dim_t odim0=0);
AFAPI array fft2(const array& in, const dim_t odim0=0, const dim_t odim1=0);
/**
- C++ Interface for fast fourier transform on three dimensional data
+ C++ Interface for fast fourier transform on three dimensional signals
This version of fft function uses a default norm_factor parameter that is calculated internally
- based on the input data.
+ based on the input signals.
\param[in] in is the input array
- \param[in] odim0 is the length of output data along first dimension - used to either truncate/pad the input
- \param[in] odim1 is the length of output data along second dimension - used to either truncate/pad the input
- \param[in] odim2 is the length of output data along third dimension - used to either truncate/pad the input
+ \param[in] odim0 is the length of output signals along first dimension - used to either truncate/pad the input
+ \param[in] odim1 is the length of output signals along second dimension - used to either truncate/pad the input
+ \param[in] odim2 is the length of output signals along third dimension - used to either truncate/pad the input
\return the transformed array
\ingroup signal_func_fft3
@@ -171,11 +171,11 @@ AFAPI array fft2(const array& in, const dim_t odim0=0, const dim_t odim1=0);
AFAPI array fft3(const array& in, const dim_t odim0=0, const dim_t odim1=0, const dim_t odim2=0);
/**
- C++ Interface for fast fourier transform on any(1d, 2d, 3d) dimensional data
+ C++ Interface for fast fourier transform on any(1d, 2d, 3d) dimensional signals
\param[in] in is the input array
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
- \param[in] outDims is an object of \ref dim4 that has the output array dimensions - used to either truncate or pad the input data
+ \param[in] outDims is an object of \ref dim4 that has the output array dimensions - used to either truncate or pad the input signals
\return the transformed array
\ingroup signal_func_fft
@@ -183,13 +183,13 @@ AFAPI array fft3(const array& in, const dim_t odim0=0, const dim_t odim1=0, cons
AFAPI array dft(const array& in, const double norm_factor, const dim4 outDims);
/**
- C++ Interface for fast fourier transform on any(1d, 2d, 3d) dimensional data
+ C++ Interface for fast fourier transform on any(1d, 2d, 3d) dimensional signals
This version of fft function uses a default norm_factor parameter that is calculated internally
- based on the input data.
+ based on the input signals.
\param[in] in is the input array
- \param[in] outDims is an object of \ref dim4 that has the output array dimensions - used to either truncate or pad the input data
+ \param[in] outDims is an object of \ref dim4 that has the output array dimensions - used to either truncate or pad the input signals
\return the transformed array
\ingroup signal_func_fft
@@ -197,10 +197,10 @@ AFAPI array dft(const array& in, const double norm_factor, const dim4 outDims);
AFAPI array dft(const array& in, const dim4 outDims);
/**
- C++ Interface for fast fourier transform on any(1d, 2d, 3d) dimensional data
+ C++ Interface for fast fourier transform on any(1d, 2d, 3d) dimensional signals
This version of fft function uses a default norm_factor parameter that is calculated internally
- based on the input data.
+ based on the input signals.
\param[in] in is the input array
\return the transformed array
@@ -210,11 +210,11 @@ AFAPI array dft(const array& in, const dim4 outDims);
AFAPI array dft(const array& in);
/**
- C++ Interface for inverse fast fourier transform on one dimensional data
+ C++ Interface for inverse fast fourier transform on one dimensional signals
\param[in] in is the input array
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
- \param[in] odim0 is the length of output data - used to either truncate or pad the input data
+ \param[in] odim0 is the length of output signals - used to either truncate or pad the input signals
\return the transformed array
\ingroup signal_func_ifft
@@ -222,12 +222,12 @@ AFAPI array dft(const array& in);
AFAPI array ifftNorm(const array& in, const double norm_factor, const dim_t odim0=0);
/**
- C++ Interface for inverse fast fourier transform on two dimensional data
+ C++ Interface for inverse fast fourier transform on two dimensional signals
\param[in] in is the input array
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
- \param[in] odim0 is the length of output data along first dimension - used to either truncate/pad the input
- \param[in] odim1 is the length of output data along second dimension - used to either truncate/pad the input
+ \param[in] odim0 is the length of output signals along first dimension - used to either truncate/pad the input
+ \param[in] odim1 is the length of output signals along second dimension - used to either truncate/pad the input
\return the transformed array
\ingroup signal_func_ifft2
@@ -235,13 +235,13 @@ AFAPI array ifftNorm(const array& in, const double norm_factor, const dim_t odim
AFAPI array ifft2Norm(const array& in, const double norm_factor, const dim_t odim0=0, const dim_t odim1=0);
/**
- C++ Interface for inverse fast fourier transform on three dimensional data
+ C++ Interface for inverse fast fourier transform on three dimensional signals
\param[in] in is the input array
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
- \param[in] odim0 is the length of output data along first dimension - used to either truncate/pad the input
- \param[in] odim1 is the length of output data along second dimension - used to either truncate/pad the input
- \param[in] odim2 is the length of output data along third dimension - used to either truncate/pad the input
+ \param[in] odim0 is the length of output signals along first dimension - used to either truncate/pad the input
+ \param[in] odim1 is the length of output signals along second dimension - used to either truncate/pad the input
+ \param[in] odim2 is the length of output signals along third dimension - used to either truncate/pad the input
\return the transformed array
\ingroup signal_func_ifft3
@@ -249,7 +249,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);
/**
- C++ Interface for fast fourier transform on one dimensional data
+ C++ Interface for fast fourier transform on one dimensional signals
\param[inout] in is the input array on entry and the output of 1D inverse fourier transform on exit
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
@@ -261,7 +261,7 @@ AFAPI array ifft3Norm(const array& in, const double norm_factor, const dim_t odi
AFAPI void ifftInPlace(array& in, const double norm_factor = 1);
/**
- C++ Interface for fast fourier transform on two dimensional data
+ C++ Interface for fast fourier transform on two dimensional signals
\param[inout] in is the input array on entry and the output of 2D inverse fourier transform on exit
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
@@ -274,7 +274,7 @@ AFAPI void ifftInPlace(array& in, const double norm_factor = 1);
AFAPI void ifft2InPlace(array& in, const double norm_factor = 1);
/**
- C++ Interface for fast fourier transform on three dimensional data
+ C++ Interface for fast fourier transform on three dimensional signals
\param[inout] in is the input array on entry and the output of 3D inverse fourier transform on exit
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
@@ -287,13 +287,13 @@ AFAPI void ifft2InPlace(array& in, const double norm_factor = 1);
AFAPI void ifft3InPlace(array& in, const double norm_factor = 1);
/**
- C++ Interface for inverse fast fourier transform on one dimensional data
+ C++ Interface for inverse fast fourier transform on one dimensional signals
This version of fft function uses a default norm_factor parameter that is calculated internally
- based on the input data.
+ based on the input signals.
\param[in] in is the input array
- \param[in] odim0 is the length of output data - used to either truncate or pad the input data
+ \param[in] odim0 is the length of output signals - used to either truncate or pad the input signals
\return the transformed array
\ingroup signal_func_ifft
@@ -301,14 +301,14 @@ AFAPI void ifft3InPlace(array& in, const double norm_factor = 1);
AFAPI array ifft(const array& in, const dim_t odim0=0);
/**
- C++ Interface for inverse fast fourier transform on two dimensional data
+ C++ Interface for inverse fast fourier transform on two dimensional signals
This version of fft function uses a default norm_factor parameter that is calculated internally
- based on the input data.
+ based on the input signals.
\param[in] in is the input array
- \param[in] odim0 is the length of output data along first dimension - used to either truncate/pad the input
- \param[in] odim1 is the length of output data along second dimension - used to either truncate/pad the input
+ \param[in] odim0 is the length of output signals along first dimension - used to either truncate/pad the input
+ \param[in] odim1 is the length of output signals along second dimension - used to either truncate/pad the input
\return the transformed array
\ingroup signal_func_ifft2
@@ -316,15 +316,15 @@ AFAPI array ifft(const array& in, const dim_t odim0=0);
AFAPI array ifft2(const array& in, const dim_t odim0=0, const dim_t odim1=0);
/**
- C++ Interface for inverse fast fourier transform on three dimensional data
+ C++ Interface for inverse fast fourier transform on three dimensional signals
This version of fft function uses a default norm_factor parameter that is calculated internally
- based on the input data.
+ based on the input signals.
\param[in] in is the input array
- \param[in] odim0 is the length of output data along first dimension - used to either truncate/pad the input
- \param[in] odim1 is the length of output data along second dimension - used to either truncate/pad the input
- \param[in] odim2 is the length of output data along third dimension - used to either truncate/pad the input
+ \param[in] odim0 is the length of output signals along first dimension - used to either truncate/pad the input
+ \param[in] odim1 is the length of output signals along second dimension - used to either truncate/pad the input
+ \param[in] odim2 is the length of output signals along third dimension - used to either truncate/pad the input
\return the transformed array
\ingroup signal_func_ifft3
@@ -332,11 +332,11 @@ AFAPI array ifft2(const array& in, const dim_t odim0=0, const dim_t odim1=0);
AFAPI array ifft3(const array& in, const dim_t odim0=0, const dim_t odim1=0, const dim_t odim2=0);
/**
- C++ Interface for inverse fast fourier transform on any(1d, 2d, 3d) dimensional data
+ C++ Interface for inverse fast fourier transform on any(1d, 2d, 3d) dimensional signals
\param[in] in is the input array
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
- \param[in] outDims is an object of \ref dim4 that has the output array dimensions - used to either truncate or pad the input data
+ \param[in] outDims is an object of \ref dim4 that has the output array dimensions - used to either truncate or pad the input signals
\return the transformed array
\ingroup signal_func_fft
@@ -344,13 +344,13 @@ AFAPI array ifft3(const array& in, const dim_t odim0=0, const dim_t odim1=0, con
AFAPI array idft(const array& in, const double norm_factor, const dim4 outDims);
/**
- C++ Interface for inverse fast fourier transform on any(1d, 2d, 3d) dimensional data
+ C++ Interface for inverse fast fourier transform on any(1d, 2d, 3d) dimensional signals
This version of fft function uses a default norm_factor parameter that is calculated internally
- based on the input data.
+ based on the input signals.
\param[in] in is the input array
- \param[in] outDims is an object of \ref dim4 that has the output array dimensions - used to either truncate or pad the input data
+ \param[in] outDims is an object of \ref dim4 that has the output array dimensions - used to either truncate or pad the input signals
\return the transformed array
\ingroup signal_func_fft
@@ -358,10 +358,10 @@ AFAPI array idft(const array& in, const double norm_factor, const dim4 outDims);
AFAPI array idft(const array& in, const dim4 outDims);
/**
- C++ Interface for inverse fast fourier transform on any(1d, 2d, 3d) dimensional data
+ C++ Interface for inverse fast fourier transform on any(1d, 2d, 3d) dimensional signals
This version of fft function uses a default norm_factor parameter that is calculated internally
- based on the input data.
+ based on the input signals.
\param[in] in is the input array
\return the transformed array
@@ -370,22 +370,56 @@ AFAPI array idft(const array& in, const dim4 outDims);
*/
AFAPI array idft(const array& in);
+/**
+ C Interface for real to complex fast fourier transform for one dimensional signals
+
+ \param[in] in is a real array
+ \param[in] dims is the requested padded dimensions before the transform is applied
+ \param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
+ \return a complex array containing the non redundant parts of \p in along the first dimension.
+
+ \note The first dimension of the output will be of size (dims[0] / 2) + 1. The remaining dimensions are unchanged.
+
+ \ingroup signal_func_fft_r2c
+*/
template<int rank>
array fftR2C(const array &in,
const dim4& dims,
const double norm_factor = 0);
+/**
+ C Interface for real to complex fast fourier transform for one dimensional signals
+
+ \param[in] in is a real array
+ \param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
+ \return a complex array containing the non redundant parts of \p in along the first dimension.
+ \note The first dimension of the output will be of size (in.dims(0) / 2) + 1. The remaining dimensions are unchanged.
+
+ \ingroup signal_func_fft_r2c
+*/
template<int rank>
array fftR2C(const array &in,
const double norm_factor = 0);
+/**
+ C++ Interface for complex to real fast fourier transform
+
+ \param[in] in is a complex array containing only the non redundant parts of the signals
+ \param[in] is_odd is a flag signifying if the output should be even or odd size
+ \param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
+ \tparam rank signifies the dimensionality of the transform
+ \return A real array of size [2 * idim0 - 2 + is_odd, idim1, idim2, idim3] where idim{0,1,2,3} signify input dimensions
+
+ \ingroup signal_func_fft_c2r
+*/
+
template<int rank>
array fftC2R(const array &in, bool is_odd = false,
const double norm_factor = 0);
/**
- C++ Interface for convolution any(one through three) dimensional data
+ C++ Interface for convolution any(one through three) dimensional signals
Example for convolution on one dimensional signal in one to one batch mode
\snippet test/convolve.cpp ex_image_convolve_1d
@@ -409,7 +443,7 @@ array fftC2R(const array &in, bool is_odd = false,
AFAPI array convolve(const array& signal, const array& filter, const convMode mode=AF_CONV_DEFAULT, const convDomain domain=AF_CONV_AUTO);
/**
- C++ Interface for separable convolution on two dimensional data
+ C++ Interface for separable convolution on two dimensional signals
\snippet test/convolve.cpp ex_image_conv2_sep
@@ -428,7 +462,7 @@ AFAPI array convolve(const array& signal, const array& filter, const convMode mo
AFAPI array convolve(const array& col_filter, const array& row_filter, const array& signal, const convMode mode=AF_CONV_DEFAULT);
/**
- C++ Interface for convolution on one dimensional data
+ C++ Interface for convolution on one dimensional signals
\snippet test/convolve.cpp ex_image_convolve1
@@ -445,7 +479,7 @@ AFAPI array convolve(const array& col_filter, const array& row_filter, const arr
AFAPI array convolve1(const array& signal, const array& filter, const convMode mode=AF_CONV_DEFAULT, const convDomain domain=AF_CONV_AUTO);
/**
- C++ Interface for convolution on two dimensional data
+ C++ Interface for convolution on two dimensional signals
\snippet test/convolve.cpp ex_image_convolve2
@@ -462,7 +496,7 @@ AFAPI array convolve1(const array& signal, const array& filter, const convMode m
AFAPI array convolve2(const array& signal, const array& filter, const convMode mode=AF_CONV_DEFAULT, const convDomain domain=AF_CONV_AUTO);
/**
- C++ Interface for convolution on three dimensional data
+ C++ Interface for convolution on three dimensional signals
\snippet test/convolve.cpp ex_image_convolve3
@@ -479,7 +513,7 @@ AFAPI array convolve2(const array& signal, const array& filter, const convMode m
AFAPI array convolve3(const array& signal, const array& filter, const convMode mode=AF_CONV_DEFAULT, const convDomain domain=AF_CONV_AUTO);
/**
- C++ Interface for FFT-based convolution any(one through three) dimensional data
+ C++ Interface for FFT-based convolution any(one through three) dimensional signals
\param[in] signal is the input signal
\param[in] filter is the signal that shall be used for the convolution operation
@@ -491,7 +525,7 @@ AFAPI array convolve3(const array& signal, const array& filter, const convMode m
AFAPI array fftConvolve(const array& signal, const array& filter, const convMode mode=AF_CONV_DEFAULT);
/**
- C++ Interface for convolution on one dimensional data
+ C++ Interface for convolution on one dimensional signals
\param[in] signal is the input signal
\param[in] filter is the signal that shall be used for the convolution operation
@@ -503,7 +537,7 @@ AFAPI array fftConvolve(const array& signal, const array& filter, const convMode
AFAPI array fftConvolve1(const array& signal, const array& filter, const convMode mode=AF_CONV_DEFAULT);
/**
- C++ Interface for convolution on two dimensional data
+ C++ Interface for convolution on two dimensional signals
\param[in] signal is the input signal
\param[in] filter is the signal that shall be used for the convolution operation
@@ -515,7 +549,7 @@ AFAPI array fftConvolve1(const array& signal, const array& filter, const convMod
AFAPI array fftConvolve2(const array& signal, const array& filter, const convMode mode=AF_CONV_DEFAULT);
/**
- C++ Interface for convolution on three dimensional data
+ C++ Interface for convolution on three dimensional signals
\param[in] signal is the input signal
\param[in] filter is the signal that shall be used for the convolution operation
@@ -559,7 +593,7 @@ extern "C" {
#endif
/**
- C Interface for data interpolation on one dimensional data
+ C Interface for signals interpolation on one dimensional signals
\param[out] out is the array with interpolated values
\param[in] in is the input array
@@ -576,7 +610,7 @@ AFAPI af_err af_approx1(af_array *out, const af_array in, const af_array pos,
const af_interp_type method, const float offGrid);
/**
- C Interface for data interpolation on two dimensional data
+ C Interface for signals interpolation on two dimensional signals
\param[out] out is the array with interpolated values
\param[in] in is the input array
@@ -594,12 +628,12 @@ AFAPI af_err af_approx2(af_array *out, const af_array in, const af_array pos0, c
const af_interp_type method, const float offGrid);
/**
- C Interface for fast fourier transform on one dimensional data
+ C Interface for fast fourier transform on one dimensional signals
\param[out] out is the transformed array
\param[in] in is the input array
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
- \param[in] odim0 is the length of output data - used to either truncate or pad the input data
+ \param[in] odim0 is the length of output signals - used to either truncate or pad the input signals
\return \ref AF_SUCCESS if the fft transform is successful,
otherwise an appropriate error code is returned.
@@ -608,7 +642,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);
/**
- C Interface for fast fourier transform on one dimensional data
+ C Interface for fast fourier transform on one dimensional signals
\param[inout] in is the input array on entry and the output of 1D forward fourier transform at exit
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
@@ -622,13 +656,13 @@ AFAPI af_err af_fft(af_array *out, const af_array in, const double norm_factor,
AFAPI af_err af_fft_inplace(af_array in, const double norm_factor);
/**
- C Interface for fast fourier transform on two dimensional data
+ C Interface for fast fourier transform on two dimensional signals
\param[out] out is the transformed array
\param[in] in is the input array
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
- \param[in] odim0 is the length of output data along first dimension - used to either truncate/pad the input
- \param[in] odim1 is the length of output data along second dimension - used to either truncate/pad the input
+ \param[in] odim0 is the length of output signals along first dimension - used to either truncate/pad the input
+ \param[in] odim1 is the length of output signals along second dimension - used to either truncate/pad the input
\return \ref AF_SUCCESS if the fft transform is successful,
otherwise an appropriate error code is returned.
@@ -637,7 +671,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);
/**
- C Interface for fast fourier transform on two dimensional data
+ C Interface for fast fourier transform on two dimensional signals
\param[inout] in is the input array on entry and the output of 2D forward fourier transform on exit
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
@@ -651,14 +685,14 @@ AFAPI af_err af_fft2(af_array *out, const af_array in, const double norm_factor,
AFAPI af_err af_fft2_inplace(af_array in, const double norm_factor);
/**
- C Interface for fast fourier transform on three dimensional data
+ C Interface for fast fourier transform on three dimensional signals
\param[out] out is the transformed array
\param[in] in is the input array
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
- \param[in] odim0 is the length of output data along first dimension - used to either truncate/pad the input
- \param[in] odim1 is the length of output data along second dimension - used to either truncate/pad the input
- \param[in] odim2 is the length of output data along third dimension - used to either truncate/pad the input
+ \param[in] odim0 is the length of output signals along first dimension - used to either truncate/pad the input
+ \param[in] odim1 is the length of output signals along second dimension - used to either truncate/pad the input
+ \param[in] odim2 is the length of output signals along third dimension - used to either truncate/pad the input
\return \ref AF_SUCCESS if the fft transform is successful,
otherwise an appropriate error code is returned.
@@ -667,7 +701,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);
/**
- C Interface for fast fourier transform on three dimensional data
+ C Interface for fast fourier transform on three dimensional signals
\param[inout] in is the input array on entry and the output of 3D forward fourier transform on exit
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
@@ -681,12 +715,12 @@ AFAPI af_err af_fft3(af_array *out, const af_array in, const double norm_factor,
AFAPI af_err af_fft3_inplace(af_array in, const double norm_factor);
/**
- C Interface for inverse fast fourier transform on one dimensional data
+ C Interface for inverse fast fourier transform on one dimensional signals
\param[out] out is the transformed array
\param[in] in is the input array
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
- \param[in] odim0 is the length of output data - used to either truncate or pad the input data
+ \param[in] odim0 is the length of output signals - used to either truncate or pad the input signals
\return \ref AF_SUCCESS if the fft transform is successful,
otherwise an appropriate error code is returned.
@@ -695,7 +729,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);
/**
- C Interface for fast fourier transform on one dimensional data
+ C Interface for fast fourier transform on one dimensional signals
\param[inout] in is the input array on entry and the output of 1D inverse fourier transform at exit
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
@@ -709,13 +743,13 @@ AFAPI af_err af_ifft(af_array *out, const af_array in, const double norm_factor,
AFAPI af_err af_ifft_inplace(af_array in, const double norm_factor);
/**
- C Interface for inverse fast fourier transform on two dimensional data
+ C Interface for inverse fast fourier transform on two dimensional signals
\param[out] out is the transformed array
\param[in] in is the input array
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
- \param[in] odim0 is the length of output data along first dimension - used to either truncate/pad the input
- \param[in] odim1 is the length of output data along second dimension - used to either truncate/pad the input
+ \param[in] odim0 is the length of output signals along first dimension - used to either truncate/pad the input
+ \param[in] odim1 is the length of output signals along second dimension - used to either truncate/pad the input
\return \ref AF_SUCCESS if the fft transform is successful,
otherwise an appropriate error code is returned.
@@ -724,7 +758,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);
/**
- C Interface for fast fourier transform on two dimensional data
+ C Interface for fast fourier transform on two dimensional signals
\param[inout] in is the input array on entry and the output of 2D inverse fourier transform on exit
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
@@ -738,14 +772,14 @@ AFAPI af_err af_ifft2(af_array *out, const af_array in, const double norm_factor
AFAPI af_err af_ifft2_inplace(af_array in, const double norm_factor);
/**
- C Interface for inverse fast fourier transform on three dimensional data
+ C Interface for inverse fast fourier transform on three dimensional signals
\param[out] out is the transformed array
\param[in] in is the input array
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
- \param[in] odim0 is the length of output data along first dimension - used to either truncate/pad the input
- \param[in] odim1 is the length of output data along second dimension - used to either truncate/pad the input
- \param[in] odim2 is the length of output data along third dimension - used to either truncate/pad the input
+ \param[in] odim0 is the length of output signals along first dimension - used to either truncate/pad the input
+ \param[in] odim1 is the length of output signals along second dimension - used to either truncate/pad the input
+ \param[in] odim2 is the length of output signals along third dimension - used to either truncate/pad the input
\return \ref AF_SUCCESS if the fft transform is successful,
otherwise an appropriate error code is returned.
@@ -754,7 +788,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);
/**
- C Interface for fast fourier transform on three dimensional data
+ C Interface for fast fourier transform on three dimensional signals
\param[inout] in is the input array on entry and the output of 3D inverse fourier transform on exit
\param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
@@ -767,21 +801,108 @@ AFAPI af_err af_ifft3(af_array *out, const af_array in, const double norm_factor
*/
AFAPI af_err af_ifft3_inplace(af_array in, const double norm_factor);
+/**
+ C Interface for real to complex fast fourier transform for one dimensional signals
+
+ \param[out] out is a complex array containing the non redundant parts of \p in.
+ \param[in] in is a real array
+ \param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
+ \param[in] pad0 is the length of output signals along first dimension - used to either truncate/pad the input
+ \return \ref AF_SUCCESS if the fft transform is successful,
+ otherwise an appropriate error code is returned.
+
+ \note The first dimension of the output will be of size (pad0 / 2) + 1. The remaining dimensions are unchanged.
+
+ \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);
+/**
+ C Interface for real to complex fast fourier transform for two dimensional signals
+
+ \param[out] out is a complex array containing the non redundant parts of \p in.
+ \param[in] in is a real array
+ \param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
+ \param[in] pad0 is the length of output signals along first dimension - used to either truncate/pad the input
+ \param[in] pad1 is the length of output signals along second dimension - used to either truncate/pad the input
+ \return \ref AF_SUCCESS if the fft transform is successful,
+ otherwise an appropriate error code is returned.
+
+ \note The first dimension of the output will be of size (pad0 / 2) + 1. The second dimension of the output will be pad1. The remaining dimensions are unchanged.
+
+ \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);
+/**
+ C Interface for real to complex fast fourier transform for three dimensional signals
+
+ \param[out] out is a complex array containing the non redundant parts of \p in.
+ \param[in] in is a real array
+ \param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
+ \param[in] pad0 is the length of output signals along first dimension - used to either truncate/pad the input
+ \param[in] pad1 is the length of output signals along second dimension - used to either truncate/pad the input
+ \param[in] pad2 is the length of output signals along third dimension - used to either truncate/pad the input
+ \return \ref AF_SUCCESS if the fft transform is successful,
+ otherwise an appropriate error code is returned.
+
+ \note The first dimension of the output will be of size (pad0 / 2) + 1. The second dimension of the output will be pad1. The third dimension of the output will be pad 2.
+
+ \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);
+/**
+ C Interface for complex to real fast fourier transform for one dimensional signals
+
+ \param[out] out is a real array containing the output of the transform.
+ \param[in] in is a complex array containing only the non redundant parts of the signals.
+ \param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
+ \param[in] is_odd is a flag signifying if the output should be even or odd size
+ \return \ref AF_SUCCESS if the fft transform is successful,
+ otherwise an appropriate error code is returned.
+
+ \note The first dimension of the output will be 2 * dim0 - 1 if is_odd is true else 2 * dim0 - 2 where dim0 is the first dimension of the input. The remaining dimensions are unchanged.
+
+ \ingroup signal_func_fft_c2r
+*/
+
AFAPI af_err af_fft_c2r (af_array *out, const af_array in, const double norm_factor, const bool is_odd);
+/**
+ C Interface for complex to real fast fourier transform for two dimensional signals
+
+ \param[out] out is a real array containing the output of the transform.
+ \param[in] in is a complex array containing only the non redundant parts of the signals.
+ \param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
+ \param[in] is_odd is a flag signifying if the output should be even or odd size
+ \return \ref AF_SUCCESS if the fft transform is successful,
+ otherwise an appropriate error code is returned.
+
+ \note The first dimension of the output will be 2 * dim0 - 1 if is_odd is true else 2 * dim0 - 2 where dim0 is the first dimension of the input. The remaining dimensions are unchanged.
+
+ \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);
-AFAPI af_err af_fft3_c2r(af_array *out, const af_array in, const double norm_factor, const bool is_odd);
+/**
+ C Interface for complex to real fast fourier transform for three dimensional signals
+
+ \param[out] out is a real array containing the output of the transform.
+ \param[in] in is a complex array containing only the non redundant parts of the signals.
+ \param[in] norm_factor is the normalization factor with which the input is scaled before the transformation is applied
+ \param[in] is_odd is a flag signifying if the output should be even or odd size
+ \return \ref AF_SUCCESS if the fft transform is successful,
+ otherwise an appropriate error code is returned.
+
+ \note The first dimension of the output will be 2 * dim0 - 1 if is_odd is true else 2 * dim0 - 2 where dim0 is the first dimension of the input. The remaining dimensions are unchanged.
+ \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);
/**
- C Interface for convolution on one dimensional data
+ C Interface for convolution on one dimensional signals
\param[out] out is convolved array
\param[in] signal is the input signal
@@ -798,7 +919,7 @@ AFAPI af_err af_fft3_c2r(af_array *out, const af_array in, const double norm_fac
AFAPI af_err af_convolve1(af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode, af_conv_domain domain);
/**
- C Interface for convolution on two dimensional data
+ C Interface for convolution on two dimensional signals
\param[out] out is convolved array
\param[in] signal is the input signal
@@ -815,7 +936,7 @@ AFAPI af_err af_convolve1(af_array *out, const af_array signal, const af_array f
AFAPI af_err af_convolve2(af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode, af_conv_domain domain);
/**
- C Interface for convolution on three dimensional data
+ C Interface for convolution on three dimensional signals
\param[out] out is convolved array
\param[in] signal is the input signal
@@ -832,7 +953,7 @@ AFAPI af_err af_convolve2(af_array *out, const af_array signal, const af_array f
AFAPI af_err af_convolve3(af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode, af_conv_domain domain);
/**
- C Interface for separable convolution on two dimensional data
+ C Interface for separable convolution on two dimensional signals
\param[out] out is convolved array
\param[in] col_filter is filter that has to be applied along the coloumns
@@ -850,7 +971,7 @@ AFAPI af_err af_convolve3(af_array *out, const af_array signal, const af_array f
AFAPI af_err af_convolve2_sep(af_array *out, const af_array col_filter, const af_array row_filter, const af_array signal, const af_conv_mode mode);
/**
- C Interface for FFT-based convolution on one dimensional data
+ C Interface for FFT-based convolution on one dimensional signals
\param[out] out is convolved array
\param[in] signal is the input signal
@@ -864,7 +985,7 @@ AFAPI af_err af_convolve2_sep(af_array *out, const af_array col_filter, const af
AFAPI af_err af_fft_convolve1(af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode);
/**
- C Interface for FFT-based convolution on two dimensional data
+ C Interface for FFT-based convolution on two dimensional signals
\param[out] out is convolved array
\param[in] signal is the input signal
@@ -878,7 +999,7 @@ AFAPI af_err af_fft_convolve1(af_array *out, const af_array signal, const af_arr
AFAPI af_err af_fft_convolve2(af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode);
/**
- C Interface for FFT-based convolution on three dimensional data
+ C Interface for FFT-based convolution on three dimensional signals
\param[out] out is convolved array
\param[in] signal is the input signal
--
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