diff options
author | cornet | 2009-04-22 08:28:41 +0000 |
---|---|---|
committer | cornet | 2009-04-22 08:28:41 +0000 |
commit | 088ab6f0fb18541245ef326f87d9150d54c6e1dc (patch) | |
tree | 8209f2be3edd8e7aaac641bdb15c59bdf27a7ef8 /src/signalProcessing/includes | |
parent | ad5856216afe2447cc60005db1f30ebc97bf1dd6 (diff) | |
download | scilab2c-088ab6f0fb18541245ef326f87d9150d54c6e1dc.tar.gz scilab2c-088ab6f0fb18541245ef326f87d9150d54c6e1dc.tar.bz2 scilab2c-088ab6f0fb18541245ef326f87d9150d54c6e1dc.zip |
add signalProcessing project
Diffstat (limited to 'src/signalProcessing/includes')
-rw-r--r-- | src/signalProcessing/includes/conv.h | 16 | ||||
-rw-r--r-- | src/signalProcessing/includes/conv2d.h | 16 | ||||
-rw-r--r-- | src/signalProcessing/includes/crossCorr.h | 17 | ||||
-rw-r--r-- | src/signalProcessing/includes/dynlib_signalprocessing.h | 26 | ||||
-rw-r--r-- | src/signalProcessing/includes/fft.h | 17 | ||||
-rw-r--r-- | src/signalProcessing/includes/fftshift.h | 34 | ||||
-rw-r--r-- | src/signalProcessing/includes/hilbert.h | 16 | ||||
-rw-r--r-- | src/signalProcessing/includes/ifft.h | 16 | ||||
-rw-r--r-- | src/signalProcessing/includes/lev.h | 27 | ||||
-rw-r--r-- | src/signalProcessing/includes/levin.h | 12 | ||||
-rw-r--r-- | src/signalProcessing/includes/lpc2cep.h | 17 |
11 files changed, 158 insertions, 56 deletions
diff --git a/src/signalProcessing/includes/conv.h b/src/signalProcessing/includes/conv.h index 90b23450..c7fd1d5e 100644 --- a/src/signalProcessing/includes/conv.h +++ b/src/signalProcessing/includes/conv.h @@ -15,21 +15,27 @@ #include <math.h> #include <malloc.h> +#include "dynlib_signalprocessing.h" #include "floatComplex.h" #include "doubleComplex.h" #include "multiplication.h" #include "ifft.h" #include "fft.h" - +#ifdef __cplusplus +extern "C" { +#endif /* Computes the convolution between VECTORS */ -void sconva(float *in1, int size1, float *in2,int size2, float *out); +EXTERN_SIGPROC void sconva(float *in1, int size1, float *in2,int size2, float *out); -void dconva(double *in1, int size1, double *in2,int size2, double *out); +EXTERN_SIGPROC void dconva(double *in1, int size1, double *in2,int size2, double *out); -void cconva(floatComplex *in1, int size1, floatComplex *in2,int size2, floatComplex *out); +EXTERN_SIGPROC void cconva(floatComplex *in1, int size1, floatComplex *in2,int size2, floatComplex *out); -void zconva(doubleComplex *in1, int size1, doubleComplex *in2,int size2, doubleComplex *out); +EXTERN_SIGPROC void zconva(doubleComplex *in1, int size1, doubleComplex *in2,int size2, doubleComplex *out); +#ifdef __cplusplus +} /* extern "C" */ +#endif #endif /* !__CONV_H__ */ diff --git a/src/signalProcessing/includes/conv2d.h b/src/signalProcessing/includes/conv2d.h index 7c7fc7a6..ed71d924 100644 --- a/src/signalProcessing/includes/conv2d.h +++ b/src/signalProcessing/includes/conv2d.h @@ -13,18 +13,26 @@ #ifndef __CONV2D_H__ #define __CONV2D_H__ +#include "dynlib_signalprocessing.h" #include "floatComplex.h" #include "doubleComplex.h" +#ifdef __cplusplus +extern "C" { +#endif /* Computes the convolution between MATRICES */ -void sconv2da(float *in1, int lines1, int columns1, float *in2, int lines2, int columns2, float *out); +EXTERN_SIGPROC void sconv2da(float *in1, int lines1, int columns1, float *in2, int lines2, int columns2, float *out); -void dconv2da(double *in1, int lines1, int columns1, double *in2, int lines2, int columns2, double *out); +EXTERN_SIGPROC void dconv2da(double *in1, int lines1, int columns1, double *in2, int lines2, int columns2, double *out); -void cconv2da(floatComplex *in1, int lines1, int columns1, floatComplex *in2, int lines2, int columns2, floatComplex *out); +EXTERN_SIGPROC void cconv2da(floatComplex *in1, int lines1, int columns1, floatComplex *in2, int lines2, int columns2, floatComplex *out); -void zconv2da(doubleComplex *in1, int lines1, int columns1, doubleComplex *in2, int lines2, int columns2, doubleComplex *out); +EXTERN_SIGPROC void zconv2da(doubleComplex *in1, int lines1, int columns1, doubleComplex *in2, int lines2, int columns2, doubleComplex *out); + +#ifdef __cplusplus +} /* extern "C" */ +#endif #endif /* !__CONV2D_H__ */ diff --git a/src/signalProcessing/includes/crossCorr.h b/src/signalProcessing/includes/crossCorr.h index daabe52d..c44d6666 100644 --- a/src/signalProcessing/includes/crossCorr.h +++ b/src/signalProcessing/includes/crossCorr.h @@ -14,15 +14,24 @@ #ifndef __CROSSCORR_H__ #define __CROSSCORR_H__ +#include "dynlib_signalprocessing.h" #include "floatComplex.h" #include "doubleComplex.h" -void scrossCorra(float* in1, int rows1, int cols1, float* in2, int rows2, int cols2, float* out); +#ifdef __cplusplus +extern "C" { +#endif -void dcrossCorra(double* in1, int rows1, int cols1, double* in2, int rows2, int cols2, double* out); +EXTERN_SIGPROC void scrossCorra(float* in1, int rows1, int cols1, float* in2, int rows2, int cols2, float* out); -void ccrossCorra(floatComplex* in1, int rows1, int cols1, floatComplex* in2, int rows2, int cols2, floatComplex* out); +EXTERN_SIGPROC void dcrossCorra(double* in1, int rows1, int cols1, double* in2, int rows2, int cols2, double* out); -void zcrossCorra(doubleComplex* in1, int rows1, int cols1, doubleComplex* in2, int rows2, int cols2, doubleComplex* out); +EXTERN_SIGPROC void ccrossCorra(floatComplex* in1, int rows1, int cols1, floatComplex* in2, int rows2, int cols2, floatComplex* out); + +EXTERN_SIGPROC void zcrossCorra(doubleComplex* in1, int rows1, int cols1, doubleComplex* in2, int rows2, int cols2, doubleComplex* out); + +#ifdef __cplusplus +} /* extern "C" */ +#endif #endif /* __CROSSCORR_H__ */ diff --git a/src/signalProcessing/includes/dynlib_signalprocessing.h b/src/signalProcessing/includes/dynlib_signalprocessing.h new file mode 100644 index 00000000..e01e8d85 --- /dev/null +++ b/src/signalProcessing/includes/dynlib_signalprocessing.h @@ -0,0 +1,26 @@ +/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2009 - DIGITEO - Allan CORNET
+*
+* This file must be used under the terms of the CeCILL.
+* This source file is licensed as described in the file COPYING, which
+* you should have received as part of this distribution. The terms
+* are also available at
+* http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+*
+*/
+
+#ifndef __DYNLIB_SIGNALPROCESSING_H__
+#define __DYNLIB_SIGNALPROCESSING_H__
+
+#ifdef _MSC_VER
+ #if SIGNALPROCESSING_EXPORTS
+ #define EXTERN_SIGPROC __declspec (dllexport)
+ #else
+ #define EXTERN_SIGPROC __declspec (dllimport)
+ #endif
+#else
+ #define EXTERN_SIGPROC
+#endif
+
+#endif /* __DYNLIB_SIGNALPROCESSING_H__ */
\ No newline at end of file diff --git a/src/signalProcessing/includes/fft.h b/src/signalProcessing/includes/fft.h index 79301325..efc85c09 100644 --- a/src/signalProcessing/includes/fft.h +++ b/src/signalProcessing/includes/fft.h @@ -13,6 +13,7 @@ #ifndef __FFT_H__ #define __FFT_H__ +#include "dynlib_signalprocessing.h" #include "floatComplex.h" #include "doubleComplex.h" @@ -22,9 +23,13 @@ #define cffts(in) in #define zffts(in) in -void sfftma(float* in,int rows,int columns,float* out); +#ifdef __cplusplus +extern "C" { +#endif -void dfftma(double* in,int rows,int columns,double* out); +EXTERN_SIGPROC void sfftma(float* in,int rows,int columns,float* out); + +EXTERN_SIGPROC void dfftma(double* in,int rows,int columns,double* out); /* ** compute the fast fourier transform of a vector @@ -34,7 +39,7 @@ void dfftma(double* in,int rows,int columns,double* out); ** param out : the transformed matrix in complex float precision */ -void cfftma ( floatComplex* in , int rows, int cols, floatComplex* out); +EXTERN_SIGPROC void cfftma ( floatComplex* in , int rows, int cols, floatComplex* out); /* ** compute the fast fourier transform of a vector ** param in : the input matrix in complex double precision @@ -42,7 +47,11 @@ void cfftma ( floatComplex* in , int rows, int cols, floatComplex* out); ** param cols: number of cols of the input matrix ** param out : the transformed matrix in complex double precision */ -void zfftma ( doubleComplex* in , int rows, int cols, doubleComplex* out); +EXTERN_SIGPROC void zfftma ( doubleComplex* in , int rows, int cols, doubleComplex* out); + +#ifdef __cplusplus +} /* extern "C" */ +#endif #endif /* !__FFT_H__ */ diff --git a/src/signalProcessing/includes/fftshift.h b/src/signalProcessing/includes/fftshift.h index 3f3f6aa9..242e7ff7 100644 --- a/src/signalProcessing/includes/fftshift.h +++ b/src/signalProcessing/includes/fftshift.h @@ -14,6 +14,8 @@ #define __FFTSHIFT_H__ +#include "dynlib_signalprocessing.h" + /* fftshift rearrange the result of fft(x) it's call like that : fftshift(y), y=ff(x) @@ -27,13 +29,17 @@ #define cfftshifts(in) in #define zfftshifts(in) in -void sfftshifta(float* in,int rows,int columns,float* out); +#ifdef __cplusplus +extern "C" { +#endif + +EXTERN_SIGPROC void sfftshifta(float* in,int rows,int columns,float* out); -void dfftshifta(double* in,int rows,int columns,double* out); +EXTERN_SIGPROC void dfftshifta(double* in,int rows,int columns,double* out); -void cfftshifta ( floatComplex* in , int rows, int cols, floatComplex* out); +EXTERN_SIGPROC void cfftshifta ( floatComplex* in , int rows, int cols, floatComplex* out); -void zfftshifta ( doubleComplex* in , int rows, int cols, doubleComplex* out); +EXTERN_SIGPROC void zfftshifta ( doubleComplex* in , int rows, int cols, doubleComplex* out); #define srowfftshifts(in) in @@ -41,28 +47,30 @@ void zfftshifta ( doubleComplex* in , int rows, int cols, doubleComplex* out); #define crowfftshifts(in) in #define zrowfftshifts(in) in -void srowfftshifta(float* in,int rows,int columns,float* out); +EXTERN_SIGPROC void srowfftshifta(float* in,int rows,int columns,float* out); -void drowfftshifta(double* in,int rows,int columns,double* out); +EXTERN_SIGPROC void drowfftshifta(double* in,int rows,int columns,double* out); -void crowfftshifta ( floatComplex* in , int rows, int cols, floatComplex* out); +EXTERN_SIGPROC void crowfftshifta ( floatComplex* in , int rows, int cols, floatComplex* out); -void zrowfftshifta ( doubleComplex* in , int rows, int cols, doubleComplex* out); +EXTERN_SIGPROC void zrowfftshifta ( doubleComplex* in , int rows, int cols, doubleComplex* out); #define scolumnfftshifts(in) in #define dcolumnfftshifts(in) in #define ccolumnfftshifts(in) in #define zcolumnfftshifts(in) in -void scolumnfftshifta(float* in,int rows,int columns,float* out); - -void dcolumnfftshifta(double* in,int rows,int columns,double* out); +EXTERN_SIGPROC void scolumnfftshifta(float* in,int rows,int columns,float* out); -void ccolumnfftshifta ( floatComplex* in , int rows, int cols, floatComplex* out); +EXTERN_SIGPROC void dcolumnfftshifta(double* in,int rows,int columns,double* out); -void zcolumnfftshifta ( doubleComplex* in , int rows, int cols, doubleComplex* out); +EXTERN_SIGPROC void ccolumnfftshifta ( floatComplex* in , int rows, int cols, floatComplex* out); +EXTERN_SIGPROC void zcolumnfftshifta ( doubleComplex* in , int rows, int cols, doubleComplex* out); +#ifdef __cplusplus +} /* extern "C" */ +#endif #endif /* !__FFTSHIFT_H__ */ diff --git a/src/signalProcessing/includes/hilbert.h b/src/signalProcessing/includes/hilbert.h index b011dab0..38264e3b 100644 --- a/src/signalProcessing/includes/hilbert.h +++ b/src/signalProcessing/includes/hilbert.h @@ -14,9 +14,13 @@ #ifndef __HILBERT_H__ #define __HILBERT_H__ +#include "dynlib_signalprocessing.h" #include "floatComplex.h" #include "doubleComplex.h" +#ifdef __cplusplus +extern "C" { +#endif /* FIXME : input : real output : complex @@ -24,12 +28,16 @@ Or must we do input : real, output :real? */ -float shilberts(float in); +EXTERN_SIGPROC float shilberts(float in); -void shilberta (float* in, int rows, int cols, floatComplex *out); +EXTERN_SIGPROC void shilberta (float* in, int rows, int cols, floatComplex *out); -double dhilberts(double in); +EXTERN_SIGPROC double dhilberts(double in); -void dhilberta (double* in, int rows, int cols, doubleComplex *out); +EXTERN_SIGPROC void dhilberta (double* in, int rows, int cols, doubleComplex *out); + +#ifdef __cplusplus +} /* extern "C" */ +#endif #endif /* __HILBERT_H__ */ diff --git a/src/signalProcessing/includes/ifft.h b/src/signalProcessing/includes/ifft.h index 877ea88e..6954c7f9 100644 --- a/src/signalProcessing/includes/ifft.h +++ b/src/signalProcessing/includes/ifft.h @@ -13,6 +13,7 @@ #ifndef __IFFT_H__ #define __IFFT_H__ +#include "dynlib_signalprocessing.h" #include "floatComplex.h" #include "doubleComplex.h" @@ -22,9 +23,13 @@ #define ziffts(in) in -void sifftma ( float* in , int rows, int cols, float* out); +#ifdef __cplusplus +extern "C" { +#endif -void difftma ( double* in , int rows, int cols, double* out); +EXTERN_SIGPROC void sifftma ( float* in , int rows, int cols, float* out); + +EXTERN_SIGPROC void difftma ( double* in , int rows, int cols, double* out); /* ** compute the inverse fast fourier transform of a vector @@ -35,7 +40,7 @@ void difftma ( double* in , int rows, int cols, double* out); */ -void zifftma ( doubleComplex* in , int rows, int cols, doubleComplex* out); +EXTERN_SIGPROC void zifftma ( doubleComplex* in , int rows, int cols, doubleComplex* out); /* ** compute the inverse fast fourier transform of a vector ** param in : the input matrix in complex float precision @@ -44,8 +49,11 @@ void zifftma ( doubleComplex* in , int rows, int cols, doubleComplex* out); ** param out : the transformed matrix in complex float precision */ -void cifftma ( floatComplex* in , int rows, int cols, floatComplex* out); +EXTERN_SIGPROC void cifftma ( floatComplex* in , int rows, int cols, floatComplex* out); +#ifdef __cplusplus +} /* extern "C" */ +#endif #endif /* !__IFFT_H__ */ diff --git a/src/signalProcessing/includes/lev.h b/src/signalProcessing/includes/lev.h index 9e1a2862..32a81782 100644 --- a/src/signalProcessing/includes/lev.h +++ b/src/signalProcessing/includes/lev.h @@ -13,20 +13,23 @@ #ifndef __LEV_H__ #define __LEV_H__ +#include "dynlib_signalprocessing.h" #include "floatComplex.h" #include "doubleComplex.h" - +#ifdef __cplusplus +extern "C" { +#endif /* function Scilab : [out1,y,out3]=lev(in) y : result of the function */ -float sleva (float* in,int size, float* out1, float* out3); -double dleva (double* in, int size, double* out1, double* out3); -floatComplex cleva (floatComplex* in,int size, floatComplex* out1, floatComplex* out3); -doubleComplex zleva (doubleComplex* in,int size, doubleComplex* out1, doubleComplex* out3); +EXTERN_SIGPROC float sleva (float* in,int size, float* out1, float* out3); +EXTERN_SIGPROC double dleva (double* in, int size, double* out1, double* out3); +EXTERN_SIGPROC floatComplex cleva (floatComplex* in,int size, floatComplex* out1, floatComplex* out3); +EXTERN_SIGPROC doubleComplex zleva (doubleComplex* in,int size, doubleComplex* out1, doubleComplex* out3); /* @@ -34,12 +37,14 @@ doubleComplex zleva (doubleComplex* in,int size, doubleComplex* out1, doubleComp [out1,y]=lev(in) y : result of the function */ -float sleva2 (float* in,int size, float* out1); -double dleva2 (double* in, int size, double* out1); -floatComplex cleva2 (floatComplex* in,int size, floatComplex* out1); -doubleComplex zleva2 (doubleComplex* in,int size, doubleComplex* out1); - - +EXTERN_SIGPROC float sleva2 (float* in,int size, float* out1); +EXTERN_SIGPROC double dleva2 (double* in, int size, double* out1); +EXTERN_SIGPROC floatComplex cleva2 (floatComplex* in,int size, floatComplex* out1); +EXTERN_SIGPROC doubleComplex zleva2 (doubleComplex* in,int size, doubleComplex* out1); + +#ifdef __cplusplus +} /* extern "C" */ +#endif #endif /*__LEV_H__*/ diff --git a/src/signalProcessing/includes/levin.h b/src/signalProcessing/includes/levin.h index c39206f9..864fb076 100644 --- a/src/signalProcessing/includes/levin.h +++ b/src/signalProcessing/includes/levin.h @@ -13,13 +13,19 @@ #ifndef __LEVIN_H__ #define __LEVIN_H__ +#include "dynlib_signalprocessing.h" +#ifdef __cplusplus +extern "C" { +#endif -void dlevina (int n, double* cov, int lCov, int cCov, double* la, double* sig, double* lb); - -void slevina (int n, float* cov, int lCov, int cCov, float* la, float* sig, float* lb); +EXTERN_SIGPROC void dlevina (int n, double* cov, int lCov, int cCov, double* la, double* sig, double* lb); +EXTERN_SIGPROC void slevina (int n, float* cov, int lCov, int cCov, float* la, float* sig, float* lb); +#ifdef __cplusplus +} /* extern "C" */ +#endif #endif /*__LEVIN_H__*/ diff --git a/src/signalProcessing/includes/lpc2cep.h b/src/signalProcessing/includes/lpc2cep.h index 31484d2d..bfb3a357 100644 --- a/src/signalProcessing/includes/lpc2cep.h +++ b/src/signalProcessing/includes/lpc2cep.h @@ -13,6 +13,7 @@ #ifndef __LPC2CEP_H__ #define __LPC2CEP_H__ +#include "dynlib_signalprocessing.h" #include "floatComplex.h" #include "doubleComplex.h" @@ -23,13 +24,21 @@ rows(or columns) */ -void slpc2cepa(float* in, int size, float* out); +#ifdef __cplusplus +extern "C" { +#endif -void dlpc2cepa(double* in, int size, double* out); +EXTERN_SIGPROC void slpc2cepa(float* in, int size, float* out); -void clpc2cepa(floatComplex* in, int size, floatComplex* out); +EXTERN_SIGPROC void dlpc2cepa(double* in, int size, double* out); -void zlpc2cepa(doubleComplex* in, int size, doubleComplex* out); +EXTERN_SIGPROC void clpc2cepa(floatComplex* in, int size, floatComplex* out); + +EXTERN_SIGPROC void zlpc2cepa(doubleComplex* in, int size, doubleComplex* out); + +#ifdef __cplusplus +} /* extern "C" */ +#endif #endif /*__LPC2CEP_H__*/ |