summaryrefslogtreecommitdiff
path: root/src/c
diff options
context:
space:
mode:
Diffstat (limited to 'src/c')
-rw-r--r--src/c/elementaryFunctions/includes/nanmin.h3
-rw-r--r--src/c/elementaryFunctions/interfaces/int_nanmin.h2
-rw-r--r--src/c/elementaryFunctions/nanmin/dnanmincola.c27
-rw-r--r--src/c/elementaryFunctions/nanmin/dnanminrowa.c11
-rw-r--r--src/c/specialFunctions/calerf/dcalerfa.c29
-rw-r--r--src/c/specialFunctions/calerf/dcalerfs.c29
-rw-r--r--src/c/specialFunctions/calerf/scalerfa.c29
-rw-r--r--src/c/specialFunctions/calerf/scalerfs.c29
-rw-r--r--src/c/specialFunctions/includes/calerf.h41
-rw-r--r--src/c/specialFunctions/includes/erf.h21
-rw-r--r--src/c/specialFunctions/interfaces/int_calerf.h32
11 files changed, 219 insertions, 34 deletions
diff --git a/src/c/elementaryFunctions/includes/nanmin.h b/src/c/elementaryFunctions/includes/nanmin.h
index adeff6b..34bbfef 100644
--- a/src/c/elementaryFunctions/includes/nanmin.h
+++ b/src/c/elementaryFunctions/includes/nanmin.h
@@ -30,7 +30,8 @@ double dnanminnps(double in);
void dnanminrownpa(double *in, int row, int col, double* out);
void dnanmincolnpa(double *in, int row, int col, double* out);
-
+void dnanminrowa(double *in, int row, int col, double *out, double *p);
+void dnanmincola(double *in, int row, int col, double *out, double *p);
diff --git a/src/c/elementaryFunctions/interfaces/int_nanmin.h b/src/c/elementaryFunctions/interfaces/int_nanmin.h
index 408dac6..e351a24 100644
--- a/src/c/elementaryFunctions/interfaces/int_nanmin.h
+++ b/src/c/elementaryFunctions/interfaces/int_nanmin.h
@@ -22,7 +22,7 @@ extern "C" {
#define d0nanmind0(in1) dnanminnps(in1)
#define d2g2nanmind2(in1, size1, in2, size2, out) (in2[0]=='r') ? dnanminrownpa(in1, size1[0], size1[1], out) : dnanmincolnpa(in1, size1[0] , size1[1], out)
-//#define d2g2nanmind2d2(in1, size1, in2, size2, p, out) (in2[0]=='r') ? dnanminrowa(in1, size1[0], size1[1], p, out) : dnanmincola(in1, size1[0] , size1[1], p, out)
+#define d2g2nanmind2d2(in1, size1, in2, size2, out, p) (in2[0]=='r') ? dnanminrowa(in1, size1[0], size1[1], p, out) : dnanmincola(in1, size1[0] , size1[1], out, p)
#ifdef __cplusplus
} /* extern "C" */
diff --git a/src/c/elementaryFunctions/nanmin/dnanmincola.c b/src/c/elementaryFunctions/nanmin/dnanmincola.c
index 0c4d202..35b94c0 100644
--- a/src/c/elementaryFunctions/nanmin/dnanmincola.c
+++ b/src/c/elementaryFunctions/nanmin/dnanmincola.c
@@ -15,22 +15,19 @@
#include <math.h>
#include "nanmin.h"
-void dnanmincola(double *in, int row, int col, double *p, double *out)
+void dnanmincola(double *in, int row, int col, double *out, double *p)
{
- double inter[col];
-
-
-for(int i=0; i< row; i++)
+ double inter[col];
+ double position[col];
+
+ for(int i=0; i < row; i++)
+ {
+ for(int j=0; j < col; i++)
{
- for(int j=0 ; j< col; j++)
- {
- inter[j]= in[i+ (j*row)];
-
- }
- out[i]= dnanmina( inter, 1, col, p);
-
+ inter[j]= in[i+ (j*row)];
}
-
-
+
+ out[i]= dnanmina(inter, 1, col, position);
+
+ }
}
-
diff --git a/src/c/elementaryFunctions/nanmin/dnanminrowa.c b/src/c/elementaryFunctions/nanmin/dnanminrowa.c
index d255ef1..0909fc2 100644
--- a/src/c/elementaryFunctions/nanmin/dnanminrowa.c
+++ b/src/c/elementaryFunctions/nanmin/dnanminrowa.c
@@ -15,22 +15,21 @@
#include <math.h>
#include "nanmin.h"
-void dnanminrowa(double *in, int row, int col, double *p, double *out)
+void dnanminrowa(double *in, int row, int col, double *out, double *p)
{
- double inter[row];
+ double inter[row], *position;
-for(int i=0; i< col; i++)
+ for(int i=0; i< col; i++)
{
for(int j=0 ; j< row; j++)
{
inter[j]= in[j+ (i*row)];
}
- out[i]= dnanmina( inter, row, 1, p);
-
+ out[i]= dnanmina( inter, row, 1, position);
}
-
+ //p = position;
}
diff --git a/src/c/specialFunctions/calerf/dcalerfa.c b/src/c/specialFunctions/calerf/dcalerfa.c
new file mode 100644
index 0000000..1637925
--- /dev/null
+++ b/src/c/specialFunctions/calerf/dcalerfa.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: Brijesh Gupta C R
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "erf.h"
+#include "erfc.h"
+#include "erfcx.h"
+#include "calerf.h"
+
+
+void dcalerfa(double* inp1, int size,double inp2, double* out)
+{
+ for (int i = 0; i < size; i++)
+ {
+ out[i] = dcalerfs(inp1[i],inp2);
+ }
+}
+
diff --git a/src/c/specialFunctions/calerf/dcalerfs.c b/src/c/specialFunctions/calerf/dcalerfs.c
new file mode 100644
index 0000000..c360865
--- /dev/null
+++ b/src/c/specialFunctions/calerf/dcalerfs.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: Brijesh Gupta C R
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "erf.h"
+#include "erfc.h"
+#include "erfcx.h"
+
+double dcalerfs (double inp1, double inp2)
+{
+ if (inp2 == 0)
+ return erf(inp1);
+ if (inp2 == 1)
+ return derfcs(inp1);
+ if (inp2 == 2)
+ return derfcxs(inp1);
+}
+
diff --git a/src/c/specialFunctions/calerf/scalerfa.c b/src/c/specialFunctions/calerf/scalerfa.c
new file mode 100644
index 0000000..726ab1d
--- /dev/null
+++ b/src/c/specialFunctions/calerf/scalerfa.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: Brijesh Gupta C R
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "erf.h"
+#include "erfc.h"
+#include "erfcx.h"
+#include "calerf.h"
+
+
+void scalerfa(float* inp1, int size,double inp2, float* out)
+{
+ for (int i = 0; i < size; i++)
+ {
+ out[i] = scalerfs(inp1[i],inp2);
+ }
+}
+
diff --git a/src/c/specialFunctions/calerf/scalerfs.c b/src/c/specialFunctions/calerf/scalerfs.c
new file mode 100644
index 0000000..ffc48c3
--- /dev/null
+++ b/src/c/specialFunctions/calerf/scalerfs.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: Brijesh Gupta C R
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "erf.h"
+#include "erfc.h"
+#include "erfcx.h"
+
+float scalerfs (float inp1, double inp2)
+{
+ if (inp2 == 0)
+ return erf(inp1);
+ if (inp2 == 1)
+ return derfcs(inp1);
+ if (inp2 == 2)
+ return derfcxs(inp1);
+}
+
diff --git a/src/c/specialFunctions/includes/calerf.h b/src/c/specialFunctions/includes/calerf.h
new file mode 100644
index 0000000..9bb63eb
--- /dev/null
+++ b/src/c/specialFunctions/includes/calerf.h
@@ -0,0 +1,41 @@
+ /* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, which
+ you should have received as part of this distribution. The terms
+ are also available at
+ http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ Author: Brijesh Gupta C R
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __CALERF_H__
+#define __CALERF_H__
+#include "types.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "uint8.h"
+#include "uint16.h"
+#include "int16.h"
+#include "erf.h"
+#include "erfc.h"
+#include "erfcx.h"
+#include "calerf.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dcalerfs (double inp1, double inp2);
+void dcalerfa(double* inp1, int size,double inp2, double* out);
+
+float scalerfs (float inp1, double inp2);
+void scalerfa(float* inp1, int size,double inp2, float* out);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__CALERF_H__*/
diff --git a/src/c/specialFunctions/includes/erf.h b/src/c/specialFunctions/includes/erf.h
index 86bb15d..4b3cde4 100644
--- a/src/c/specialFunctions/includes/erf.h
+++ b/src/c/specialFunctions/includes/erf.h
@@ -1,15 +1,14 @@
-/*
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
- *
- * 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
- *
- */
+ /* Copyright (C) 2017 - IIT Bombay - FOSSEE
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, which
+ you should have received as part of this distribution. The terms
+ are also available at
+ http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ Author: Brijesh Gupta C R
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
#ifndef __ERF_H__
#define __ERF_H__
#include "types.h"
diff --git a/src/c/specialFunctions/interfaces/int_calerf.h b/src/c/specialFunctions/interfaces/int_calerf.h
new file mode 100644
index 0000000..ee75bdc
--- /dev/null
+++ b/src/c/specialFunctions/interfaces/int_calerf.h
@@ -0,0 +1,32 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, which
+ you should have received as part of this distribution. The terms
+ are also available at
+ http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ Author: Brijesh Gupta C R
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_CALERF_H__
+#define __INT_CALERF_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+#define d0d0calerfd0(in1,in2) dcalerfs(in1, in2)
+#define d2d0calerfd2(in1, size, in2, out) dcalerfa(in1, size[0]*size[1], in2, out)
+
+#define s0d0calerfs0(in1,in2) scalerfs(in1, in2)
+#define s2d0calerfs2(in1, size, in2, out) scalerfa(in1, size[0]*size[1], in2, out)
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_CALERF_H__*/