summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--2.3-1/demos/Abhinav_Demos/nan_max.sci48
-rw-r--r--2.3-1/demos/Abhinav_Demos/nan_median.sci2
-rw-r--r--2.3-1/demos/Abhinav_Demos/nan_sum.sci35
-rw-r--r--2.3-1/demos/Brijesh_Demos/test_calerf.sci18
-rw-r--r--2.3-1/demos/Brijesh_Demos/test_nanmin.sci5
-rw-r--r--2.3-1/includes/sci2clib.h4
-rw-r--r--2.3-1/jar/scilab_en_US_help.jarbin11210 -> 23856 bytes
-rw-r--r--2.3-1/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci43
-rw-r--r--2.3-1/macros/findDeps/getAllHeaders.sci1
-rw-r--r--2.3-1/macros/findDeps/getAllInterfaces.sci1
-rw-r--r--2.3-1/macros/findDeps/getAllSources.sci6
-rw-r--r--2.3-1/src/c/elementaryFunctions/includes/nanmin.h3
-rw-r--r--2.3-1/src/c/elementaryFunctions/interfaces/int_nanmin.h2
-rw-r--r--2.3-1/src/c/elementaryFunctions/nanmin/dnanmincola.c27
-rw-r--r--2.3-1/src/c/elementaryFunctions/nanmin/dnanminrowa.c11
-rw-r--r--2.3-1/src/c/specialFunctions/calerf/dcalerfa.c29
-rw-r--r--2.3-1/src/c/specialFunctions/calerf/dcalerfs.c29
-rw-r--r--2.3-1/src/c/specialFunctions/calerf/scalerfa.c29
-rw-r--r--2.3-1/src/c/specialFunctions/calerf/scalerfs.c29
-rw-r--r--2.3-1/src/c/specialFunctions/includes/calerf.h41
-rw-r--r--2.3-1/src/c/specialFunctions/includes/erf.h21
-rw-r--r--2.3-1/src/c/specialFunctions/interfaces/int_calerf.h32
22 files changed, 359 insertions, 57 deletions
diff --git a/2.3-1/demos/Abhinav_Demos/nan_max.sci b/2.3-1/demos/Abhinav_Demos/nan_max.sci
index ce7e10ef..c840e069 100644
--- a/2.3-1/demos/Abhinav_Demos/nan_max.sci
+++ b/2.3-1/demos/Abhinav_Demos/nan_max.sci
@@ -1,9 +1,43 @@
-function nan_max
- x= double([1 2 1 0.8; 21 1 13 0.1])
- [a,b]= nanmin(x)
- disp(a)
- disp('')
- disp(b)
- disp('')
+function nan_max ()
+ x= [1 %nan 1 0.8; 21 1 13 %nan]
+ disp('Double')
+ a= nanmax(x)
+ disp(a)
+ disp('')
+ [b,c]= nanmax(x)
+ disp(b)
+ disp('')
+ disp(c)
+ disp('')
+ d= nanmax(x)
+ disp(d)
+ disp('')
+ e=nanmax(x,'r')
+ f=nanmax(x,'c')
+ disp(e)
+ disp('')
+ disp(f)
+ disp('')
+
+ y= float(x)
+ disp('Float')
+ g= nanmax(y)
+ disp(g)
+ disp('')
+ [h,i]= nanmax(y)
+ disp(h)
+ disp('')
+ disp(i)
+ disp('')
+ j= nanmax(y)
+ disp(j)
+ disp('')
+ k=nanmax(y,'r')
+ l=nanmax(y,'c')
+ disp(k)
+ disp('')
+ disp(l)
+ disp('')
+
endfunction
diff --git a/2.3-1/demos/Abhinav_Demos/nan_median.sci b/2.3-1/demos/Abhinav_Demos/nan_median.sci
index 993b2d72..f2b350c0 100644
--- a/2.3-1/demos/Abhinav_Demos/nan_median.sci
+++ b/2.3-1/demos/Abhinav_Demos/nan_median.sci
@@ -27,7 +27,5 @@ disp(nanmedian(y, 'c'))
disp('')
-
-
endfunction
diff --git a/2.3-1/demos/Abhinav_Demos/nan_sum.sci b/2.3-1/demos/Abhinav_Demos/nan_sum.sci
new file mode 100644
index 00000000..b6d10173
--- /dev/null
+++ b/2.3-1/demos/Abhinav_Demos/nan_sum.sci
@@ -0,0 +1,35 @@
+function nan_sum ()
+ x= [1 %nan 1 0.8; 21 1 13 %nan]
+ disp('Double')
+ a= nansum(x)
+ disp(a)
+ disp('')
+ b= nansum(x, 'r')
+ disp(b)
+ disp('')
+ c= nansum(x,'c')
+ disp(c)
+ disp('')
+ y= float(x)
+ disp('Float')
+ d= nansum(y)
+ disp(d)
+ disp('')
+ e= nansum(y, 'r')
+ disp(e)
+ disp('')
+ f= nansum(y,'c')
+ disp(f)
+ disp('')
+ z= [%nan , 12, 1219, %nan + %i*121; 121 %nan 90 12]
+ disp('DoubleComplex')
+ g= nansum(z)
+ disp(g)
+ disp('')
+ h= nansum(z, 'r')
+ disp(h)
+ disp('')
+ i= nansum(z,'c')
+ disp(i)
+ disp('')
+endfunction
diff --git a/2.3-1/demos/Brijesh_Demos/test_calerf.sci b/2.3-1/demos/Brijesh_Demos/test_calerf.sci
new file mode 100644
index 00000000..b700c5dc
--- /dev/null
+++ b/2.3-1/demos/Brijesh_Demos/test_calerf.sci
@@ -0,0 +1,18 @@
+function test_calerf
+ disp('Datatype: Double');
+ i1 = [0.9 .754; .32 -.84];
+ o1 = calerf(i1,0);
+ disp(o1);
+ disp(" ");
+ o2 = calerf(i1,1);
+ disp(o2);
+ disp(" ");
+ o3 = calerf(i1,2);
+ disp(o3);
+ disp(" ");
+ disp('Datatype: float');
+ i2 = float([0.9 .754; .32 -.84]);
+ o4 = calerf(i2,2);
+ disp(o4);
+ disp(" ");
+endfunction
diff --git a/2.3-1/demos/Brijesh_Demos/test_nanmin.sci b/2.3-1/demos/Brijesh_Demos/test_nanmin.sci
index a77f0c90..1665df3a 100644
--- a/2.3-1/demos/Brijesh_Demos/test_nanmin.sci
+++ b/2.3-1/demos/Brijesh_Demos/test_nanmin.sci
@@ -1,10 +1,9 @@
function test_nanmin
disp('Datatype: Double');
i1 = [ 1 2 %nan; 3 %nan -4; %nan 5 6];
- //[o1, p1] = nanmin(i1,'c');
- o1 = nanmin(i1);
+ [o1, p1] = nanmin(i1);
disp(o1);
- //disp(p1);
+ disp(p1);
//disp('Datatype: Float');
//i2 = float([1 %nan;3 4;5 %nan]);
//o2 = nanmean(i2,'r');
diff --git a/2.3-1/includes/sci2clib.h b/2.3-1/includes/sci2clib.h
index 0a5b3deb..5f94371e 100644
--- a/2.3-1/includes/sci2clib.h
+++ b/2.3-1/includes/sci2clib.h
@@ -82,6 +82,10 @@ extern "C" {
/* SPECIAL FUNCTIONS */
+/* interfacing calerf */
+#include "calerf.h"
+#include "int_calerf.h"
+
/* interfacing erf */
#include "erf.h"
#include "int_erf.h"
diff --git a/2.3-1/jar/scilab_en_US_help.jar b/2.3-1/jar/scilab_en_US_help.jar
index e524efb9..3e0f09b1 100644
--- a/2.3-1/jar/scilab_en_US_help.jar
+++ b/2.3-1/jar/scilab_en_US_help.jar
Binary files differ
diff --git a/2.3-1/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci b/2.3-1/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci
index ea9176f9..2ca622fe 100644
--- a/2.3-1/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci
+++ b/2.3-1/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci
@@ -1061,7 +1061,6 @@ PrintStringInfo('d2'+ArgSeparator+'d0d2',ClassFileName,'file','y');
PrintStringInfo('d0'+ArgSeparator+'d0d2',ClassFileName,'file','y');
PrintStringInfo('d2g2'+ArgSeparator+'d2',ClassFileName,'file','y');
PrintStringInfo('d2g2'+ArgSeparator+'d2d2',ClassFileName,'file','y');
-//PrintStringInfo('d2g2'+ArgSeparator+'d2d2',ClassFileName,'file','y');
// --- Annotation Function And Function List Function. ---
@@ -1152,15 +1151,6 @@ PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
-PrintStringInfo('NIN= 1',ClassFileName,'file','y');
-PrintStringInfo('NOUT= 2',ClassFileName,'file','y');
-PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
-PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
-PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
-PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
-PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
-PrintStringInfo('OUT(1).SZ(2)= ''2''',ClassFileName,'file','y');
-
PrintStringInfo('NIN= 2',ClassFileName,'file','y');
PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
@@ -1169,7 +1159,6 @@ PrintStringInfo('OUT(1).SZ(2)= FA_SZ_SEL2(IN(1).SZ(2),IN(2).VAL)',ClassFileName,
//---Function list class. ----
ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
PrintStringInfo('d2'+ArgSeparator+'d0',ClassFileName,'file','y');
-PrintStringInfo('d2'+ArgSeparator+'d0d2',ClassFileName,'file','y');
PrintStringInfo('d2g2'+ArgSeparator+'d2',ClassFileName,'file','y');
PrintStringInfo('s2'+ArgSeparator+'s0',ClassFileName,'file','y');
PrintStringInfo('s2g2'+ArgSeparator+'s2',ClassFileName,'file','y');
@@ -5092,6 +5081,36 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,Ex
//------------------------------------
+//---- Class CALERF ----------------
+//------------------------------------
+ClassName = 'calerf';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+
+PrintStringInfo('NIN= 2',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('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s0d0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('s2d0'+ArgSeparator+'s2',ClassFileName,'file','y');
+
+
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'calerf';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+//------------------------------------
//---- Class ERF ----------------
//------------------------------------
ClassName = 'erf';
@@ -5121,6 +5140,8 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,E
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
//------------------------------------
//---- Class ERFC ----------------
//------------------------------------
diff --git a/2.3-1/macros/findDeps/getAllHeaders.sci b/2.3-1/macros/findDeps/getAllHeaders.sci
index e351b049..1a455232 100644
--- a/2.3-1/macros/findDeps/getAllHeaders.sci
+++ b/2.3-1/macros/findDeps/getAllHeaders.sci
@@ -239,6 +239,7 @@ function allHeaders = getAllHeaders(SharedInfo)
"src/c/specialFunctions/includes/erfc.h"
"src/c/specialFunctions/includes/erfcx.h"
"src/c/specialFunctions/includes/erfinv.h"
+ "src/c/specialFunctions/includes/calerf.h"
"src/c/CACSD/includes/syslin.h"
"src/c/CACSD/includes/lqr.h"
"src/c/CACSD/includes/lqe.h"
diff --git a/2.3-1/macros/findDeps/getAllInterfaces.sci b/2.3-1/macros/findDeps/getAllInterfaces.sci
index 1191062d..12f5b3d4 100644
--- a/2.3-1/macros/findDeps/getAllInterfaces.sci
+++ b/2.3-1/macros/findDeps/getAllInterfaces.sci
@@ -234,6 +234,7 @@ function allInterfaces = getAllInterfaces(SharedInfo)
"src/c/specialFunctions/interfaces/int_erfc.h"
"src/c/specialFunctions/interfaces/int_erfcx.h"
"src/c/specialFunctions/interfaces/int_erfinv.h"
+ "src/c/specialFunctions/interfaces/int_calerf.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/2.3-1/macros/findDeps/getAllSources.sci b/2.3-1/macros/findDeps/getAllSources.sci
index 642f9649..7e0a806c 100644
--- a/2.3-1/macros/findDeps/getAllSources.sci
+++ b/2.3-1/macros/findDeps/getAllSources.sci
@@ -838,6 +838,8 @@ function allSources = getAllSources(SharedInfo,BuildTool)
"src/c/elementaryFunctions/nanmin/dnanminnpa.c"
"src/c/elementaryFunctions/nanmin/dnanmincolnpa.c"
"src/c/elementaryFunctions/nanmin/dnanminrownpa.c"
+ "src/c/elementaryFunctions/nanmin/dnanmincola.c"
+ "src/c/elementaryFunctions/nanmin/dnanminrowa.c"
"src/c/elementaryFunctions/nanmin/dnanminnps.c"
"src/c/elementaryFunctions/isscalar/disscalara.c"
"src/c/elementaryFunctions/isscalar/disscalars.c"
@@ -1433,6 +1435,10 @@ function allSources = getAllSources(SharedInfo,BuildTool)
"src/c/specialFunctions/erfinv/derfinva.c"
"src/c/specialFunctions/erfinv/serfinvs.c"
"src/c/specialFunctions/erfinv/serfinva.c"
+ "src/c/specialFunctions/calerf/dcalerfs.c"
+ "src/c/specialFunctions/calerf/dcalerfa.c"
+ "src/c/specialFunctions/calerf/scalerfs.c"
+ "src/c/specialFunctions/calerf/scalerfa.c"
"src/c/CACSD/syslin/dsyslina.c"
"src/c/CACSD/lqr/dlqra.c"
"src/c/CACSD/lqe/dlqea.c"
diff --git a/2.3-1/src/c/elementaryFunctions/includes/nanmin.h b/2.3-1/src/c/elementaryFunctions/includes/nanmin.h
index adeff6b5..34bbfefd 100644
--- a/2.3-1/src/c/elementaryFunctions/includes/nanmin.h
+++ b/2.3-1/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/2.3-1/src/c/elementaryFunctions/interfaces/int_nanmin.h b/2.3-1/src/c/elementaryFunctions/interfaces/int_nanmin.h
index 408dac65..e351a240 100644
--- a/2.3-1/src/c/elementaryFunctions/interfaces/int_nanmin.h
+++ b/2.3-1/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/2.3-1/src/c/elementaryFunctions/nanmin/dnanmincola.c b/2.3-1/src/c/elementaryFunctions/nanmin/dnanmincola.c
index 0c4d202f..35b94c08 100644
--- a/2.3-1/src/c/elementaryFunctions/nanmin/dnanmincola.c
+++ b/2.3-1/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/2.3-1/src/c/elementaryFunctions/nanmin/dnanminrowa.c b/2.3-1/src/c/elementaryFunctions/nanmin/dnanminrowa.c
index d255ef14..0909fc2c 100644
--- a/2.3-1/src/c/elementaryFunctions/nanmin/dnanminrowa.c
+++ b/2.3-1/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/2.3-1/src/c/specialFunctions/calerf/dcalerfa.c b/2.3-1/src/c/specialFunctions/calerf/dcalerfa.c
new file mode 100644
index 00000000..16379252
--- /dev/null
+++ b/2.3-1/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/2.3-1/src/c/specialFunctions/calerf/dcalerfs.c b/2.3-1/src/c/specialFunctions/calerf/dcalerfs.c
new file mode 100644
index 00000000..c3608653
--- /dev/null
+++ b/2.3-1/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/2.3-1/src/c/specialFunctions/calerf/scalerfa.c b/2.3-1/src/c/specialFunctions/calerf/scalerfa.c
new file mode 100644
index 00000000..726ab1db
--- /dev/null
+++ b/2.3-1/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/2.3-1/src/c/specialFunctions/calerf/scalerfs.c b/2.3-1/src/c/specialFunctions/calerf/scalerfs.c
new file mode 100644
index 00000000..ffc48c37
--- /dev/null
+++ b/2.3-1/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/2.3-1/src/c/specialFunctions/includes/calerf.h b/2.3-1/src/c/specialFunctions/includes/calerf.h
new file mode 100644
index 00000000..9bb63ebf
--- /dev/null
+++ b/2.3-1/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/2.3-1/src/c/specialFunctions/includes/erf.h b/2.3-1/src/c/specialFunctions/includes/erf.h
index 86bb15d7..4b3cde45 100644
--- a/2.3-1/src/c/specialFunctions/includes/erf.h
+++ b/2.3-1/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/2.3-1/src/c/specialFunctions/interfaces/int_calerf.h b/2.3-1/src/c/specialFunctions/interfaces/int_calerf.h
new file mode 100644
index 00000000..ee75bdc8
--- /dev/null
+++ b/2.3-1/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__*/