From e3630a1a245b9b7a2aba285a242bea200398ff6a Mon Sep 17 00:00:00 2001 From: Abhinav Dronamraju Date: Sat, 29 Jul 2017 02:28:04 +0530 Subject: nansum added --- includes/sci2clib.h | 3 ++ .../ToolInitialization/INIT_FillSCI2LibCDirs.sci | 5 +++ macros/findDeps/getAllHeaders.sci | 1 + macros/findDeps/getAllInterfaces.sci | 1 + macros/findDeps/getAllSources.sci | 11 +++++- src/c/elementaryFunctions/includes/nansum.h | 42 ++++++++++++++++++++++ src/c/elementaryFunctions/interfaces/int_nansum.h | 36 +++++++++++++++++++ src/c/elementaryFunctions/nansum/dnansuma.c | 37 +++++++++++++++++++ src/c/elementaryFunctions/nansum/dnansumcola.c | 35 ++++++++++++++++++ src/c/elementaryFunctions/nansum/dnansumrowa.c | 36 +++++++++++++++++++ src/c/elementaryFunctions/nansum/snansuma.c | 37 +++++++++++++++++++ src/c/elementaryFunctions/nansum/snansumcola.c | 35 ++++++++++++++++++ src/c/elementaryFunctions/nansum/snansumrowa.c | 36 +++++++++++++++++++ src/c/elementaryFunctions/nansum/znansuma.c | 37 +++++++++++++++++++ src/c/elementaryFunctions/nansum/znansumcola.c | 36 +++++++++++++++++++ src/c/elementaryFunctions/nansum/znansumrowa.c | 37 +++++++++++++++++++ 16 files changed, 424 insertions(+), 1 deletion(-) create mode 100644 src/c/elementaryFunctions/includes/nansum.h create mode 100644 src/c/elementaryFunctions/interfaces/int_nansum.h create mode 100644 src/c/elementaryFunctions/nansum/dnansuma.c create mode 100644 src/c/elementaryFunctions/nansum/dnansumcola.c create mode 100644 src/c/elementaryFunctions/nansum/dnansumrowa.c create mode 100644 src/c/elementaryFunctions/nansum/snansuma.c create mode 100644 src/c/elementaryFunctions/nansum/snansumcola.c create mode 100644 src/c/elementaryFunctions/nansum/snansumrowa.c create mode 100644 src/c/elementaryFunctions/nansum/znansuma.c create mode 100644 src/c/elementaryFunctions/nansum/znansumcola.c create mode 100644 src/c/elementaryFunctions/nansum/znansumrowa.c 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); + + } + + +} -- cgit