summaryrefslogtreecommitdiff
path: root/src/c/elementaryFunctions
diff options
context:
space:
mode:
Diffstat (limited to 'src/c/elementaryFunctions')
-rw-r--r--src/c/elementaryFunctions/includes/nanmax.h16
-rw-r--r--src/c/elementaryFunctions/includes/nansum.h42
-rw-r--r--src/c/elementaryFunctions/interfaces/int_nanmax.h19
-rw-r--r--src/c/elementaryFunctions/interfaces/int_nansum.h36
-rw-r--r--src/c/elementaryFunctions/nanmax/dnanmax1a.c58
-rw-r--r--src/c/elementaryFunctions/nanmax/dnanmax2a.c (renamed from src/c/elementaryFunctions/nanmax/znanmaxa.c)16
-rw-r--r--src/c/elementaryFunctions/nanmax/dnanmaxcol1a.c35
-rw-r--r--src/c/elementaryFunctions/nanmax/dnanmaxcola.c4
-rw-r--r--src/c/elementaryFunctions/nanmax/dnanmaxrow1a.c37
-rw-r--r--src/c/elementaryFunctions/nanmax/dnanmaxrowa.c7
-rw-r--r--src/c/elementaryFunctions/nanmax/snanmax1a.c58
-rw-r--r--src/c/elementaryFunctions/nanmax/snanmax2a.c53
-rw-r--r--src/c/elementaryFunctions/nanmax/snanmaxcol1a.c35
-rw-r--r--src/c/elementaryFunctions/nanmax/snanmaxcola.c4
-rw-r--r--src/c/elementaryFunctions/nanmax/snanmaxrow1a.c37
-rw-r--r--src/c/elementaryFunctions/nanmax/snanmaxrowa.c7
-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.c (renamed from src/c/elementaryFunctions/nanmax/znanmaxcola.c)6
-rw-r--r--src/c/elementaryFunctions/nansum/znansumrowa.c (renamed from src/c/elementaryFunctions/nanmax/znanmaxrowa.c)6
25 files changed, 689 insertions, 40 deletions
diff --git a/src/c/elementaryFunctions/includes/nanmax.h b/src/c/elementaryFunctions/includes/nanmax.h
index bea83f7..83cfa0e 100644
--- a/src/c/elementaryFunctions/includes/nanmax.h
+++ b/src/c/elementaryFunctions/includes/nanmax.h
@@ -24,12 +24,20 @@ extern "C" {
#endif
double dnanmaxa (double* , int);
-void dnanmaxrowa (double*, int , int, double*);
-void dnanmaxcola (double*, int , int, double*);
+double dnanmax1a (double* , int, int , double*);
+double dnanmax2a (double* , int, double*);
+void dnanmaxrowa (double*, int , int, double*, double*);
+void dnanmaxcola (double*, int , int, double*, double*);
+void dnanmaxrow1a (double*, int , int, double*);
+void dnanmaxcol1a (double*, int , int, double*);
float snanmaxa (float* , int);
-void snanmaxrowa (float*, int , int, float*);
-void snanmaxcola (float*, int , int, float*);
+float snanmax1a (float* , int, int , float*);
+float snanmax2a (float* , int, float*);
+void snanmaxrowa (float*, int , int, float*, float*);
+void snanmaxcola (float*, int , int, float*, float*);
+void snanmaxrow1a (float*, int , int, float*);
+void snanmaxcol1a (float*, int , int, float*);
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_nanmax.h b/src/c/elementaryFunctions/interfaces/int_nanmax.h
index dd3df71..6096290 100644
--- a/src/c/elementaryFunctions/interfaces/int_nanmax.h
+++ b/src/c/elementaryFunctions/interfaces/int_nanmax.h
@@ -13,15 +13,14 @@
#ifndef __INT_NANMAX_H__
#define __INT_NANMAX_H__
-#define d2nanmaxd0(in1, size) dnanmaxa(in1,size[0]* size[1])
-#define d2g2nanmaxd2(in1, size1, in2, size2, out) (in2[0]=='r') ? dnanmaxrowa(in1, size1[0], size1[1], out) : dnanmaxcola(in1, size1[0] , size1[1], out)
-
-#define s2nanmaxs0(in1, size) snanmaxa(in1,size[0]* size[1])
-#define s2g2nanmaxs2(in1, size1, in2, size2, out) (in2[0]=='r') ? snanmaxrowa(in1, size1[0], size1[1], out) : snanmaxcola(in1, size1[0] , size1[1], out)
-
-
-//#define i160i160pmoduloi160(in1, in2) i16pmodulos(in1,in2)
-//#define i162i162pmoduloi162(in1, size1, in2, size2, out) i16pmoduloa(in1,size1[0]*size1[1],in2, out)
-
+#define d2nanmaxd0(in1, size) dnanmaxa(in1,size[0]* size[1])
+#define d2nanmaxd0d2(in1, size, out) dnanmax1a(in1,size[0], size[1], out)
+#define d2g2nanmaxd2(in1, size1, in2, size2, out) (in2[0]=='r') ? dnanmaxrow1a(in1, size1[0], size1[1], out) : dnanmaxcol1a(in1, size1[0] , size1[1], out)
+#define d2g2nanmaxd2d2(in1, size1, in2, size2, out1, out2) (in2[0]=='r') ? dnanmaxrowa(in1, size1[0], size1[1], out1, out2) : dnanmaxcola(in1, size1[0] , size1[1], out1, out2)
+
+#define s2nanmaxs0(in1, size) snanmaxa(in1,size[0]* size[1])
+#define s2nanmaxs0s2(in1, size, out) snanmax1a(in1,size[0], size[1], out)
+#define s2g2nanmaxs2(in1, size1, in2, size2, out) (in2[0]=='r') ? snanmaxrow1a(in1, size1[0], size1[1], out) : snanmaxcol1a(in1, size1[0] , size1[1], out)
+#define s2g2nanmaxs2s2(in1, size1, in2, size2, out1, out2) (in2[0]=='r') ? snanmaxrowa(in1, size1[0], size1[1], out1, out2) : snanmaxcola(in1, size1[0] , size1[1], out1, out2)
#endif
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/nanmax/dnanmax1a.c b/src/c/elementaryFunctions/nanmax/dnanmax1a.c
new file mode 100644
index 0000000..a0e7eed
--- /dev/null
+++ b/src/c/elementaryFunctions/nanmax/dnanmax1a.c
@@ -0,0 +1,58 @@
+/* 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 "nanmax.h"
+#include "types.h"
+double dnanmax1a(double* in, int row, int col, double* out)
+{
+double high;
+int ival=0;
+for(int i=0; i<row*col; i++)
+{
+ if( !(isnan(in[i])) )
+ {
+ high= in[i];
+ break;
+
+ }
+}
+
+
+
+ for(int i=0; i< row*col; i++)
+ {
+ if( !(isnan(in[i])) )
+ {
+ if( in[i] > high)
+ {
+ high= in[i];
+ ival=i;
+
+ }
+
+
+ }
+
+
+ }
+
+out[0]= ival%row +1;
+out[1]= ival/row +1;
+
+
+
+return high;
+
+}
diff --git a/src/c/elementaryFunctions/nanmax/znanmaxa.c b/src/c/elementaryFunctions/nanmax/dnanmax2a.c
index 6283bf1..82ddda6 100644
--- a/src/c/elementaryFunctions/nanmax/znanmaxa.c
+++ b/src/c/elementaryFunctions/nanmax/dnanmax2a.c
@@ -15,19 +15,16 @@
#include <math.h>
#include "nanmax.h"
#include "types.h"
-#include "doubleComplex.h"
-#include "abs.h"
-
-doubleComplex znanmaxa(doubleComplex* in, int size)
+double dnanmax2a(double* in, int size, double* out)
{
-doubleComplex high=0; int k=0;
+double high;
for(int i=0; i<size; i++)
{
if( !(isnan(in[i])) )
{
high= in[i];
break;
- k= 1;
+
}
}
@@ -37,9 +34,10 @@ for(int i=0; i<size; i++)
{
if( !(isnan(in[i])) )
{
- if( zabss(in[i]) > zabss(high))
+ if( in[i] > high)
{
high= in[i];
+ *out= i+1;
}
@@ -50,8 +48,6 @@ for(int i=0; i<size; i++)
}
-if(k != 0)
return high;
-else
-return - 0.0/0.0;
+
}
diff --git a/src/c/elementaryFunctions/nanmax/dnanmaxcol1a.c b/src/c/elementaryFunctions/nanmax/dnanmaxcol1a.c
new file mode 100644
index 0000000..1198dce
--- /dev/null
+++ b/src/c/elementaryFunctions/nanmax/dnanmaxcol1a.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 "nanmax.h"
+#include "types.h"
+#include "uint16.h"
+
+void dnanmaxcol1a(double *in, int row, int col, double* out1)
+{
+ double inter[col];
+
+
+for(int i=0; i< row; i++)
+ {
+ for(int j=0 ; j< col; j++)
+ {
+ inter[j]= in[i+ (j*row)];
+
+ }
+ out1[i]= dnanmaxa( inter, col);
+
+ }
+
+
+}
diff --git a/src/c/elementaryFunctions/nanmax/dnanmaxcola.c b/src/c/elementaryFunctions/nanmax/dnanmaxcola.c
index 9db0742..388337e 100644
--- a/src/c/elementaryFunctions/nanmax/dnanmaxcola.c
+++ b/src/c/elementaryFunctions/nanmax/dnanmaxcola.c
@@ -15,7 +15,7 @@
#include "types.h"
#include "uint16.h"
-void dnanmaxcola(double *in, int row, int col, double* out)
+void dnanmaxcola(double *in, int row, int col, double* out1, double* out2)
{
double inter[col];
@@ -27,7 +27,7 @@ for(int i=0; i< row; i++)
inter[j]= in[i+ (j*row)];
}
- out[i]= dnanmaxa( inter, col);
+ out1[i]= dnanmax2a( inter, col, &out2[i]);
}
diff --git a/src/c/elementaryFunctions/nanmax/dnanmaxrow1a.c b/src/c/elementaryFunctions/nanmax/dnanmaxrow1a.c
new file mode 100644
index 0000000..c4a7a4d
--- /dev/null
+++ b/src/c/elementaryFunctions/nanmax/dnanmaxrow1a.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 "nanmax.h"
+#include "types.h"
+#include "uint16.h"
+
+void dnanmaxrow1a(double *in, int row, int col, double* out1)
+{
+ double inter[row];
+
+
+
+for(int i=0; i< col; i++)
+ {
+ for(int j=0 ; j< row; j++)
+ {
+ inter[j]= in[j+ (i*row)];
+
+ }
+ out1[i]= dnanmaxa( inter, row);
+
+ }
+
+
+
+}
diff --git a/src/c/elementaryFunctions/nanmax/dnanmaxrowa.c b/src/c/elementaryFunctions/nanmax/dnanmaxrowa.c
index 191fa01..47d4d38 100644
--- a/src/c/elementaryFunctions/nanmax/dnanmaxrowa.c
+++ b/src/c/elementaryFunctions/nanmax/dnanmaxrowa.c
@@ -15,9 +15,9 @@
#include "types.h"
#include "uint16.h"
-void dnanmaxrowa(double *in, int row, int col, double* out)
+void dnanmaxrowa(double *in, int row, int col, double* out1, double* out2)
{
- double inter[row];
+ double inter[row];
@@ -28,9 +28,10 @@ for(int i=0; i< col; i++)
inter[j]= in[j+ (i*row)];
}
- out[i]= dnanmaxa( inter, row);
+ out1[i]= dnanmax2a( inter, row, &out2[i]);
}
+
}
diff --git a/src/c/elementaryFunctions/nanmax/snanmax1a.c b/src/c/elementaryFunctions/nanmax/snanmax1a.c
new file mode 100644
index 0000000..7420c3a
--- /dev/null
+++ b/src/c/elementaryFunctions/nanmax/snanmax1a.c
@@ -0,0 +1,58 @@
+/* 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 "nanmax.h"
+#include "types.h"
+float snanmax1a(float* in, int row, int col, float* out)
+{
+float high;
+int ival=0;
+for(int i=0; i<row*col; i++)
+{
+ if( !(isnan(in[i])) )
+ {
+ high= in[i];
+ break;
+
+ }
+}
+
+
+
+ for(int i=0; i< row*col; i++)
+ {
+ if( !(isnan(in[i])) )
+ {
+ if( in[i] > high)
+ {
+ high= in[i];
+ ival=i;
+
+ }
+
+
+ }
+
+
+ }
+
+out[0]= ival%row +1;
+out[1]= ival/row +1;
+
+
+
+return high;
+
+}
diff --git a/src/c/elementaryFunctions/nanmax/snanmax2a.c b/src/c/elementaryFunctions/nanmax/snanmax2a.c
new file mode 100644
index 0000000..59c282d
--- /dev/null
+++ b/src/c/elementaryFunctions/nanmax/snanmax2a.c
@@ -0,0 +1,53 @@
+/* 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 "nanmax.h"
+#include "types.h"
+float snanmax2a(float* in, int size, float* out)
+{
+float high;
+for(int i=0; i<size; i++)
+{
+ if( !(isnan(in[i])) )
+ {
+ high= in[i];
+ break;
+
+ }
+}
+
+
+
+ for(int i=0; i< size; i++)
+ {
+ if( !(isnan(in[i])) )
+ {
+ if( in[i] > high)
+ {
+ high= in[i];
+ *out= i+1;
+
+ }
+
+
+ }
+
+
+ }
+
+
+return high;
+
+}
diff --git a/src/c/elementaryFunctions/nanmax/snanmaxcol1a.c b/src/c/elementaryFunctions/nanmax/snanmaxcol1a.c
new file mode 100644
index 0000000..a737033
--- /dev/null
+++ b/src/c/elementaryFunctions/nanmax/snanmaxcol1a.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 "nanmax.h"
+#include "types.h"
+#include "uint16.h"
+
+void snanmaxcol1a(float *in, int row, int col, float* out1)
+{
+ float inter[col];
+
+
+for(int i=0; i< row; i++)
+ {
+ for(int j=0 ; j< col; j++)
+ {
+ inter[j]= in[i+ (j*row)];
+
+ }
+ out1[i]= snanmaxa( inter, col);
+
+ }
+
+
+}
diff --git a/src/c/elementaryFunctions/nanmax/snanmaxcola.c b/src/c/elementaryFunctions/nanmax/snanmaxcola.c
index b408052..2703319 100644
--- a/src/c/elementaryFunctions/nanmax/snanmaxcola.c
+++ b/src/c/elementaryFunctions/nanmax/snanmaxcola.c
@@ -15,7 +15,7 @@
#include "types.h"
#include "uint16.h"
-void snanmaxcola(float *in, int row, int col, float* out)
+void snanmaxcola(float *in, int row, int col, float* out1, float* out2)
{
float inter[col];
@@ -27,7 +27,7 @@ for(int i=0; i< row; i++)
inter[j]= in[i+ (j*row)];
}
- out[i]= snanmaxa( inter, col);
+ out1[i]= snanmax2a( inter, col, &out2[i]);
}
diff --git a/src/c/elementaryFunctions/nanmax/snanmaxrow1a.c b/src/c/elementaryFunctions/nanmax/snanmaxrow1a.c
new file mode 100644
index 0000000..09d062c
--- /dev/null
+++ b/src/c/elementaryFunctions/nanmax/snanmaxrow1a.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 "nanmax.h"
+#include "types.h"
+#include "uint16.h"
+
+void snanmaxrow1a(float *in, int row, int col, float* out1)
+{
+ float inter[row];
+
+
+
+for(int i=0; i< col; i++)
+ {
+ for(int j=0 ; j< row; j++)
+ {
+ inter[j]= in[j+ (i*row)];
+
+ }
+ out1[i]= snanmaxa( inter, row);
+
+ }
+
+
+
+}
diff --git a/src/c/elementaryFunctions/nanmax/snanmaxrowa.c b/src/c/elementaryFunctions/nanmax/snanmaxrowa.c
index ab1ce0c..c438ae0 100644
--- a/src/c/elementaryFunctions/nanmax/snanmaxrowa.c
+++ b/src/c/elementaryFunctions/nanmax/snanmaxrowa.c
@@ -15,9 +15,9 @@
#include "types.h"
#include "uint16.h"
-void snanmaxrowa(float *in, int row, int col, float* out)
+void snanmaxrowa(float *in, int row, int col, float* out1, float* out2)
{
- float inter[row];
+ float inter[row];
@@ -28,9 +28,10 @@ for(int i=0; i< col; i++)
inter[j]= in[j+ (i*row)];
}
- out[i]= snanmaxa( inter, row);
+ out1[i]= snanmax2a( inter, row, &out2[i]);
}
+
}
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/nanmax/znanmaxcola.c b/src/c/elementaryFunctions/nansum/znansumcola.c
index ffb96b2..2543c49 100644
--- a/src/c/elementaryFunctions/nanmax/znanmaxcola.c
+++ b/src/c/elementaryFunctions/nansum/znansumcola.c
@@ -11,12 +11,12 @@
*/
-#include "nanmax.h"
+#include "nansum.h"
#include "types.h"
#include "uint16.h"
#include "doubleComplex.h"
-void znanmaxcola(doubleComplex *in, int row, int col, doubleComplex* out)
+void znansumcola(doubleComplex *in, int row, int col, doubleComplex * out)
{
doubleComplex inter[col];
@@ -28,7 +28,7 @@ for(int i=0; i< row; i++)
inter[j]= in[i+ (j*row)];
}
- out[i]= znanmaxa( inter, col);
+ out[i]= znansuma( inter, col);
}
diff --git a/src/c/elementaryFunctions/nanmax/znanmaxrowa.c b/src/c/elementaryFunctions/nansum/znansumrowa.c
index e035e77..39535c9 100644
--- a/src/c/elementaryFunctions/nanmax/znanmaxrowa.c
+++ b/src/c/elementaryFunctions/nansum/znansumrowa.c
@@ -11,12 +11,12 @@
*/
-#include "nanmax.h"
+#include "nansum.h"
#include "types.h"
#include "uint16.h"
#include "doubleComplex.h"
-void znanmaxrowa(doubleComplex *in, int row, int col, doubleComplex* out)
+void znansumrowa(doubleComplex *in, int row, int col, doubleComplex* out)
{
doubleComplex inter[row];
@@ -29,7 +29,7 @@ for(int i=0; i< col; i++)
inter[j]= in[j+ (i*row)];
}
- out[i]= znanmaxa( inter, row);
+ out[i]= znansuma( inter, row);
}