My Project
signal.h
Go to the documentation of this file.
1/*******************************************************
2 * Copyright (c) 2014, ArrayFire
3 * All rights reserved.
4 *
5 * This file is distributed under 3-clause BSD license.
6 * The complete license agreement can be obtained at:
7 * http://arrayfire.com/licenses/BSD-3-Clause
8 ********************************************************/
9
10#pragma once
11#include <af/defines.h>
12
13#ifdef __cplusplus
14
15namespace af
16{
17class array;
18class dim4;
19
32AFAPI array approx1(const array &in, const array &pos,
33 const interpType method = AF_INTERP_LINEAR, const float offGrid = 0.0f);
34
48AFAPI array approx2(const array &in, const array &pos0, const array &pos1,
49 const interpType method = AF_INTERP_LINEAR, const float offGrid = 0.0f);
50
61AFAPI array fftNorm(const array& in, const double norm_factor, const dim_t odim0=0);
62
74AFAPI array fft2Norm(const array& in, const double norm_factor, const dim_t odim0=0, const dim_t odim1=0);
75
88AFAPI array fft3Norm(const array& in, const double norm_factor, const dim_t odim0=0, const dim_t odim1=0, const dim_t odim2=0);
89
90#if AF_API_VERSION >= 31
101AFAPI void fftInPlace(array& in, const double norm_factor = 1);
102#endif
103
104#if AF_API_VERSION >= 31
116AFAPI void fft2InPlace(array& in, const double norm_factor = 1);
117#endif
118
119#if AF_API_VERSION >= 31
131AFAPI void fft3InPlace(array& in, const double norm_factor = 1);
132#endif
133
146AFAPI array fft(const array& in, const dim_t odim0=0);
147
161AFAPI array fft2(const array& in, const dim_t odim0=0, const dim_t odim1=0);
162
177AFAPI array fft3(const array& in, const dim_t odim0=0, const dim_t odim1=0, const dim_t odim2=0);
178
189AFAPI array dft(const array& in, const double norm_factor, const dim4 outDims);
190
203AFAPI array dft(const array& in, const dim4 outDims);
204
216AFAPI array dft(const array& in);
217
228AFAPI array ifftNorm(const array& in, const double norm_factor, const dim_t odim0=0);
229
241AFAPI array ifft2Norm(const array& in, const double norm_factor, const dim_t odim0=0, const dim_t odim1=0);
242
255AFAPI array ifft3Norm(const array& in, const double norm_factor, const dim_t odim0=0, const dim_t odim1=0, const dim_t odim2=0);
256
257#if AF_API_VERSION >= 31
268AFAPI void ifftInPlace(array& in, const double norm_factor = 1);
269#endif
270
271#if AF_API_VERSION >= 31
283AFAPI void ifft2InPlace(array& in, const double norm_factor = 1);
284#endif
285
286#if AF_API_VERSION >= 31
298AFAPI void ifft3InPlace(array& in, const double norm_factor = 1);
299#endif
300
313AFAPI array ifft(const array& in, const dim_t odim0=0);
314
328AFAPI array ifft2(const array& in, const dim_t odim0=0, const dim_t odim1=0);
329
344AFAPI array ifft3(const array& in, const dim_t odim0=0, const dim_t odim1=0, const dim_t odim2=0);
345
356AFAPI array idft(const array& in, const double norm_factor, const dim4 outDims);
357
370AFAPI array idft(const array& in, const dim4 outDims);
371
384
385#if AF_API_VERSION >= 31
398template<int rank>
400 const dim4& dims,
401 const double norm_factor = 0);
402#endif
403
404#if AF_API_VERSION >= 31
416template<int rank>
418 const double norm_factor = 0);
419#endif
420
421#if AF_API_VERSION >= 31
434template<int rank>
435array fftC2R(const array &in, bool is_odd = false,
436 const double norm_factor = 0);
437#endif
438
461AFAPI array convolve(const array& signal, const array& filter, const convMode mode=AF_CONV_DEFAULT, const convDomain domain=AF_CONV_AUTO);
462
480AFAPI array convolve(const array& col_filter, const array& row_filter, const array& signal, const convMode mode=AF_CONV_DEFAULT);
481
497AFAPI array convolve1(const array& signal, const array& filter, const convMode mode=AF_CONV_DEFAULT, const convDomain domain=AF_CONV_AUTO);
498
514AFAPI array convolve2(const array& signal, const array& filter, const convMode mode=AF_CONV_DEFAULT, const convDomain domain=AF_CONV_AUTO);
515
531AFAPI array convolve3(const array& signal, const array& filter, const convMode mode=AF_CONV_DEFAULT, const convDomain domain=AF_CONV_AUTO);
532
543AFAPI array fftConvolve(const array& signal, const array& filter, const convMode mode=AF_CONV_DEFAULT);
544
556
568
580
590AFAPI array fir(const array &b, const array &x);
591
604AFAPI array iir(const array &b, const array &a, const array &x);
605
606}
607#endif
608
609#ifdef __cplusplus
610extern "C" {
611#endif
612
628 const af_interp_type method, const float offGrid);
629
645AFAPI af_err af_approx2(af_array *out, const af_array in, const af_array pos0, const af_array pos1,
646 const af_interp_type method, const float offGrid);
647
660AFAPI af_err af_fft(af_array *out, const af_array in, const double norm_factor, const dim_t odim0);
661
662#if AF_API_VERSION >= 31
675AFAPI af_err af_fft_inplace(af_array in, const double norm_factor);
676#endif
677
691AFAPI af_err af_fft2(af_array *out, const af_array in, const double norm_factor, const dim_t odim0, const dim_t odim1);
692
693#if AF_API_VERSION >= 31
706AFAPI af_err af_fft2_inplace(af_array in, const double norm_factor);
707#endif
708
723AFAPI 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);
724
725#if AF_API_VERSION >= 31
738AFAPI af_err af_fft3_inplace(af_array in, const double norm_factor);
739#endif
740
753AFAPI af_err af_ifft(af_array *out, const af_array in, const double norm_factor, const dim_t odim0);
754
755#if AF_API_VERSION >= 31
768AFAPI af_err af_ifft_inplace(af_array in, const double norm_factor);
769#endif
770
784AFAPI af_err af_ifft2(af_array *out, const af_array in, const double norm_factor, const dim_t odim0, const dim_t odim1);
785
786#if AF_API_VERSION >= 31
799AFAPI af_err af_ifft2_inplace(af_array in, const double norm_factor);
800#endif
801
816AFAPI 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);
817
818#if AF_API_VERSION >= 31
831AFAPI af_err af_ifft3_inplace(af_array in, const double norm_factor);
832#endif
833
834#if AF_API_VERSION >= 31
849AFAPI af_err af_fft_r2c (af_array *out, const af_array in, const double norm_factor, const dim_t pad0);
850#endif
851
852#if AF_API_VERSION >= 31
868AFAPI af_err af_fft2_r2c(af_array *out, const af_array in, const double norm_factor, const dim_t pad0, const dim_t pad1);
869#endif
870
871#if AF_API_VERSION >= 31
888AFAPI 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);
889#endif
890
891#if AF_API_VERSION >= 31
907AFAPI af_err af_fft_c2r (af_array *out, const af_array in, const double norm_factor, const bool is_odd);
908#endif
909
910#if AF_API_VERSION >= 31
925AFAPI af_err af_fft2_c2r(af_array *out, const af_array in, const double norm_factor, const bool is_odd);
926#endif
927
928#if AF_API_VERSION >= 31
943AFAPI af_err af_fft3_c2r(af_array *out, const af_array in, const double norm_factor, const bool is_odd);
944#endif
945
961AFAPI af_err af_convolve1(af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode, af_conv_domain domain);
962
978AFAPI af_err af_convolve2(af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode, af_conv_domain domain);
979
995AFAPI af_err af_convolve3(af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode, af_conv_domain domain);
996
1013AFAPI 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);
1014
1028
1042
1056
1067
1080AFAPI af_err af_iir(af_array *y, const af_array b, const af_array a, const af_array x);
1081#ifdef __cplusplus
1082}
1083#endif
A multi dimensional data container.
Definition: array.h:27
Definition: dim4.hpp:27
long long dim_t
Definition: defines.h:50
af_err
Definition: defines.h:63
af_conv_domain
Definition: defines.h:269
@ AF_CONV_AUTO
ArrayFire automatically picks the right convolution algorithm.
Definition: defines.h:270
void * af_array
Definition: defines.h:222
#define AFAPI
Definition: defines.h:31
af_interp_type
Definition: defines.h:224
@ AF_INTERP_LINEAR
Linear Interpolation.
Definition: defines.h:226
af_conv_mode
Definition: defines.h:256
@ AF_CONV_DEFAULT
Output of the convolution is the same size as input.
Definition: defines.h:261
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 signals interpolation on one dimensional signals.
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 one dimensional signals.
AFAPI af_err af_approx2(af_array *out, const af_array in, const af_array pos0, const af_array pos1, const af_interp_type method, const float offGrid)
C Interface for signals interpolation on two dimensional signals.
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 data interpolation on two dimensional signals.
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 one dimensional signals.
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 one dimensional signals.
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 two dimensional signals.
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 two dimensional signals.
AFAPI array convolve3(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 signals.
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 convolution on three dimensional signals.
AFAPI array convolve(const array &signal, const array &filter, const convMode mode=AF_CONV_DEFAULT, const convDomain domain=AF_CONV_AUTO)
C++ Interface for convolution any(one through three) dimensional signals.
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 separable convolution on two dimensional signals.
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 two dimensional signals.
AFAPI array fft2(const array &in, const dim_t odim0=0, const dim_t odim1=0)
C++ Interface for fast fourier transform on two dimensional signals.
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 signals.
AFAPI af_err af_fft2_inplace(af_array in, const double norm_factor)
C Interface for fast fourier transform on two dimensional signals.
AFAPI void fft2InPlace(array &in, const double norm_factor=1)
C++ Interface for fast fourier transform on two dimensional signals.
AFAPI af_err af_fft3_inplace(af_array in, const double norm_factor)
C Interface for fast fourier transform on three dimensional signals.
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 signals.
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 three dimensional signals.
AFAPI void fft3InPlace(array &in, const double norm_factor=1)
C++ Interface for fast fourier transform on three dimensional signals.
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 three dimensional signals.
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 one dimensional signals.
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.
AFAPI af_err af_fft2_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.
array fftC2R(const array &in, bool is_odd=false, const double norm_factor=0)
C++ Interface for complex to real fast fourier transform.
AFAPI array fftConvolve2(const array &signal, const array &filter, const convMode mode=AF_CONV_DEFAULT)
C++ Interface for convolution on two dimensional signals.
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 two dimensional signals.
AFAPI af_err af_fft_convolve3(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 signals.
AFAPI array fftConvolve(const array &signal, const array &filter, const convMode mode=AF_CONV_DEFAULT)
C++ Interface for FFT-based convolution any(one through three) dimensional signals.
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.
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 one dimensional signals.
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 two dimensional signals.
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 real to complex fast fourier transform for three dimensional signals.
AFAPI void fftInPlace(array &in, const double norm_factor=1)
C++ Interface for fast fourier transform on one dimensional signals.
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 signals.
AFAPI array fft(const array &in, const dim_t odim0=0)
C++ Interface for fast fourier transform on one dimensional signals.
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 signals.
AFAPI af_err af_fft_inplace(af_array in, const double norm_factor)
C Interface for fast fourier transform on one dimensional signals.
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 signals.
AFAPI array fftNorm(const array &in, const double norm_factor, const dim_t odim0=0)
C++ Interface for fast fourier transform on one dimensional signals.
AFAPI af_err af_fir(af_array *y, const af_array b, const af_array x)
C++ Interface for finite impulse response filter.
AFAPI array fir(const array &b, const array &x)
C++ Interface for finite impulse response filter.
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 two dimensional signals.
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 inverse fast fourier transform on two dimensional signals.
AFAPI array ifft2(const array &in, const dim_t odim0=0, const dim_t odim1=0)
C++ Interface for inverse fast fourier transform on two dimensional signals.
AFAPI af_err af_ifft2_inplace(af_array in, const double norm_factor)
C Interface for fast fourier transform on two dimensional signals.
AFAPI void ifft2InPlace(array &in, const double norm_factor=1)
C++ Interface for fast fourier transform on two dimensional signals.
AFAPI void ifft3InPlace(array &in, const double norm_factor=1)
C++ Interface for fast fourier transform on three dimensional signals.
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 inverse fast fourier transform on three dimensional signals.
AFAPI af_err af_ifft3_inplace(af_array in, const double norm_factor)
C Interface for fast fourier transform on three dimensional signals.
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 three dimensional signals.
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 inverse fast fourier transform on three dimensional signals.
AFAPI af_err af_ifft(af_array *out, const af_array in, const double norm_factor, const dim_t odim0)
C Interface for inverse fast fourier transform on one dimensional signals.
AFAPI void ifftInPlace(array &in, const double norm_factor=1)
C++ Interface for fast fourier transform on one dimensional signals.
AFAPI af_err af_ifft_inplace(af_array in, const double norm_factor)
C Interface for fast fourier transform on one dimensional signals.
AFAPI array ifftNorm(const array &in, const double norm_factor, const dim_t odim0=0)
C++ Interface for inverse fast fourier transform on one dimensional signals.
AFAPI array ifft(const array &in, const dim_t odim0=0)
C++ Interface for inverse fast fourier transform on one dimensional signals.
AFAPI array iir(const array &b, const array &a, const array &x)
C++ Interface for infinite impulse response filter.
AFAPI af_err af_iir(af_array *y, const af_array b, const af_array a, const af_array x)
C++ Interface for infinite impulse response filter.
Definition: algorithm.h:15
AFAPI array fftConvolve1(const array &signal, const array &filter, const convMode mode=AF_CONV_DEFAULT)
C++ Interface for convolution on one dimensional signals.
AFAPI array fftConvolve3(const array &signal, const array &filter, const convMode mode=AF_CONV_DEFAULT)
C++ Interface for convolution on three dimensional signals.
AFAPI array filter(const array &image, const array &kernel)
Image Filtering.
static af::array array(af::dim4 idims, cl_mem buf, af::dtype type, bool retain=false)
Create an af::array object from an OpenCL cl_mem buffer.
Definition: opencl.h:329
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 one dimensional signals.