summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--demos/Brijesh_Demos/Test_Add_SCE.sce4
-rw-r--r--demos/Brijesh_Demos/Test_Addition.sci8
-rw-r--r--demos/Brijesh_Demos/Test_Cross.sci44
-rw-r--r--demos/Brijesh_Demos/Test_Erf.sci10
-rw-r--r--demos/Brijesh_Demos/Test_Erfc.sci10
-rw-r--r--demos/Brijesh_Demos/Test_Isreal.sci25
-rw-r--r--demos/Brijesh_Demos/Test_Toeplitz.sci50
-rw-r--r--includes/sci2clib.h10
-rw-r--r--jar/scilab_en_US_help.jarbin18207 -> 11210 bytes
-rw-r--r--macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci59
-rw-r--r--macros/findDeps/getAllHeaders.sci2
-rw-r--r--macros/findDeps/getAllInterfaces.sci2
-rw-r--r--macros/findDeps/getAllSources.sci8
-rw-r--r--src/c/specialFunctions/erf/derfa.c25
-rw-r--r--src/c/specialFunctions/erf/derfs.c22
-rw-r--r--src/c/specialFunctions/erf/serfa.c25
-rw-r--r--src/c/specialFunctions/erf/serfs.c22
-rw-r--r--src/c/specialFunctions/erfc/derfca.c25
-rw-r--r--src/c/specialFunctions/erfc/derfcs.c22
-rw-r--r--src/c/specialFunctions/erfc/serfca.c25
-rw-r--r--src/c/specialFunctions/erfc/serfcs.c22
-rw-r--r--src/c/specialFunctions/includes/erf.h35
-rw-r--r--src/c/specialFunctions/includes/erfc.h36
-rw-r--r--src/c/specialFunctions/interfaces/int_erf.h32
-rw-r--r--src/c/specialFunctions/interfaces/int_erfc.h32
25 files changed, 555 insertions, 0 deletions
diff --git a/demos/Brijesh_Demos/Test_Add_SCE.sce b/demos/Brijesh_Demos/Test_Add_SCE.sce
new file mode 100644
index 0000000..e250078
--- /dev/null
+++ b/demos/Brijesh_Demos/Test_Add_SCE.sce
@@ -0,0 +1,4 @@
+a = 1;
+b = 5;
+c = a+b;
+disp(c);
diff --git a/demos/Brijesh_Demos/Test_Addition.sci b/demos/Brijesh_Demos/Test_Addition.sci
new file mode 100644
index 0000000..856ba63
--- /dev/null
+++ b/demos/Brijesh_Demos/Test_Addition.sci
@@ -0,0 +1,8 @@
+function Test_Addition()
+ a = 1;
+ b = 2;
+ d = float(b);
+ e = float(a)
+ c = e+d;
+ disp(c);
+endfunction
diff --git a/demos/Brijesh_Demos/Test_Cross.sci b/demos/Brijesh_Demos/Test_Cross.sci
new file mode 100644
index 0000000..01206b3
--- /dev/null
+++ b/demos/Brijesh_Demos/Test_Cross.sci
@@ -0,0 +1,44 @@
+function Test_Cross
+ disp('Datatype: Double');
+ i1 = [1 2;3 4;5 6];
+ i2 = [7 8;9 10;11 12];
+ o1 = cross(i1,i2);
+ disp(o1);
+
+ disp('Datatype: DoubleComplex');
+ i3 = [1+1*%i 2+2*%i;3+3*%i 4+4*%i;5+5*%i 6+6*%i];
+ i4 = [7+7*%i 8+8*%i;9+9*%i 10+10*%i;11+11*%i 12+12*%i];
+ o2 = cross(i3,i4);
+ disp(o2);
+
+ disp('Float');
+ i5 = float([1 2;3 4;5 6]);
+ i6 = float([7 8;9 10;11 12]);
+ o3 = cross(i5,i6);
+ disp(o3);
+
+ disp('Datatype: uint8');
+ i7 = uint8([1 2;3 4;5 6]);
+ i8 = uint8([7 8;9 10;11 12]);
+ o4 = cross(i7,i8);
+ disp(o4);
+
+ disp('Datatype: int8');
+ i9 = int8([1 2;3 4;5 6]);
+ i10 = int8([7 8;9 10;11 12]);
+ o5 = cross(i9,i10);
+ disp(o5);
+
+ disp('Datatype: uint16');
+ i11 = uint16([1 2;3 4;5 6]);
+ i12 = uint16([7 8;9 10;11 12]);
+ o6 = cross(i11,i12);
+ disp(o6);
+
+ disp('Datatype: int16');
+ i13 = int8([1 2;3 4;5 6]);
+ i14 = int8([7 8;9 10;11 12]);
+ o7 = cross(i13,i14);
+ disp(o7);
+
+endfunction
diff --git a/demos/Brijesh_Demos/Test_Erf.sci b/demos/Brijesh_Demos/Test_Erf.sci
new file mode 100644
index 0000000..42208f6
--- /dev/null
+++ b/demos/Brijesh_Demos/Test_Erf.sci
@@ -0,0 +1,10 @@
+function Test_Erf
+ disp('Datatype: Double');
+ i1 = [1 2 .5; 7 .8 .9];
+ o1 = erf(i1);
+ disp(o1);
+ disp('Datatype: float');
+ i2 = float([1 2 .5; 7 .8 .9]);
+ o2 = erf(i2);
+ disp(o2);
+endfunction
diff --git a/demos/Brijesh_Demos/Test_Erfc.sci b/demos/Brijesh_Demos/Test_Erfc.sci
new file mode 100644
index 0000000..2ad8cfe
--- /dev/null
+++ b/demos/Brijesh_Demos/Test_Erfc.sci
@@ -0,0 +1,10 @@
+function Test_Erfc
+ disp('Datatype: Double');
+ i1 = [1 2 .5; 7 .8 .9];
+ o1 = erfc(i1);
+ disp(o1);
+ disp('Datatype: float');
+ i2 = float([1 2 .5; 7 .8 .9]);
+ o2 = erfc(i2);
+ disp(o2);
+endfunction
diff --git a/demos/Brijesh_Demos/Test_Isreal.sci b/demos/Brijesh_Demos/Test_Isreal.sci
new file mode 100644
index 0000000..4846d31
--- /dev/null
+++ b/demos/Brijesh_Demos/Test_Isreal.sci
@@ -0,0 +1,25 @@
+function Test_Isreal
+ disp('Datatype: Double');
+ i1 = [1 2 3];
+ i2 = [1 2 3];
+ o1 = isequal(i1,i2);
+ disp(o1);
+
+ disp('Datatype: Float');
+ i3 = float([4 5 6]);
+ i4 = float([4 5 6]);
+ o2 = isequal(i3,i4);
+ disp(o2);
+
+ disp('Datatype: DoubleComplex');
+ i5 = [%i*3 %i*3 %i*3];
+ i6 = [%i*3 %i*3 %i*3];
+ o3 = isequal(i5,i6);
+ disp(o3);
+
+ disp('Datatype: uint16');
+ i7 = uint16([4 5 6]);
+ i8 = uint16([4 5 6]);
+ o4 = isequal(i7,i8);
+ disp(o4);
+endfunction
diff --git a/demos/Brijesh_Demos/Test_Toeplitz.sci b/demos/Brijesh_Demos/Test_Toeplitz.sci
new file mode 100644
index 0000000..6d1269e
--- /dev/null
+++ b/demos/Brijesh_Demos/Test_Toeplitz.sci
@@ -0,0 +1,50 @@
+function Test_Toeplitz()
+ disp('Datatype: Double');
+ ai = [1 2 3 4];
+ bi = [1 6 7 8];
+ as1 = toeplitz(ai,bi);
+ disp(as1);
+
+ disp('Datatype: Float');
+ aid = float(ai);
+ bid = float(bi);
+ as2 = toeplitz(aid,bid);
+ disp(as2);
+
+ disp('Datatype: uint8');
+ aiu8 = uint8(ai);
+ biu8 = uint8(bi);
+ as3 = toeplitz(aiu8,biu8);
+ disp(as3);
+
+ disp('Datatype: int8');
+ ai8 = int8(ai);
+ bi8 = int8(bi);
+ as4= toeplitz(ai8,bi8);
+ disp(as4);
+
+ disp('Datatype: uint16');
+ aiu16 = uint16(ai);
+ biu16 = uint16(bi);
+ as5 = toeplitz(aiu16,biu16);
+ disp(as5);
+
+ disp('Datatype: int16');
+ ai16 = int16(ai);
+ bi16 = int16(bi);
+ as6 = toeplitz(ai16,bi16);
+ disp(as6);
+
+ disp('Datatype: Double Complex');
+ adc = [1+%i*1 2+%i*2 3+%i*3 4+%i*4];
+ bdc = [1+%i*1 6+%i*6 7+%i*7 8+%i*8];
+ as7 = toeplitz(adc,bdc);
+ disp(as7);
+
+ disp('Datatype: Char');
+ aic = ['a' 'b' 'c' 'd'];
+ bic = ['a' 'x' 'y' 'z'];
+ as9 = toeplitz(aic,bic);
+ disp(as9);
+
+endfunction
diff --git a/includes/sci2clib.h b/includes/sci2clib.h
index 7b691a0..dbfc8cc 100644
--- a/includes/sci2clib.h
+++ b/includes/sci2clib.h
@@ -80,6 +80,16 @@ extern "C" {
#include "interp1.h"
#include "int_interp1.h"
+/* SPECIAL FUNCTIONS */
+
+/* interfacing erf */
+#include "erf.h"
+#include "int_erf.h"
+
+/* interfacing erf */
+#include "erfc.h"
+#include "int_erfc.h"
+
/* ELEMENTARY FUNCTIONS */
#include "nextpow2.h"
diff --git a/jar/scilab_en_US_help.jar b/jar/scilab_en_US_help.jar
index a74d11a..fb924f1 100644
--- a/jar/scilab_en_US_help.jar
+++ b/jar/scilab_en_US_help.jar
Binary files differ
diff --git a/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci b/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci
index 56ba417..85472a8 100644
--- a/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci
+++ b/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci
@@ -4872,6 +4872,65 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,E
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+//------------------------------------
+//---- Class ERF ----------------
+//------------------------------------
+ClassName = 'erf';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+
+
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'erf';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+//------------------------------------
+//---- Class ERFC ----------------
+//------------------------------------
+ClassName = 'erfc';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'erfc';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
// -------------------
// --- Class Spec. ---
// -------------------
diff --git a/macros/findDeps/getAllHeaders.sci b/macros/findDeps/getAllHeaders.sci
index ed4a995..cf606ab 100644
--- a/macros/findDeps/getAllHeaders.sci
+++ b/macros/findDeps/getAllHeaders.sci
@@ -225,6 +225,8 @@ function allHeaders = getAllHeaders(SharedInfo)
"src/c/elementaryFunctions/includes/gcd.h"
"src/c/elementaryFunctions/includes/lcm.h"
"src/c/elementaryFunctions/includes/sinc.h"
+ "src/c/specialFunctions/includes/erf.h"
+ "src/c/specialFunctions/includes/erfc.h"
"src/c/CACSD/includes/syslin.h"
"src/c/CACSD/includes/lqr.h"
"src/c/CACSD/includes/lqe.h"
diff --git a/macros/findDeps/getAllInterfaces.sci b/macros/findDeps/getAllInterfaces.sci
index e9f19a2..977ea76 100644
--- a/macros/findDeps/getAllInterfaces.sci
+++ b/macros/findDeps/getAllInterfaces.sci
@@ -220,6 +220,8 @@ function allInterfaces = getAllInterfaces(SharedInfo)
"src/c/elementaryFunctions/interfaces/int_primes.h"
"src/c/elementaryFunctions/interfaces/int_factor.h"
"src/c/elementaryFunctions/interfaces/int_sinc.h"
+ "src/c/specialFunctions/interfaces/int_erf.h"
+ "src/c/specialFunctions/interfaces/int_erfc.h"
"src/c/CACSD/interfaces/int_syslin.h"
"src/c/CACSD/interfaces/int_lqr.h"
"src/c/CACSD/interfaces/int_lqe.h"
diff --git a/macros/findDeps/getAllSources.sci b/macros/findDeps/getAllSources.sci
index 12ce1be..60908c8 100644
--- a/macros/findDeps/getAllSources.sci
+++ b/macros/findDeps/getAllSources.sci
@@ -1328,6 +1328,14 @@ function allSources = getAllSources(SharedInfo,BuildTool)
"src/c/elementaryFunctions/discrete_mathematics/primes/sprimess.c"
"src/c/elementaryFunctions/discrete_mathematics/factor/dfactors.c"
"src/c/elementaryFunctions/discrete_mathematics/factor/sfactors.c"
+ "src/c/specialFunctions/erf/derfs.c"
+ "src/c/specialFunctions/erf/derfa.c"
+ "src/c/specialFunctions/erf/serfs.c"
+ "src/c/specialFunctions/erf/serfa.c"
+ "src/c/specialFunctions/erfc/derfcs.c"
+ "src/c/specialFunctions/erfc/derfca.c"
+ "src/c/specialFunctions/erfc/serfcs.c"
+ "src/c/specialFunctions/erfc/serfca.c"
"src/c/CACSD/syslin/dsyslina.c"
"src/c/CACSD/lqr/dlqra.c"
"src/c/CACSD/lqe/dlqea.c"
diff --git a/src/c/specialFunctions/erf/derfa.c b/src/c/specialFunctions/erf/derfa.c
new file mode 100644
index 0000000..972d743
--- /dev/null
+++ b/src/c/specialFunctions/erf/derfa.c
@@ -0,0 +1,25 @@
+/* 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"
+
+void derfa(double* inp1, int sizer, int sizec,double* out)
+{
+ for (int i = 0; i < sizer*sizec; i++)
+ {
+ out[i] = erf(inp1[i]);
+ }
+}
+
diff --git a/src/c/specialFunctions/erf/derfs.c b/src/c/specialFunctions/erf/derfs.c
new file mode 100644
index 0000000..22b5d64
--- /dev/null
+++ b/src/c/specialFunctions/erf/derfs.c
@@ -0,0 +1,22 @@
+/* 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"
+
+double derfs(double inp1)
+{
+ return erf(inp1);
+}
+
diff --git a/src/c/specialFunctions/erf/serfa.c b/src/c/specialFunctions/erf/serfa.c
new file mode 100644
index 0000000..0db4a7b
--- /dev/null
+++ b/src/c/specialFunctions/erf/serfa.c
@@ -0,0 +1,25 @@
+/* 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"
+
+void serfa(float* inp1, int sizer, int sizec,float* out)
+{
+ for (int i = 0; i < sizer*sizec; i++)
+ {
+ out[i] = erf(inp1[i]);
+ }
+}
+
diff --git a/src/c/specialFunctions/erf/serfs.c b/src/c/specialFunctions/erf/serfs.c
new file mode 100644
index 0000000..66638a1
--- /dev/null
+++ b/src/c/specialFunctions/erf/serfs.c
@@ -0,0 +1,22 @@
+/* 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"
+
+float serfs(float inp1)
+{
+ return erf(inp1);
+}
+
diff --git a/src/c/specialFunctions/erfc/derfca.c b/src/c/specialFunctions/erfc/derfca.c
new file mode 100644
index 0000000..85c92ef
--- /dev/null
+++ b/src/c/specialFunctions/erfc/derfca.c
@@ -0,0 +1,25 @@
+/* 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 "erfc.h"
+
+void derfca(double* inp1, int sizer, int sizec, double* out)
+{
+ for (int i = 0; i < sizer*sizec; i++)
+ {
+ out[i] = derfcs(inp1[i]);
+ }
+}
+
diff --git a/src/c/specialFunctions/erfc/derfcs.c b/src/c/specialFunctions/erfc/derfcs.c
new file mode 100644
index 0000000..31c9846
--- /dev/null
+++ b/src/c/specialFunctions/erfc/derfcs.c
@@ -0,0 +1,22 @@
+/* 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 "erfc.h"
+
+double derfcs(double inp1)
+{
+ return (1-erf(inp1));
+}
+
diff --git a/src/c/specialFunctions/erfc/serfca.c b/src/c/specialFunctions/erfc/serfca.c
new file mode 100644
index 0000000..469c5a1
--- /dev/null
+++ b/src/c/specialFunctions/erfc/serfca.c
@@ -0,0 +1,25 @@
+/* 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 "erfc.h"
+
+void serfca(float* inp1, int sizer, int sizec, float* out)
+{
+ for (int i = 0; i < sizer*sizec; i++)
+ {
+ out[i] = serfcs(inp1[i]);
+ }
+}
+
diff --git a/src/c/specialFunctions/erfc/serfcs.c b/src/c/specialFunctions/erfc/serfcs.c
new file mode 100644
index 0000000..3f93a80
--- /dev/null
+++ b/src/c/specialFunctions/erfc/serfcs.c
@@ -0,0 +1,22 @@
+/* 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 "erfc.h"
+
+float serfcs(float inp1)
+{
+ return (1-erf(inp1));
+}
+
diff --git a/src/c/specialFunctions/includes/erf.h b/src/c/specialFunctions/includes/erf.h
new file mode 100644
index 0000000..86bb15d
--- /dev/null
+++ b/src/c/specialFunctions/includes/erf.h
@@ -0,0 +1,35 @@
+/*
+ * 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
+ *
+ */
+
+#ifndef __ERF_H__
+#define __ERF_H__
+#include "types.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "uint8.h"
+#include "uint16.h"
+#include "int16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double derfs(double inp1);
+float serfs(float inp1);
+void derfa(double* inp1, int sizer, int sizec,double* out);
+void serfa(float* inp1, int sizer, int sizec,float* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__ERF_H__*/
diff --git a/src/c/specialFunctions/includes/erfc.h b/src/c/specialFunctions/includes/erfc.h
new file mode 100644
index 0000000..77847ab
--- /dev/null
+++ b/src/c/specialFunctions/includes/erfc.h
@@ -0,0 +1,36 @@
+/*
+ * 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
+ *
+ */
+
+#ifndef __ERFC_H__
+#define __ERFC_H__
+#include "types.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "uint8.h"
+#include "uint16.h"
+#include "int16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double derfcs(double inp1);
+void derfca(double* inp1, int sizer, int sizec,double* out);
+float serfcs(float inp1);
+void serfca(float* inp1, int sizer, int sizec, float* out);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__ERFC_H__*/
diff --git a/src/c/specialFunctions/interfaces/int_erf.h b/src/c/specialFunctions/interfaces/int_erf.h
new file mode 100644
index 0000000..87f11f9
--- /dev/null
+++ b/src/c/specialFunctions/interfaces/int_erf.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_ERF_H__
+#define __INT_ERF_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+#define d0erfd0(in1) derfs(in1)
+#define s0erfs0(in1) serfs(in1)
+#define d2erfd2(in1,size,out) derfa(in1,size[0],size[1],out)
+#define s2erfs2(in1,size,out) serfa(in1,size[0],size[1],out)
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_ERF_H__*/
diff --git a/src/c/specialFunctions/interfaces/int_erfc.h b/src/c/specialFunctions/interfaces/int_erfc.h
new file mode 100644
index 0000000..64ae0fa
--- /dev/null
+++ b/src/c/specialFunctions/interfaces/int_erfc.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_ERFC_H__
+#define __INT_ERFC_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+#define d0erfcd0(in1) derfcs(in1)
+#define s0erfcs0(in1) serfcs(in1)
+#define d2erfcd2(in1,size,out) derfca(in1,size[0],size[1],out)
+#define s2erfcs2(in1,size,out) serfca(in1,size[0],size[1],out)
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_ERFC_H__*/