summaryrefslogtreecommitdiff
path: root/src/c/statisticsFunctions/includes
diff options
context:
space:
mode:
Diffstat (limited to 'src/c/statisticsFunctions/includes')
-rw-r--r--src/c/statisticsFunctions/includes/center.h47
-rw-r--r--src/c/statisticsFunctions/includes/correl.h48
-rw-r--r--src/c/statisticsFunctions/includes/covar.h43
-rw-r--r--src/c/statisticsFunctions/includes/gsort.h46
-rw-r--r--src/c/statisticsFunctions/includes/mad.h42
-rw-r--r--src/c/statisticsFunctions/includes/median.h46
-rw-r--r--src/c/statisticsFunctions/includes/moment.h42
-rw-r--r--src/c/statisticsFunctions/includes/mvcorrel.h37
-rw-r--r--src/c/statisticsFunctions/includes/nanmedian.h44
-rw-r--r--src/c/statisticsFunctions/includes/nanstdev.h40
-rw-r--r--src/c/statisticsFunctions/includes/statMax.h79
-rw-r--r--src/c/statisticsFunctions/includes/statMin.h79
-rw-r--r--src/c/statisticsFunctions/includes/stdev.h37
-rw-r--r--src/c/statisticsFunctions/includes/strange.h43
-rw-r--r--src/c/statisticsFunctions/includes/wcenter.h47
15 files changed, 708 insertions, 12 deletions
diff --git a/src/c/statisticsFunctions/includes/center.h b/src/c/statisticsFunctions/includes/center.h
new file mode 100644
index 00000000..57a109b3
--- /dev/null
+++ b/src/c/statisticsFunctions/includes/center.h
@@ -0,0 +1,47 @@
+ /* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Brijesh Gupta C R
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __CENTER_H__
+#define __CENTER_H__
+#include "types.h"
+#include "doubleComplex.h"
+#include "floatComplex.h"
+#include <math.h>
+#include <ones.h>
+#include "addition.h"
+#include "subtraction.h"
+#include "multiplication.h"
+#include "division.h"
+#include "sqrt.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dcentera (double* inp, int row, int col, double* out);
+void dcentercola (double* inp, int row, int col, double* out);
+void dcenterrowa (double* inp, int row, int col, double* out);
+
+void scentera (float* inp, int row, int col, float* out);
+void scentercola (float* inp, int row, int col, float* out);
+void scenterrowa (float* inp, int row, int col, float* out);
+
+void zcentera (doubleComplex* inp, int row, int col, doubleComplex* out);
+void zcentercola (doubleComplex* inp, int row, int col, doubleComplex* out);
+void zcenterrowa (doubleComplex* inp, int row, int col, doubleComplex* out);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__CENTER_H__*/
diff --git a/src/c/statisticsFunctions/includes/correl.h b/src/c/statisticsFunctions/includes/correl.h
new file mode 100644
index 00000000..8a9c0365
--- /dev/null
+++ b/src/c/statisticsFunctions/includes/correl.h
@@ -0,0 +1,48 @@
+ /* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Brijesh Gupta C R
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __CORREL_H__
+#define __CORREL_H__
+#include "types.h"
+#include "doubleComplex.h"
+#include "floatComplex.h"
+#include <math.h>
+#include <ones.h>
+#include "addition.h"
+#include "subtraction.h"
+#include "multiplication.h"
+#include "division.h"
+#include "sqrt.h"
+#include "sum.h"
+#include "correl.h"
+#include "matrix.h"
+#include "mean.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dcorrels (double* inp1, int sr1, int sc1, double* inp2, int sr2, int sc2);
+double dcorrelfres (double* inp1, int sr1, int sc1, double* inp2, int sr2, int sc2, double* inp3, int sr3, int sc3);
+
+float scorrels (float* inp1, int sr1, int sc1, float* inp2, int sr2, int sc2);
+float scorrelfres (float* inp1, int sr1, int sc1, float* inp2, int sr2, int sc2, float* inp3, int sr3, int sc3);
+
+doubleComplex zcorrels (doubleComplex* inp1, int sr1, int sc1, doubleComplex* inp2, int sr2, int sc2);
+doubleComplex zcorrelfres (doubleComplex* inp1, int sr1, int sc1, doubleComplex* inp2, int sr2, int sc2, doubleComplex* inp3, int sr3, int sc3);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__CORREL_H__*/
diff --git a/src/c/statisticsFunctions/includes/covar.h b/src/c/statisticsFunctions/includes/covar.h
new file mode 100644
index 00000000..4f37f852
--- /dev/null
+++ b/src/c/statisticsFunctions/includes/covar.h
@@ -0,0 +1,43 @@
+ /* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Brijesh Gupta C R
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __COVAR_H__
+#define __COVAR_H__
+#include "types.h"
+#include "doubleComplex.h"
+#include "floatComplex.h"
+#include <math.h>
+#include <ones.h>
+#include "addition.h"
+#include "subtraction.h"
+#include "multiplication.h"
+#include "division.h"
+#include "sqrt.h"
+#include "sum.h"
+#include "correl.h"
+#include "matrix.h"
+#include "mean.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dcovars (double* inp1, int sr1, int sc1, double* inp2, int sr2, int sc2, double* fre, int sr3, int sc3);
+float scovars (float* inp1, int sr1, int sc1, float* inp2, int sr2, int sc2, float* fre, int sr3, int sc3);
+doubleComplex zcovars (doubleComplex* inp1, int sr1, int sc1, doubleComplex* inp2, int sr2, int sc2, doubleComplex* fre, int sr3, int sc3);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__COVAR_H__*/
diff --git a/src/c/statisticsFunctions/includes/gsort.h b/src/c/statisticsFunctions/includes/gsort.h
new file mode 100644
index 00000000..a4d0870e
--- /dev/null
+++ b/src/c/statisticsFunctions/includes/gsort.h
@@ -0,0 +1,46 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#ifndef __GSORT_H__
+#define __GSORT_H__
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "uint16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dgsorta(double *in, int size, char check, double* out);
+void dgsortcola(double *in, int row, int col, char check, double* out);
+void dgsortrowa(double *in, int row, int col, char check, double* out);
+
+void sgsorta(float *in, int size, char check, float* out);
+void sgsortcola(float *in, int row, int col, char check, float* out);
+void sgsortrowa(float *in, int row, int col, char check, float* out);
+
+void u16gsorta(uint16 *in, int size, char check, uint16* out);
+void u16gsortcola(uint16 *in, int row, int col, char check, uint16* out);
+void u16gsortrowa(uint16 *in, int row, int col, char check, uint16* out);
+
+void zgsorta(doubleComplex *in, int size, char check, doubleComplex* out);
+void zgsortcola(doubleComplex *in, int row, int col, char check, doubleComplex* out);
+void zgsortrowa(doubleComplex*in, int row, int col, char check, doubleComplex* out);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__GSORT_H__*/
diff --git a/src/c/statisticsFunctions/includes/mad.h b/src/c/statisticsFunctions/includes/mad.h
new file mode 100644
index 00000000..29032deb
--- /dev/null
+++ b/src/c/statisticsFunctions/includes/mad.h
@@ -0,0 +1,42 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#ifndef __MAD_H__
+#define __MAD_H__
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "uint16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dmada(double* , int );
+void dmadrowa(double*, int, int, double*);
+void dmadcola(double*, int, int, double*);
+
+float smada(float* , int );
+void smadrowa(float*, int, int, float*);
+void smadcola(float*, int, int, float*);
+
+doubleComplex zmada(doubleComplex* , int );
+void zmadrowa(doubleComplex*, int, int, doubleComplex*);
+void zmadcola(doubleComplex*, int, int, doubleComplex*);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__MAD_H__*/
diff --git a/src/c/statisticsFunctions/includes/median.h b/src/c/statisticsFunctions/includes/median.h
new file mode 100644
index 00000000..accb5df0
--- /dev/null
+++ b/src/c/statisticsFunctions/includes/median.h
@@ -0,0 +1,46 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#ifndef __MEDIAN_H__
+#define __MEDIAN_H__
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "uint16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dmediana(double* , int );
+void dmedianrowa(double*, int, int, double*);
+void dmediancola(double*, int, int, double*);
+
+float smediana(float* , int );
+void smedianrowa(float*, int, int, float*);
+void smediancola(float*, int, int, float*);
+
+uint16 u16mediana(uint16* , int );
+void u16medianrowa(uint16*, int, int, uint16*);
+void u16mediancola(uint16*, int, int, uint16*);
+
+doubleComplex zmediana(doubleComplex* , int );
+void zmedianrowa(doubleComplex*, int, int, doubleComplex*);
+void zmediancola(doubleComplex*, int, int, doubleComplex*);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__MATRIX_H__*/
diff --git a/src/c/statisticsFunctions/includes/moment.h b/src/c/statisticsFunctions/includes/moment.h
new file mode 100644
index 00000000..3f419d06
--- /dev/null
+++ b/src/c/statisticsFunctions/includes/moment.h
@@ -0,0 +1,42 @@
+ /* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Brijesh Gupta C R
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __MOMENT_H__
+#define __MOMENT_H__
+#include "types.h"
+#include "doubleComplex.h"
+#include "floatComplex.h"
+#include "pow.h"
+#include "addition.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dmoments (double* inp, int size, double ord);
+void dmomentrowa (double* inp, int row, int col, double ord, double* out);
+void dmomentcola (double* inp, int row, int col, double ord, double* out);
+
+float smoments (float* inp, int size, double ord);
+void smomentrowa (float* inp, int row, int col, double ord, float* out);
+void smomentcola (float* inp, int row, int col, double ord, float* out);
+
+doubleComplex zmoments (doubleComplex* inp, int size, double ord);
+void zmomentrowa (doubleComplex* inp, int row, int col, double ord, doubleComplex* out);
+void zmomentcola (doubleComplex* inp, int row, int col, double ord, doubleComplex* out);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__MOMENT_H__*/
diff --git a/src/c/statisticsFunctions/includes/mvcorrel.h b/src/c/statisticsFunctions/includes/mvcorrel.h
new file mode 100644
index 00000000..f1ed94cd
--- /dev/null
+++ b/src/c/statisticsFunctions/includes/mvcorrel.h
@@ -0,0 +1,37 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#ifndef __MVCORREL_H__
+#define __MVCORREL_H__
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "uint16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dmvcorrela(double* , int, int, double* );
+double dmvcorrel1a( int, int);
+
+void smvcorrela(float* , int, int, float* );
+float smvcorrel1a( int, int);
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__MVCORREL_H__*/
diff --git a/src/c/statisticsFunctions/includes/nanmedian.h b/src/c/statisticsFunctions/includes/nanmedian.h
new file mode 100644
index 00000000..767dbc90
--- /dev/null
+++ b/src/c/statisticsFunctions/includes/nanmedian.h
@@ -0,0 +1,44 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __NANMEDIAN_H__
+#define __NANMEDIAN_H__
+
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "floatComplex.h"
+#include "int16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dnanmediana (double* , int);
+void dnanmedianrowa (double*, int , int, double*);
+void dnanmediancola (double*, int , int, double*);
+
+float snanmediana (float* , int);
+void snanmedianrowa (float*, int , int, float*);
+void snanmediancola (float*, int , int, float*);
+
+doubleComplex znanmediana (doubleComplex* , int);
+void znanmedianrowa (doubleComplex*, int , int, doubleComplex*);
+void znanmediancola (doubleComplex*, int , int, doubleComplex*);
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
diff --git a/src/c/statisticsFunctions/includes/nanstdev.h b/src/c/statisticsFunctions/includes/nanstdev.h
new file mode 100644
index 00000000..5c140939
--- /dev/null
+++ b/src/c/statisticsFunctions/includes/nanstdev.h
@@ -0,0 +1,40 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __NANSTDEV_H__
+#define __NANSTDEV_H__
+
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "floatComplex.h"
+#include "int16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dnanstdeva (double* , int);
+void dnanstdevrowa (double*, int , int, double*);
+void dnanstdevcola (double*, int , int, double*);
+
+float snanstdeva (float* , int);
+void snanstdevrowa (float*, int , int, float*);
+void snanstdevcola (float*, int , int, float*);
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
diff --git a/src/c/statisticsFunctions/includes/statMax.h b/src/c/statisticsFunctions/includes/statMax.h
index 3538bc1a..8e5d12b9 100644
--- a/src/c/statisticsFunctions/includes/statMax.h
+++ b/src/c/statisticsFunctions/includes/statMax.h
@@ -14,28 +14,57 @@
#define __STAT_MAX_H__
#include "dynlib_statisticsfunctions.h"
+#include "types.h"
#ifdef __cplusplus
extern "C" {
#endif
+//#define max(a,b) (a>=b?a:b)
+
+#define maxa(a,size1,b,size2,out) {int i;\
+ for (i=0;i<size1[0]*size2[1];i++) out[i]=max(a[i],b[i]);\
+ }
+
/*
-** \brief Sum of a scalar element, just returns it
+** \brief max of a scalar element, just returns it
*/
-#define smaxs(in) in
+#define smaxs(in) in
#define srowmaxs(in) in
#define scolumnmaxs(in) in
#define smatlabmaxs(in) in
/*
-** \brief Sum of a scalar element, just returns it
+** \brief max of a scalar element, just returns it
*/
-#define dmaxs(in) in
+#define dmaxs(in) in
#define drowmaxs(in) in
#define dcolumnmaxs(in) in
#define dmatlabmaxs(in) in
/*
+** \brief max of a scalar element, just returns it
+*/
+#define u8maxs(in) (uint8)in
+#define u8rowmaxs(in) (uint8)in
+#define u8columnmaxs(in) (uint8)in
+#define u8matlabmaxs(in) (uint8)in
+#define u16maxs(in) (uint16)in
+#define u16rowmaxs(in) (uint16)in
+#define u16columnmaxs(in) (uint16)in
+#define u16matlabmaxs(in) (uint16)in
+#define i8maxs(in) (int8)in
+#define i8rowmaxs(in) (int8)in
+#define i8columnmaxs(in) (int8)in
+#define i8matlabmaxs(in) (int8)in
+#define i16maxs(in) (int16)in
+#define i16rowmaxs(in) (int16)in
+#define i16columnmaxs(in) (int16)in
+#define i16matlabmaxs(in) (int16)in
+
+
+
+/*
** \brief Sum of a float array
** \param in the float array to process
** \param size, the size of the array
@@ -55,9 +84,47 @@ EXTERN_STATFUNC double dmaxa(double *in, int size);
EXTERN_STATFUNC void drowmaxa(double *in, int lines, int columns, double* out);
EXTERN_STATFUNC void dcolumnmaxa(double *in, int lines, int columns, double* out);
+/*
+** \brief Sum of a uint8 array
+** \param in the uint8 array to process
+** \param size, the size of the array
+** \returns the max.
+*/
+EXTERN_STATFUNC uint8 u8maxa(uint8 *in, int size);
+EXTERN_STATFUNC void u8rowmaxa(uint8 *in, int lines, int columns, uint8* out);
+EXTERN_STATFUNC void u8columnmaxa(uint8 *in, int lines, int columns, uint8* out);
+
+/*
+** \brief Sum of a uint16 array
+** \param in the uint16 array to process
+** \param size, the size of the array
+** \returns the max.
+*/
+EXTERN_STATFUNC uint16 u16maxa(uint16 *in, int size);
+EXTERN_STATFUNC void u16rowmaxa(uint16 *in, int lines, int columns, uint16* out);
+EXTERN_STATFUNC void u16columnmaxa(uint16 *in, int lines, int columns, uint16* out);
+
+/*
+** \brief Sum of a int8 array
+** \param in the int8 array to process
+** \param size, the size of the array
+** \returns the max.
+*/
+EXTERN_STATFUNC int8 i8maxa(int8 *in, int size);
+EXTERN_STATFUNC void i8rowmaxa(int8 *in, int lines, int columns, int8* out);
+EXTERN_STATFUNC void i8columnmaxa(int8 *in, int lines, int columns, int8* out);
+
+/*
+** \brief Sum of a int16 array
+** \param in the int16 array to process
+** \param size, the size of the array
+** \returns the max.
+*/
+EXTERN_STATFUNC int16 i16maxa(int16 *in, int size);
+EXTERN_STATFUNC void i16rowmaxa(int16 *in, int lines, int columns, int16* out);
+EXTERN_STATFUNC void i16columnmaxa(int16 *in, int lines, int columns, int16* out);
+
#ifdef __cplusplus
} /* extern "C" */
#endif
-
-
#endif /* !__STAT_MAX_H__ */
diff --git a/src/c/statisticsFunctions/includes/statMin.h b/src/c/statisticsFunctions/includes/statMin.h
index 9528d9f4..f3b8268a 100644
--- a/src/c/statisticsFunctions/includes/statMin.h
+++ b/src/c/statisticsFunctions/includes/statMin.h
@@ -14,28 +14,57 @@
#define __STAT_MIN_H__
#include "dynlib_statisticsfunctions.h"
+#include "types.h"
#ifdef __cplusplus
extern "C" {
#endif
+//#define min(a,b) (a<=b?a:b)
+
+#define mina(a,size1,b,size2,out) {int i;\
+ for (i=0;i<size1[0]*size2[1];i++) out[i]=min(a[i],b[i]);\
+ }
+
/*
-** \brief Sum of a scalar element, just returns it
+** \brief min of a scalar element, just returns it
*/
#define smins(in) in
#define srowmins(in) in
-#define scolumnmins(in) in
+#define scolumnmins(in) in
#define smatlabmins(in) in
/*
-** \brief Sum of a scalar element, just returns it
+** \brief min of a scalar element, just returns it
*/
#define dmins(in) in
#define drowmins(in) in
-#define dcolumnmins(in) in
+#define dcolumnmins(in) in
#define dmatlabmins(in) in
/*
+** \brief min of a scalar element, just returns it
+*/
+#define u8mins(in) (uint8)in
+#define u8rowmins(in) (uint8)in
+#define u8columnmins(in) (uint8)in
+#define u8matlabmins(in) (uint8)in
+#define u16mins(in) (uint16)in
+#define u16rowmins(in) (uint16)in
+#define u16columnmins(in) (uint16)in
+#define u16matlabmins(in) (uint16)in
+#define i8mins(in) (int8)in
+#define i8rowmins(in) (int8)in
+#define i8columnmins(in) (int8)in
+#define i8matlabmins(in) (int8)in
+#define i16mins(in) (int16)in
+#define i16rowmins(in) (int16)in
+#define i16columnmins(in) (int16)in
+#define i16matlabmins(in) (int16)in
+
+
+
+/*
** \brief Sum of a float array
** \param in the float array to process
** \param size, the size of the array
@@ -55,9 +84,47 @@ EXTERN_STATFUNC double dmina(double *in, int size);
EXTERN_STATFUNC void drowmina(double *in, int lines, int columns, double* out);
EXTERN_STATFUNC void dcolumnmina(double *in, int lines, int columns, double* out);
+/*
+** \brief Sum of a uint8 array
+** \param in the uint8 array to process
+** \param size, the size of the array
+** \returns the min.
+*/
+EXTERN_STATFUNC uint8 u8mina(uint8 *in, int size);
+EXTERN_STATFUNC void u8rowmina(uint8 *in, int lines, int columns, uint8* out);
+EXTERN_STATFUNC void u8columnmina(uint8 *in, int lines, int columns, uint8* out);
+
+/*
+** \brief Sum of a uint16 array
+** \param in the uint16 array to process
+** \param size, the size of the array
+** \returns the min.
+*/
+EXTERN_STATFUNC uint16 u16mina(uint16 *in, int size);
+EXTERN_STATFUNC void u16rowmina(uint16 *in, int lines, int columns, uint16* out);
+EXTERN_STATFUNC void u16columnmina(uint16 *in, int lines, int columns, uint16* out);
+
+/*
+** \brief Sum of a int8 array
+** \param in the int8 array to process
+** \param size, the size of the array
+** \returns the min.
+*/
+EXTERN_STATFUNC int8 i8mina(int8 *in, int size);
+EXTERN_STATFUNC void i8rowmina(int8 *in, int lines, int columns, int8* out);
+EXTERN_STATFUNC void i8columnmina(int8 *in, int lines, int columns, int8* out);
+
+/*
+** \brief Sum of a int16 array
+** \param in the int16 array to process
+** \param size, the size of the array
+** \returns the min.
+*/
+EXTERN_STATFUNC int16 i16mina(int16 *in, int size);
+EXTERN_STATFUNC void i16rowmina(int16 *in, int lines, int columns, int16* out);
+EXTERN_STATFUNC void i16columnmina(int16 *in, int lines, int columns, int16* out);
+
#ifdef __cplusplus
} /* extern "C" */
#endif
-
-
#endif /* !__STAT_MIN_H__ */
diff --git a/src/c/statisticsFunctions/includes/stdev.h b/src/c/statisticsFunctions/includes/stdev.h
new file mode 100644
index 00000000..16b4697a
--- /dev/null
+++ b/src/c/statisticsFunctions/includes/stdev.h
@@ -0,0 +1,37 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#ifndef __STDEV_H__
+#define __STDEV_H__
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "uint16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dstdeva(double* , int );
+void dstdevrowa(double*, int, int, double*);
+void dstdevcola(double*, int, int, double*);
+
+float sstdeva(float* , int );
+void sstdevrowa(float*, int, int, float*);
+void sstdevcola(float*, int, int, float*);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__STDEV_H__*/
diff --git a/src/c/statisticsFunctions/includes/strange.h b/src/c/statisticsFunctions/includes/strange.h
new file mode 100644
index 00000000..0c783ad0
--- /dev/null
+++ b/src/c/statisticsFunctions/includes/strange.h
@@ -0,0 +1,43 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __STRANGE_H__
+#define __STRANGE_H__
+
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "floatComplex.h"
+#include "uint16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dstrangea (double* , int);
+void dstrangerowa (double*, int , int, double*);
+void dstrangecola (double*, int , int, double*);
+
+float sstrangea (float* , int);
+void sstrangerowa (float*, int , int, float*);
+void sstrangecola (float*, int , int, float*);
+
+uint16 u16strangea (uint16* , int);
+void u16strangerowa (uint16*, int , int, uint16*);
+void u16strangecola (uint16*, int , int, uint16*);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
diff --git a/src/c/statisticsFunctions/includes/wcenter.h b/src/c/statisticsFunctions/includes/wcenter.h
new file mode 100644
index 00000000..3919fd37
--- /dev/null
+++ b/src/c/statisticsFunctions/includes/wcenter.h
@@ -0,0 +1,47 @@
+ /* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Brijesh Gupta C R
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __WCENTER_H__
+#define __WCENTER_H__
+#include "types.h"
+#include "doubleComplex.h"
+#include "floatComplex.h"
+#include <math.h>
+#include <ones.h>
+#include "addition.h"
+#include "subtraction.h"
+#include "multiplication.h"
+#include "division.h"
+#include "sqrt.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dwcentera (double* inp, int row, int col, double* out);
+void dwcentercola (double* inp, int row, int col, double* out);
+void dwcenterrowa (double* inp, int row, int col, double* out);
+
+void swcentera (float* inp, int row, int col, float* out);
+void swcentercola (float* inp, int row, int col, float* out);
+void swcenterrowa (float* inp, int row, int col, float* out);
+
+void zwcentera (doubleComplex* inp, int row, int col, doubleComplex* out);
+void zwcentercola (doubleComplex* inp, int row, int col, doubleComplex* out);
+void zwcenterrowa (doubleComplex* inp, int row, int col, doubleComplex* out);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__WCENTER_H__*/