summaryrefslogtreecommitdiff
path: root/src/signalProcessing/includes
diff options
context:
space:
mode:
authorcornet2009-04-22 08:28:41 +0000
committercornet2009-04-22 08:28:41 +0000
commit088ab6f0fb18541245ef326f87d9150d54c6e1dc (patch)
tree8209f2be3edd8e7aaac641bdb15c59bdf27a7ef8 /src/signalProcessing/includes
parentad5856216afe2447cc60005db1f30ebc97bf1dd6 (diff)
downloadscilab2c-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.h16
-rw-r--r--src/signalProcessing/includes/conv2d.h16
-rw-r--r--src/signalProcessing/includes/crossCorr.h17
-rw-r--r--src/signalProcessing/includes/dynlib_signalprocessing.h26
-rw-r--r--src/signalProcessing/includes/fft.h17
-rw-r--r--src/signalProcessing/includes/fftshift.h34
-rw-r--r--src/signalProcessing/includes/hilbert.h16
-rw-r--r--src/signalProcessing/includes/ifft.h16
-rw-r--r--src/signalProcessing/includes/lev.h27
-rw-r--r--src/signalProcessing/includes/levin.h12
-rw-r--r--src/signalProcessing/includes/lpc2cep.h17
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__*/