summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/sci2clib.h3
-rw-r--r--macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci5
-rw-r--r--macros/findDeps/getAllHeaders.sci1
-rw-r--r--macros/findDeps/getAllInterfaces.sci1
-rw-r--r--macros/findDeps/getAllSources.sci11
-rw-r--r--src/c/elementaryFunctions/includes/nansum.h42
-rw-r--r--src/c/elementaryFunctions/interfaces/int_nansum.h36
-rw-r--r--src/c/elementaryFunctions/nansum/dnansuma.c37
-rw-r--r--src/c/elementaryFunctions/nansum/dnansumcola.c35
-rw-r--r--src/c/elementaryFunctions/nansum/dnansumrowa.c36
-rw-r--r--src/c/elementaryFunctions/nansum/snansuma.c37
-rw-r--r--src/c/elementaryFunctions/nansum/snansumcola.c35
-rw-r--r--src/c/elementaryFunctions/nansum/snansumrowa.c36
-rw-r--r--src/c/elementaryFunctions/nansum/znansuma.c37
-rw-r--r--src/c/elementaryFunctions/nansum/znansumcola.c36
-rw-r--r--src/c/elementaryFunctions/nansum/znansumrowa.c37
16 files changed, 424 insertions, 1 deletions
diff --git a/includes/sci2clib.h b/includes/sci2clib.h
index 360c5a6..0a5b3de 100644
--- a/includes/sci2clib.h
+++ b/includes/sci2clib.h
@@ -197,6 +197,9 @@ extern "C" {
/*interfacing nanmin*/
#include "nanmin.h"
#include "int_nanmin.h"
+/*interfacing nanmin*/
+#include "nansum.h"
+#include "int_nansum.h"
/*interfacing issquare*/
#include "issquare.h"
#include "int_issquare.h"
diff --git a/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci b/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci
index 0a73896..ea9176f 100644
--- a/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci
+++ b/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci
@@ -2120,6 +2120,11 @@ PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file',
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'nansum'; // BJ : Done AS : Float_Done
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
FunctionName = 'nanmedian'; // BJ : Done AS : Float_Done
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
diff --git a/macros/findDeps/getAllHeaders.sci b/macros/findDeps/getAllHeaders.sci
index 22daaad..e351b04 100644
--- a/macros/findDeps/getAllHeaders.sci
+++ b/macros/findDeps/getAllHeaders.sci
@@ -136,6 +136,7 @@ function allHeaders = getAllHeaders(SharedInfo)
"src/c/elementaryFunctions/includes/nanmax.h"
"src/c/elementaryFunctions/includes/nanmean.h"
"src/c/elementaryFunctions/includes/nanmin.h"
+ "src/c/elementaryFunctions/includes/nansum.h"
"src/c/elementaryFunctions/includes/issquare.h"
"src/c/elementaryFunctions/includes/isscalar.h"
"src/c/elementaryFunctions/includes/isvector.h"
diff --git a/macros/findDeps/getAllInterfaces.sci b/macros/findDeps/getAllInterfaces.sci
index fe181bc..1191062 100644
--- a/macros/findDeps/getAllInterfaces.sci
+++ b/macros/findDeps/getAllInterfaces.sci
@@ -107,6 +107,7 @@ function allInterfaces = getAllInterfaces(SharedInfo)
"src/c/elementaryFunctions/interfaces/int_nanmax.h"
"src/c/elementaryFunctions/interfaces/int_nanmean.h"
"src/c/elementaryFunctions/interfaces/int_nanmin.h"
+ "src/c/elementaryFunctions/interfaces/int_nansum.h"
"src/c/elementaryFunctions/interfaces/int_issquare.h"
"src/c/elementaryFunctions/interfaces/int_isscalar.h"
"src/c/elementaryFunctions/interfaces/int_isvector.h"
diff --git a/macros/findDeps/getAllSources.sci b/macros/findDeps/getAllSources.sci
index a71031c..642f964 100644
--- a/macros/findDeps/getAllSources.sci
+++ b/macros/findDeps/getAllSources.sci
@@ -823,7 +823,7 @@ function allSources = getAllSources(SharedInfo,BuildTool)
"src/c/elementaryFunctions/nanmax/snanmaxcola.c"
"src/c/elementaryFunctions/nanmax/snanmaxrowa.c"
"src/c/elementaryFunctions/nanmax/snanmaxcol1a.c"
- "src/c/elementaryFunctions/nanmax/snanmaxrow1a.c""
+ "src/c/elementaryFunctions/nanmax/snanmaxrow1a.c"
"src/c/elementaryFunctions/nanmean/dnanmeana.c"
"src/c/elementaryFunctions/nanmean/dnanmeanrowa.c"
"src/c/elementaryFunctions/nanmean/dnanmeancola.c"
@@ -903,6 +903,15 @@ function allSources = getAllSources(SharedInfo,BuildTool)
"src/c/elementaryFunctions/atand/datands.c"
"src/c/elementaryFunctions/atand/satanda.c"
"src/c/elementaryFunctions/atand/satands.c"
+ "src/c/elementaryFunctions/nansum/dnansuma.c"
+ "src/c/elementaryFunctions/nansum/dnansumrowa.c"
+ "src/c/elementaryFunctions/nansum/dnansumcola.c"
+ "src/c/elementaryFunctions/nansum/snansuma.c"
+ "src/c/elementaryFunctions/nansum/snansumrowa.c"
+ "src/c/elementaryFunctions/nansum/snansumcola.c"
+ "src/c/elementaryFunctions/nansum/znansuma.c"
+ "src/c/elementaryFunctions/nansum/znansumcola.c"
+ "src/c/elementaryFunctions/nansum/znansumrowa.c"
"src/c/elementaryFunctions/discrete_mathematics/gcd/u8gcda.c"
"src/c/elementaryFunctions/discrete_mathematics/lcm/u8lcma.c"
"src/c/elementaryFunctions/isequal/disequals.c"
diff --git a/src/c/elementaryFunctions/includes/nansum.h b/src/c/elementaryFunctions/includes/nansum.h
new file mode 100644
index 0000000..5a36663
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/nansum.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 __NANSUM_H__
+#define __NANSUM_H__
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "uint16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dnansuma(double* , int );
+void dnansumrowa(double*, int, int, double*);
+void dnansumcola(double*, int, int, double*);
+
+float snansuma(float* , int );
+void snansumrowa(float*, int, int, float*);
+void snansumcola(float*, int, int, float*);
+
+doubleComplex znansuma(doubleComplex* , int );
+void znansumrowa(doubleComplex*, int, int, doubleComplex*);
+void znansumcola(doubleComplex*, int, int, doubleComplex*);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__MATRIX_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_nansum.h b/src/c/elementaryFunctions/interfaces/int_nansum.h
new file mode 100644
index 0000000..149d69b
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_nansum.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_NANSUM_H__
+#define __INT_NANSUM_H__
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2nansumd0(in1, size) dnansuma(in1, size[0]* size[1])
+#define d2g2nansumd2(in1, size1, in2, size2, out) (in2[0]== 'r') ? dnansumrowa(in1, size1[0], size1[1], out) :dnansumcola(in1, size1[0], size1[1], out)
+
+#define s2nansums0(in1, size) snansuma(in1, size[0]* size[1])
+#define s2g2nansums2(in1, size1, in2, size2, out) (in2[0]== 'r') ? snansumrowa(in1, size1[0], size1[1], out) :snansumcola(in1, size1[0], size1[1], out)
+
+#define z2nansumz0(in1, size) znansuma(in1, size[0]* size[1])
+#define z2g2nansumz2(in1, size1, in2, size2, out) (in2[0]== 'r') ? znansumrowa(in1, size1[0], size1[1], out) :znansumcola(in1, size1[0], size1[1], out)
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_MATRIX_H__*/
diff --git a/src/c/elementaryFunctions/nansum/dnansuma.c b/src/c/elementaryFunctions/nansum/dnansuma.c
new file mode 100644
index 0000000..adc4a02
--- /dev/null
+++ b/src/c/elementaryFunctions/nansum/dnansuma.c
@@ -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
+*/
+
+
+#include "nansum.h"
+#include "types.h"
+#include "uint16.h"
+#include "addition.h"
+
+double dnansuma(double *in, int size)
+{
+ double fin=0;
+
+
+ for (int i = 0; i < size; ++i)
+
+ {
+ if(!(isnan(in[i])))
+ {
+ fin= dadds(fin, in[i]);
+
+ }
+
+
+ }
+
+ return fin;
+}
diff --git a/src/c/elementaryFunctions/nansum/dnansumcola.c b/src/c/elementaryFunctions/nansum/dnansumcola.c
new file mode 100644
index 0000000..eb40638
--- /dev/null
+++ b/src/c/elementaryFunctions/nansum/dnansumcola.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 "nansum.h"
+#include "types.h"
+#include "uint16.h"
+
+void dnansumcola(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]= dnansuma( inter, col);
+
+ }
+
+
+}
diff --git a/src/c/elementaryFunctions/nansum/dnansumrowa.c b/src/c/elementaryFunctions/nansum/dnansumrowa.c
new file mode 100644
index 0000000..e8a7cfb
--- /dev/null
+++ b/src/c/elementaryFunctions/nansum/dnansumrowa.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 "nansum.h"
+#include "types.h"
+#include "uint16.h"
+
+void dnansumrowa(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]= dnansuma( inter, row);
+
+ }
+
+
+}
diff --git a/src/c/elementaryFunctions/nansum/snansuma.c b/src/c/elementaryFunctions/nansum/snansuma.c
new file mode 100644
index 0000000..8c1cebb
--- /dev/null
+++ b/src/c/elementaryFunctions/nansum/snansuma.c
@@ -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
+*/
+
+
+#include "nansum.h"
+#include "types.h"
+#include "uint16.h"
+#include "addition.h"
+
+float snansuma(float *in, int size)
+{
+ float fin=0;
+
+
+ for (int i = 0; i < size; ++i)
+
+ {
+ if(!(isnan(in[i])))
+ {
+ fin= sadds(fin, in[i]);
+
+ }
+
+
+ }
+
+ return fin;
+}
diff --git a/src/c/elementaryFunctions/nansum/snansumcola.c b/src/c/elementaryFunctions/nansum/snansumcola.c
new file mode 100644
index 0000000..d83e6f0
--- /dev/null
+++ b/src/c/elementaryFunctions/nansum/snansumcola.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 "nansum.h"
+#include "types.h"
+#include "uint16.h"
+
+void snansumcola(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]= snansuma( inter, col);
+
+ }
+
+
+}
diff --git a/src/c/elementaryFunctions/nansum/snansumrowa.c b/src/c/elementaryFunctions/nansum/snansumrowa.c
new file mode 100644
index 0000000..5442694
--- /dev/null
+++ b/src/c/elementaryFunctions/nansum/snansumrowa.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 "nansum.h"
+#include "types.h"
+#include "uint16.h"
+
+void snansumrowa(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]= snansuma( inter, row);
+
+ }
+
+
+}
diff --git a/src/c/elementaryFunctions/nansum/znansuma.c b/src/c/elementaryFunctions/nansum/znansuma.c
new file mode 100644
index 0000000..cb839f0
--- /dev/null
+++ b/src/c/elementaryFunctions/nansum/znansuma.c
@@ -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
+*/
+
+
+#include "nansum.h"
+#include "types.h"
+#include "doubleComplex.h"
+#include "addition.h"
+
+doubleComplex znansuma(doubleComplex *in, int size)
+{
+ doubleComplex fin=0;
+
+
+ for (int i = 0; i < size; ++i)
+
+ {
+ if(!(isnan(zreals(in[i]))) && !(isnan(zimags(in[i]))))
+ {
+ fin= zadds(fin, in[i]);
+
+ }
+
+
+ }
+
+ return fin;
+}
diff --git a/src/c/elementaryFunctions/nansum/znansumcola.c b/src/c/elementaryFunctions/nansum/znansumcola.c
new file mode 100644
index 0000000..2543c49
--- /dev/null
+++ b/src/c/elementaryFunctions/nansum/znansumcola.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 "nansum.h"
+#include "types.h"
+#include "uint16.h"
+#include "doubleComplex.h"
+
+void znansumcola(doubleComplex *in, int row, int col, doubleComplex * out)
+{
+ doubleComplex inter[col];
+
+
+for(int i=0; i< row; i++)
+ {
+ for(int j=0 ; j< col; j++)
+ {
+ inter[j]= in[i+ (j*row)];
+
+ }
+ out[i]= znansuma( inter, col);
+
+ }
+
+
+}
diff --git a/src/c/elementaryFunctions/nansum/znansumrowa.c b/src/c/elementaryFunctions/nansum/znansumrowa.c
new file mode 100644
index 0000000..39535c9
--- /dev/null
+++ b/src/c/elementaryFunctions/nansum/znansumrowa.c
@@ -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
+*/
+
+
+#include "nansum.h"
+#include "types.h"
+#include "uint16.h"
+#include "doubleComplex.h"
+
+void znansumrowa(doubleComplex *in, int row, int col, doubleComplex* out)
+{
+ doubleComplex inter[row];
+
+
+
+for(int i=0; i< col; i++)
+ {
+ for(int j=0 ; j< row; j++)
+ {
+ inter[j]= in[j+ (i*row)];
+
+ }
+ out[i]= znansuma( inter, row);
+
+ }
+
+
+}