summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/c/elementaryFunctions/includes/nancumsum.h42
-rw-r--r--src/c/elementaryFunctions/interfaces/int_nancumsum.h36
-rw-r--r--src/c/elementaryFunctions/nancumsum/dnancumsuma.c38
-rw-r--r--src/c/elementaryFunctions/nancumsum/dnancumsumcola.c43
-rw-r--r--src/c/elementaryFunctions/nancumsum/dnancumsumrowa.c45
-rw-r--r--src/c/elementaryFunctions/nancumsum/snancumsuma.c38
-rw-r--r--src/c/elementaryFunctions/nancumsum/snancumsumcola.c43
-rw-r--r--src/c/elementaryFunctions/nancumsum/snancumsumrowa.c44
-rw-r--r--src/c/elementaryFunctions/nancumsum/znancumsuma.c39
-rw-r--r--src/c/elementaryFunctions/nancumsum/znancumsumcola.c44
-rw-r--r--src/c/elementaryFunctions/nancumsum/znancumsumrowa.c45
-rw-r--r--src/c/statisticsFunctions/includes/nanstdev.h40
-rw-r--r--src/c/statisticsFunctions/includes/stdev.h37
-rw-r--r--src/c/statisticsFunctions/interfaces/int_median.h20
-rw-r--r--src/c/statisticsFunctions/interfaces/int_nanstdev.h23
-rw-r--r--src/c/statisticsFunctions/interfaces/int_stdev.h32
-rw-r--r--src/c/statisticsFunctions/nanstdev/dnanstdeva.c51
-rw-r--r--src/c/statisticsFunctions/nanstdev/dnanstdevcola.c35
-rw-r--r--src/c/statisticsFunctions/nanstdev/dnanstdevrowa.c36
-rw-r--r--src/c/statisticsFunctions/nanstdev/snanstdeva.c51
-rw-r--r--src/c/statisticsFunctions/nanstdev/snanstdevcola.c35
-rw-r--r--src/c/statisticsFunctions/nanstdev/snanstdevrowa.c36
-rw-r--r--src/c/statisticsFunctions/stdev/dstdeva.c29
-rw-r--r--src/c/statisticsFunctions/stdev/dstdevcola.c35
-rw-r--r--src/c/statisticsFunctions/stdev/dstdevrowa.c36
-rw-r--r--src/c/statisticsFunctions/stdev/sstdeva.c29
-rw-r--r--src/c/statisticsFunctions/stdev/sstdevcola.c35
-rw-r--r--src/c/statisticsFunctions/stdev/sstdevrowa.c36
28 files changed, 1034 insertions, 19 deletions
diff --git a/src/c/elementaryFunctions/includes/nancumsum.h b/src/c/elementaryFunctions/includes/nancumsum.h
new file mode 100644
index 0000000..48ccc96
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/nancumsum.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 __NANCUMSUM_H__
+#define __NANCUMSUM_H__
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "uint16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dnancumsuma(double* , int , double*);
+void dnancumsumrowa(double*, int, int, double*);
+void dnancumsumcola(double*, int, int, double*);
+
+void snancumsuma(float* , int, float* );
+void snancumsumrowa(float*, int, int, float*);
+void snancumsumcola(float*, int, int, float*);
+
+void znancumsuma(doubleComplex* , int , doubleComplex*);
+void znancumsumrowa(doubleComplex*, int, int, doubleComplex*);
+void znancumsumcola(doubleComplex*, int, int, doubleComplex*);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__NANCUMSUM_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_nancumsum.h b/src/c/elementaryFunctions/interfaces/int_nancumsum.h
new file mode 100644
index 0000000..c82f6d6
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_nancumsum.h
@@ -0,0 +1,36 @@
+/* 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 __INT_NANCUMSUM_H__
+#define __INT_NANCUMSUM_H__
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2nancumsumd2(in1, size, out) dnancumsuma(in1, size[0]* size[1], out)
+#define d2g2nancumsumd2(in1, size1, in2, size2, out) (in2[0]== 'r') ? dnancumsumrowa(in1, size1[0], size1[1], out) :dnancumsumcola(in1, size1[0], size1[1], out)
+
+#define s2nancumsums2(in1, size, out) snancumsuma(in1, size[0]* size[1], out)
+#define s2g2nancumsums2(in1, size1, in2, size2, out) (in2[0]== 'r') ? snancumsumrowa(in1, size1[0], size1[1], out) :snancumsumcola(in1, size1[0], size1[1], out)
+
+#define z2nancumsumz2(in1, size, out) znancumsuma(in1, size[0]* size[1],out)
+#define z2g2nancumsumz2(in1, size1, in2, size2, out) (in2[0]== 'r') ? znancumsumrowa(in1, size1[0], size1[1], out) :znancumsumcola(in1, size1[0], size1[1], out)
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_NANCUMSUM_H__*/
diff --git a/src/c/elementaryFunctions/nancumsum/dnancumsuma.c b/src/c/elementaryFunctions/nancumsum/dnancumsuma.c
new file mode 100644
index 0000000..135ab4b
--- /dev/null
+++ b/src/c/elementaryFunctions/nancumsum/dnancumsuma.c
@@ -0,0 +1,38 @@
+/* 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
+*/
+
+
+#include "nancumsum.h"
+#include "types.h"
+#include "uint16.h"
+#include "addition.h"
+
+void dnancumsuma(double *in, int size, double* out)
+{
+ double fin=0;
+
+
+
+ for (int i = 0; i < size; ++i)
+
+ {
+ if(!(isnan(in[i])))
+ {
+ fin= dadds(fin, in[i]);
+
+ }
+ out[i]= fin;
+
+ }
+
+
+}
diff --git a/src/c/elementaryFunctions/nancumsum/dnancumsumcola.c b/src/c/elementaryFunctions/nancumsum/dnancumsumcola.c
new file mode 100644
index 0000000..a49b394
--- /dev/null
+++ b/src/c/elementaryFunctions/nancumsum/dnancumsumcola.c
@@ -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
+*/
+
+
+#include "nancumsum.h"
+#include "types.h"
+#include "uint16.h"
+#include "addition.h"
+
+void dnancumsumcola(double *in, int row, int col, double* out)
+{
+ double fin=0;
+
+for(int i=0; i< row; i++)
+ {
+
+ for(int j= 0; j< col; j ++)
+ {
+ if(!(isnan(in[i+j*row])))
+
+ {
+
+ fin = dadds(fin, in[i+j*row]);
+
+
+
+ }
+ out[i+j*row]= fin;
+
+ }
+ fin=0;
+
+ }
+}
diff --git a/src/c/elementaryFunctions/nancumsum/dnancumsumrowa.c b/src/c/elementaryFunctions/nancumsum/dnancumsumrowa.c
new file mode 100644
index 0000000..45ce1ca
--- /dev/null
+++ b/src/c/elementaryFunctions/nancumsum/dnancumsumrowa.c
@@ -0,0 +1,45 @@
+/* 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
+*/
+
+
+#include "nancumsum.h"
+#include "types.h"
+#include "uint16.h"
+#include "addition.h"
+
+void dnancumsumrowa(double *in, int row, int col, double* out)
+{
+
+ double fin=0;
+
+
+for(int i=0; i< col; i++)
+ {
+
+ for(int j= 0; j< row; j ++)
+ {
+ if(!(isnan(in[j+i*row])))
+
+ {
+
+ fin = dadds(fin, in[j+i*row]);
+
+
+
+ }
+ out[j+i*row]= fin;
+
+ }
+ fin=0;
+
+ }
+}
diff --git a/src/c/elementaryFunctions/nancumsum/snancumsuma.c b/src/c/elementaryFunctions/nancumsum/snancumsuma.c
new file mode 100644
index 0000000..56d1633
--- /dev/null
+++ b/src/c/elementaryFunctions/nancumsum/snancumsuma.c
@@ -0,0 +1,38 @@
+/* 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
+*/
+
+
+#include "nancumsum.h"
+#include "types.h"
+#include "uint16.h"
+#include "addition.h"
+
+void snancumsuma(float *in, int size, float* out)
+{
+ float fin=0;
+
+
+
+ for (int i = 0; i < size; ++i)
+
+ {
+ if(!(isnan(in[i])))
+ {
+ fin= sadds(fin, in[i]);
+
+ }
+ out[i]= fin;
+
+ }
+
+
+}
diff --git a/src/c/elementaryFunctions/nancumsum/snancumsumcola.c b/src/c/elementaryFunctions/nancumsum/snancumsumcola.c
new file mode 100644
index 0000000..3b96ef0
--- /dev/null
+++ b/src/c/elementaryFunctions/nancumsum/snancumsumcola.c
@@ -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
+*/
+
+
+#include "nancumsum.h"
+#include "types.h"
+#include "uint16.h"
+#include "addition.h"
+
+void snancumsumcola(float *in, int row, int col, float* out)
+{
+ float fin=0;
+
+for(int i=0; i< row; i++)
+ {
+
+ for(int j= 0; j< col; j ++)
+ {
+ if(!(isnan(in[i+j*row])))
+
+ {
+
+ fin = sadds(fin, in[i+j*row]);
+
+
+
+ }
+ out[i+j*row]= fin;
+
+ }
+ fin=0;
+
+ }
+}
diff --git a/src/c/elementaryFunctions/nancumsum/snancumsumrowa.c b/src/c/elementaryFunctions/nancumsum/snancumsumrowa.c
new file mode 100644
index 0000000..7eef386
--- /dev/null
+++ b/src/c/elementaryFunctions/nancumsum/snancumsumrowa.c
@@ -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
+*/
+
+
+#include "nancumsum.h"
+#include "types.h"
+#include "uint16.h"
+#include "addition.h"
+
+void snancumsumrowa(float *in, int row, int col, float* out)
+{
+ float fin=0;
+
+
+for(int i=0; i< col; i++)
+ {
+
+ for(int j= 0; j< row; j ++)
+ {
+ if(!(isnan(in[j+i*row])))
+
+ {
+
+ fin = sadds(fin, in[j+i*row]);
+
+
+
+ }
+ out[j+i*row]= fin;
+
+ }
+ fin=0;
+
+ }
+}
diff --git a/src/c/elementaryFunctions/nancumsum/znancumsuma.c b/src/c/elementaryFunctions/nancumsum/znancumsuma.c
new file mode 100644
index 0000000..fd0a1e3
--- /dev/null
+++ b/src/c/elementaryFunctions/nancumsum/znancumsuma.c
@@ -0,0 +1,39 @@
+/* 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
+*/
+
+
+#include "nancumsum.h"
+#include "types.h"
+#include "uint16.h"
+#include "doubleComplex.h"
+#include "addition.h"
+
+void znancumsuma(doubleComplex *in, int size, doubleComplex* out)
+{
+ doubleComplex fin=0;
+
+
+
+ for (int i = 0; i < size; ++i)
+
+ {
+ if(!(isnan(zreals(in[i]))) && !(isnan(zimags(in[i]))) )
+ {
+ fin= zadds(fin, in[i]);
+
+ }
+ out[i]= fin;
+
+ }
+
+
+}
diff --git a/src/c/elementaryFunctions/nancumsum/znancumsumcola.c b/src/c/elementaryFunctions/nancumsum/znancumsumcola.c
new file mode 100644
index 0000000..c1ca16b
--- /dev/null
+++ b/src/c/elementaryFunctions/nancumsum/znancumsumcola.c
@@ -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
+*/
+
+
+#include "nancumsum.h"
+#include "types.h"
+#include "uint16.h"
+#include "addition.h"
+#include "doubleComplex.h"
+
+void znancumsumcola(doubleComplex* in, int row, int col, doubleComplex* out)
+{
+ doubleComplex fin= 0;
+
+for(int i=0; i< row; i++)
+ {
+
+ for(int j= 0; j< col; j ++)
+ {
+ if( !(isnan(zreals(in[i+j*row]))) && !(isnan(zimags(in[i+j*row]))) )
+
+ {
+
+ fin = zadds(fin, in[i+j*row]);
+
+
+
+ }
+ out[i+j*row]= fin;
+
+ }
+ fin= 0;
+
+ }
+}
diff --git a/src/c/elementaryFunctions/nancumsum/znancumsumrowa.c b/src/c/elementaryFunctions/nancumsum/znancumsumrowa.c
new file mode 100644
index 0000000..be04a4a
--- /dev/null
+++ b/src/c/elementaryFunctions/nancumsum/znancumsumrowa.c
@@ -0,0 +1,45 @@
+/* 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
+*/
+
+
+#include "nancumsum.h"
+#include "types.h"
+#include "doubleComplex.h"
+#include "uint16.h"
+#include "addition.h"
+
+void znancumsumrowa(doubleComplex *in, int row, int col, doubleComplex* out)
+{
+ doubleComplex fin=0;
+
+
+for(int i=0; i< col; i++)
+ {
+
+ for(int j= 0; j< row; j ++)
+ {
+ if(!(isnan(zreals(in[j+i*row]))) && !(isnan(zimags(in[j+i*row]))) )
+
+ {
+
+ fin = zadds(fin, in[j+i*row]);
+
+
+
+ }
+ out[j+i*row]= fin;
+
+ }
+ fin=0;
+
+ }
+}
diff --git a/src/c/statisticsFunctions/includes/nanstdev.h b/src/c/statisticsFunctions/includes/nanstdev.h
new file mode 100644
index 0000000..5c14093
--- /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/stdev.h b/src/c/statisticsFunctions/includes/stdev.h
new file mode 100644
index 0000000..16b4697
--- /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/interfaces/int_median.h b/src/c/statisticsFunctions/interfaces/int_median.h
index 2a21987..e9f3578 100644
--- a/src/c/statisticsFunctions/interfaces/int_median.h
+++ b/src/c/statisticsFunctions/interfaces/int_median.h
@@ -31,27 +31,9 @@ extern "C" {
#define z2g2medianz2(in1, size1, in2, size2, out) (in2[0]== 'r') ? zmedianrowa(in1, size1[0], size1[1], out) :zmediancola(in1, size1[0], size1[1], out)
-#define s2d0d0matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
-#define s2s0s0matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
-//#define s2u160u160matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
-//#define s2u80u80matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
-
-#define u162d0d0matrixu162(in1, size, in2, in3, out ) u16matrixa(in1, size[0], size[1], in2, in3, out)
-#define u162s0s0matrixu162(in1, size, in2, in3, out ) u16matrixa(in1, size[0], size[1], in2, in3, out)
-//#define s2u160u160matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
-//#define s2u80u80matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
-
-#define z2d0d0matrixz2(in1, size, in2, in3, out ) zmatrixa(in1, size[0], size[1], in2, in3, out)
-#define z2s0s0matrixz2(in1, size, in2, in3, out ) zmatrixa(in1, size[0], size[1], in2, in3, out)
-//#define s2u160u160matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
-//#define s2u80u80matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
-
-
-
-
#ifdef __cplusplus
} /* extern "C" */
#endif
-#endif /*__INT_MATRIX_H__*/
+#endif /*__INT_MEDIAN_H__*/
diff --git a/src/c/statisticsFunctions/interfaces/int_nanstdev.h b/src/c/statisticsFunctions/interfaces/int_nanstdev.h
new file mode 100644
index 0000000..1d652ee
--- /dev/null
+++ b/src/c/statisticsFunctions/interfaces/int_nanstdev.h
@@ -0,0 +1,23 @@
+ /*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 __INT_NANSTDEV_H__
+#define __INT_NANSTDEV_H__
+
+#define d2nanstdevd0(in1, size) dnanstdeva(in1,size[0]* size[1])
+#define d2g2nanstdevd2(in1, size1, in2, size2, out) (in2[0]=='r') ? dnanstdevrowa(in1, size1[0], size1[1], out) : dnanstdevcola(in1, size1[0] , size1[1], out)
+
+#define s2nanstdevs0(in1, size) snanstdeva(in1,size[0]* size[1])
+#define s2g2nanstdevs2(in1, size1, in2, size2, out) (in2[0]=='r') ? snanstdevrowa(in1, size1[0], size1[1], out) : snanstdevcola(in1, size1[0] , size1[1], out)
+
+
+#endif
diff --git a/src/c/statisticsFunctions/interfaces/int_stdev.h b/src/c/statisticsFunctions/interfaces/int_stdev.h
new file mode 100644
index 0000000..1e0b6a3
--- /dev/null
+++ b/src/c/statisticsFunctions/interfaces/int_stdev.h
@@ -0,0 +1,32 @@
+/* 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 __INT_STDEV_H__
+#define __INT_STDEV_H__
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2stdevd0(in1, size) dstdeva(in1, size[0]* size[1])
+#define d2g2stdevd2(in1, size1, in2, size2, out) (in2[0]== 'r') ? dstdevrowa(in1, size1[0], size1[1], out) :dstdevcola(in1, size1[0], size1[1], out)
+
+#define s2stdevs0(in1, size) sstdeva(in1, size[0]* size[1])
+#define s2g2stdevs2(in1, size1, in2, size2, out) (in2[0]== 'r') ? sstdevrowa(in1, size1[0], size1[1], out) :sstdevcola(in1, size1[0], size1[1], out)
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_STDEV_H__*/
diff --git a/src/c/statisticsFunctions/nanstdev/dnanstdeva.c b/src/c/statisticsFunctions/nanstdev/dnanstdeva.c
new file mode 100644
index 0000000..05b5433
--- /dev/null
+++ b/src/c/statisticsFunctions/nanstdev/dnanstdeva.c
@@ -0,0 +1,51 @@
+/* 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
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "nanstdev.h"
+#include "stdev.h"
+#include "types.h"
+double dnanstdeva(double* in, int size)
+{
+
+double temp[size];
+double out;
+int j=0;
+
+double a= 0.0/0.0;
+
+
+
+ for(int i=0; i< size; i++)
+ {
+ if( !(isnan(in[i])) )
+ {
+ temp[j]= in[i];
+ j=j+1;
+
+
+ }
+
+
+ }
+
+
+out= dstdeva(temp, j);
+
+if(j=0)
+return a;
+else
+return out;
+
+}
diff --git a/src/c/statisticsFunctions/nanstdev/dnanstdevcola.c b/src/c/statisticsFunctions/nanstdev/dnanstdevcola.c
new file mode 100644
index 0000000..a6704b0
--- /dev/null
+++ b/src/c/statisticsFunctions/nanstdev/dnanstdevcola.c
@@ -0,0 +1,35 @@
+/* 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
+*/
+
+
+#include "nanstdev.h"
+#include "types.h"
+#include "uint16.h"
+
+void dnanstdevcola(double *in, int row, int col, double* out)
+{
+ double inter[col];
+
+
+for(int i=0; i< row; i++)
+ {
+ for(int j=0 ; j< col; j++)
+ {
+ inter[j]= in[i+ (j*row)];
+
+ }
+ out[i]= dnanstdeva( inter, col);
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/nanstdev/dnanstdevrowa.c b/src/c/statisticsFunctions/nanstdev/dnanstdevrowa.c
new file mode 100644
index 0000000..52a1722
--- /dev/null
+++ b/src/c/statisticsFunctions/nanstdev/dnanstdevrowa.c
@@ -0,0 +1,36 @@
+/* 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
+*/
+
+
+#include "nanstdev.h"
+#include "types.h"
+#include "uint16.h"
+
+void dnanstdevrowa(double *in, int row, int col, double* out)
+{
+ double inter[row];
+
+
+
+for(int i=0; i< col; i++)
+ {
+ for(int j=0 ; j< row; j++)
+ {
+ inter[j]= in[j+ (i*row)];
+
+ }
+ out[i]= dnanstdeva( inter, row);
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/nanstdev/snanstdeva.c b/src/c/statisticsFunctions/nanstdev/snanstdeva.c
new file mode 100644
index 0000000..3e6ab15
--- /dev/null
+++ b/src/c/statisticsFunctions/nanstdev/snanstdeva.c
@@ -0,0 +1,51 @@
+/* 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
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "nanstdev.h"
+#include "stdev.h"
+#include "types.h"
+float snanstdeva(float* in, int size)
+{
+
+float temp[size];
+float out;
+int j=0;
+
+double a= 0.0/0.0;
+
+
+
+ for(int i=0; i< size; i++)
+ {
+ if( !(isnan(in[i])) )
+ {
+ temp[j]= in[i];
+ j=j+1;
+
+
+ }
+
+
+ }
+
+
+out= sstdeva(temp, j);
+
+if(j=0)
+return a;
+else
+return out;
+
+}
diff --git a/src/c/statisticsFunctions/nanstdev/snanstdevcola.c b/src/c/statisticsFunctions/nanstdev/snanstdevcola.c
new file mode 100644
index 0000000..987cb3f
--- /dev/null
+++ b/src/c/statisticsFunctions/nanstdev/snanstdevcola.c
@@ -0,0 +1,35 @@
+/* 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
+*/
+
+
+#include "nanstdev.h"
+#include "types.h"
+#include "uint16.h"
+
+void snanstdevcola(float *in, int row, int col, float* out)
+{
+ float inter[col];
+
+
+for(int i=0; i< row; i++)
+ {
+ for(int j=0 ; j< col; j++)
+ {
+ inter[j]= in[i+ (j*row)];
+
+ }
+ out[i]= snanstdeva( inter, col);
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/nanstdev/snanstdevrowa.c b/src/c/statisticsFunctions/nanstdev/snanstdevrowa.c
new file mode 100644
index 0000000..9c08682
--- /dev/null
+++ b/src/c/statisticsFunctions/nanstdev/snanstdevrowa.c
@@ -0,0 +1,36 @@
+/* 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
+*/
+
+
+#include "nanstdev.h"
+#include "types.h"
+#include "uint16.h"
+
+void snanstdevrowa(float *in, int row, int col, float* out)
+{
+ float inter[row];
+
+
+
+for(int i=0; i< col; i++)
+ {
+ for(int j=0 ; j< row; j++)
+ {
+ inter[j]= in[j+ (i*row)];
+
+ }
+ out[i]= snanstdeva( inter, row);
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/stdev/dstdeva.c b/src/c/statisticsFunctions/stdev/dstdeva.c
new file mode 100644
index 0000000..73a4bec
--- /dev/null
+++ b/src/c/statisticsFunctions/stdev/dstdeva.c
@@ -0,0 +1,29 @@
+/* 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
+*/
+
+
+#include "stdev.h"
+#include <math.h>
+#include "mean.h"
+#include "pow.h"
+#include "variance.h"
+#include "types.h"
+#include "uint16.h"
+
+double dstdeva(double *in, int size)
+{
+ double variance = dvariancea(in, size);
+
+ return dpows(variance, 0.5);
+
+
+}
diff --git a/src/c/statisticsFunctions/stdev/dstdevcola.c b/src/c/statisticsFunctions/stdev/dstdevcola.c
new file mode 100644
index 0000000..cdce81a
--- /dev/null
+++ b/src/c/statisticsFunctions/stdev/dstdevcola.c
@@ -0,0 +1,35 @@
+/* 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
+*/
+
+
+#include "stdev.h"
+#include "types.h"
+#include "uint16.h"
+
+void dstdevcola(double *in, int row, int col, double* out)
+{
+ double inter[col];
+
+
+for(int i=0; i< row; i++)
+ {
+ for(int j=0 ; j< col; j++)
+ {
+ inter[j]= in[i+ (j*row)];
+
+ }
+ out[i]= dstdeva( inter, col);
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/stdev/dstdevrowa.c b/src/c/statisticsFunctions/stdev/dstdevrowa.c
new file mode 100644
index 0000000..a4cf40c
--- /dev/null
+++ b/src/c/statisticsFunctions/stdev/dstdevrowa.c
@@ -0,0 +1,36 @@
+/* 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
+*/
+
+
+#include "stdev.h"
+#include "types.h"
+#include "uint16.h"
+
+void dstdevrowa(double *in, int row, int col, double* out)
+{
+ double inter[row];
+
+
+
+for(int i=0; i< col; i++)
+ {
+ for(int j=0 ; j< row; j++)
+ {
+ inter[j]= in[j+ (i*row)];
+
+ }
+ out[i]= dstdeva( inter, row);
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/stdev/sstdeva.c b/src/c/statisticsFunctions/stdev/sstdeva.c
new file mode 100644
index 0000000..db76d95
--- /dev/null
+++ b/src/c/statisticsFunctions/stdev/sstdeva.c
@@ -0,0 +1,29 @@
+/* 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
+*/
+
+
+#include "stdev.h"
+#include <math.h>
+#include "mean.h"
+#include "pow.h"
+#include "variance.h"
+#include "types.h"
+#include "uint16.h"
+
+float sstdeva(float *in, int size)
+{
+ float variance = svariancea(in, size);
+
+ return spows(variance, 0.5);
+
+
+}
diff --git a/src/c/statisticsFunctions/stdev/sstdevcola.c b/src/c/statisticsFunctions/stdev/sstdevcola.c
new file mode 100644
index 0000000..c72b4a5
--- /dev/null
+++ b/src/c/statisticsFunctions/stdev/sstdevcola.c
@@ -0,0 +1,35 @@
+/* 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
+*/
+
+
+#include "stdev.h"
+#include "types.h"
+#include "uint16.h"
+
+void sstdevcola(float *in, int row, int col, float* out)
+{
+ float inter[col];
+
+
+for(int i=0; i< row; i++)
+ {
+ for(int j=0 ; j< col; j++)
+ {
+ inter[j]= in[i+ (j*row)];
+
+ }
+ out[i]= sstdeva( inter, col);
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/stdev/sstdevrowa.c b/src/c/statisticsFunctions/stdev/sstdevrowa.c
new file mode 100644
index 0000000..415d409
--- /dev/null
+++ b/src/c/statisticsFunctions/stdev/sstdevrowa.c
@@ -0,0 +1,36 @@
+/* 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
+*/
+
+
+#include "stdev.h"
+#include "types.h"
+#include "uint16.h"
+
+void sstdevrowa(float *in, int row, int col, float* out)
+{
+ float inter[row];
+
+
+
+for(int i=0; i< col; i++)
+ {
+ for(int j=0 ; j< row; j++)
+ {
+ inter[j]= in[j+ (i*row)];
+
+ }
+ out[i]= sstdeva( inter, row);
+
+ }
+
+
+}