summaryrefslogtreecommitdiff
path: root/src/c
diff options
context:
space:
mode:
Diffstat (limited to 'src/c')
-rw-r--r--src/c/elementaryFunctions/Trigonometry/cosd/dcosda.c14
-rw-r--r--src/c/elementaryFunctions/Trigonometry/cosd/dcosds.c11
-rw-r--r--src/c/elementaryFunctions/Trigonometry/cosd/scosda.c9
-rw-r--r--src/c/elementaryFunctions/Trigonometry/cosd/scosds.c11
-rw-r--r--src/c/elementaryFunctions/Trigonometry/cotd/dcotda.c16
-rw-r--r--src/c/elementaryFunctions/Trigonometry/cotd/dcotds.c9
-rw-r--r--src/c/elementaryFunctions/Trigonometry/cotd/scotda.c9
-rw-r--r--src/c/elementaryFunctions/Trigonometry/cotd/scotds.c7
-rw-r--r--src/c/elementaryFunctions/Trigonometry/coth/ccotha.c12
-rw-r--r--src/c/elementaryFunctions/Trigonometry/coth/ccoths.c14
-rw-r--r--src/c/elementaryFunctions/Trigonometry/coth/dcotha.c14
-rw-r--r--src/c/elementaryFunctions/Trigonometry/coth/dcoths.c10
-rw-r--r--src/c/elementaryFunctions/Trigonometry/coth/scotha.c14
-rw-r--r--src/c/elementaryFunctions/Trigonometry/coth/scoths.c10
-rw-r--r--src/c/elementaryFunctions/Trigonometry/coth/zcotha.c11
-rw-r--r--src/c/elementaryFunctions/Trigonometry/coth/zcoths.c14
-rw-r--r--src/c/elementaryFunctions/Trigonometry/csc/ccsca.c11
-rw-r--r--src/c/elementaryFunctions/Trigonometry/csc/ccscs.c16
-rw-r--r--src/c/elementaryFunctions/Trigonometry/csc/dcsca.c10
-rw-r--r--src/c/elementaryFunctions/Trigonometry/csc/dcscs.c9
-rw-r--r--src/c/elementaryFunctions/Trigonometry/csc/scsca.c10
-rw-r--r--src/c/elementaryFunctions/Trigonometry/csc/scscs.c9
-rw-r--r--src/c/elementaryFunctions/Trigonometry/csc/zcsca.c11
-rw-r--r--src/c/elementaryFunctions/Trigonometry/csc/zcscs.c19
-rw-r--r--src/c/elementaryFunctions/Trigonometry/cscd/ccscda.c12
-rw-r--r--src/c/elementaryFunctions/Trigonometry/cscd/ccscds.c17
-rw-r--r--src/c/elementaryFunctions/Trigonometry/cscd/dcscda.c15
-rw-r--r--src/c/elementaryFunctions/Trigonometry/cscd/dcscds.c11
-rw-r--r--src/c/elementaryFunctions/Trigonometry/cscd/scscda.c10
-rw-r--r--src/c/elementaryFunctions/Trigonometry/cscd/scscds.c10
-rw-r--r--src/c/elementaryFunctions/Trigonometry/cscd/zcscda.c12
-rw-r--r--src/c/elementaryFunctions/Trigonometry/cscd/zcscds.c17
-rw-r--r--src/c/elementaryFunctions/Trigonometry/csch/ccscha.c11
-rw-r--r--src/c/elementaryFunctions/Trigonometry/csch/ccschs.c14
-rw-r--r--src/c/elementaryFunctions/Trigonometry/csch/dcscha.c8
-rw-r--r--src/c/elementaryFunctions/Trigonometry/csch/dcschs.c9
-rw-r--r--src/c/elementaryFunctions/Trigonometry/csch/scscha.c8
-rw-r--r--src/c/elementaryFunctions/Trigonometry/csch/scschs.c9
-rw-r--r--src/c/elementaryFunctions/Trigonometry/csch/zcscha.c11
-rw-r--r--src/c/elementaryFunctions/Trigonometry/csch/zcschs.c14
-rw-r--r--src/c/elementaryFunctions/Trigonometry/sec/cseca.c11
-rw-r--r--src/c/elementaryFunctions/Trigonometry/sec/csecs.c13
-rw-r--r--src/c/elementaryFunctions/Trigonometry/sec/dseca.c11
-rw-r--r--src/c/elementaryFunctions/Trigonometry/sec/dsecs.c7
-rw-r--r--src/c/elementaryFunctions/Trigonometry/sec/sseca.c8
-rw-r--r--src/c/elementaryFunctions/Trigonometry/sec/ssecs.c7
-rw-r--r--src/c/elementaryFunctions/Trigonometry/sec/zseca.c11
-rw-r--r--src/c/elementaryFunctions/Trigonometry/sec/zsecs.c57
-rw-r--r--src/c/elementaryFunctions/Trigonometry/secd/dsecda.c11
-rw-r--r--src/c/elementaryFunctions/Trigonometry/secd/dsecds.c8
-rw-r--r--src/c/elementaryFunctions/Trigonometry/secd/ssecda.c9
-rw-r--r--src/c/elementaryFunctions/Trigonometry/secd/ssecds.c7
-rw-r--r--src/c/elementaryFunctions/Trigonometry/sech/csecha.c11
-rw-r--r--src/c/elementaryFunctions/Trigonometry/sech/csechs.c15
-rw-r--r--src/c/elementaryFunctions/Trigonometry/sech/dsecha.c10
-rw-r--r--src/c/elementaryFunctions/Trigonometry/sech/dsechs.c10
-rw-r--r--src/c/elementaryFunctions/Trigonometry/sech/ssecha.c10
-rw-r--r--src/c/elementaryFunctions/Trigonometry/sech/ssechs.c10
-rw-r--r--src/c/elementaryFunctions/Trigonometry/sech/zsecha.c11
-rw-r--r--src/c/elementaryFunctions/Trigonometry/sech/zsechs.c15
-rw-r--r--src/c/elementaryFunctions/discrete_mathematics/factor/dfactors.c31
-rw-r--r--src/c/elementaryFunctions/discrete_mathematics/factor/sfactors.c31
-rw-r--r--src/c/elementaryFunctions/discrete_mathematics/factorial/dfactoriala.c12
-rw-r--r--src/c/elementaryFunctions/discrete_mathematics/factorial/dfactorials.c24
-rw-r--r--src/c/elementaryFunctions/discrete_mathematics/factorial/sfactoriala.c12
-rw-r--r--src/c/elementaryFunctions/discrete_mathematics/factorial/sfactorials.c23
-rw-r--r--src/c/elementaryFunctions/discrete_mathematics/primes/dprimess.c24
-rw-r--r--src/c/elementaryFunctions/discrete_mathematics/primes/sprimess.c24
-rw-r--r--src/c/elementaryFunctions/float/dfloata.c7
-rw-r--r--src/c/elementaryFunctions/float/dfloats.c5
-rw-r--r--src/c/elementaryFunctions/float/i16floata.c6
-rw-r--r--src/c/elementaryFunctions/float/i16floats.c5
-rw-r--r--src/c/elementaryFunctions/float/i8floata.c6
-rw-r--r--src/c/elementaryFunctions/float/i8floats.c5
-rw-r--r--src/c/elementaryFunctions/float/sfloata.c7
-rw-r--r--src/c/elementaryFunctions/float/sfloats.c5
-rw-r--r--src/c/elementaryFunctions/float/u16floata.c6
-rw-r--r--src/c/elementaryFunctions/float/u16floats.c5
-rw-r--r--src/c/elementaryFunctions/float/u8floata.c6
-rw-r--r--src/c/elementaryFunctions/float/u8floats.c5
-rw-r--r--src/c/elementaryFunctions/includes/base2dec.h28
-rw-r--r--src/c/elementaryFunctions/includes/bin2dec.h37
-rw-r--r--src/c/elementaryFunctions/includes/cosd.h28
-rw-r--r--src/c/elementaryFunctions/includes/cotd.h29
-rw-r--r--src/c/elementaryFunctions/includes/coth.h37
-rw-r--r--src/c/elementaryFunctions/includes/csc.h36
-rw-r--r--src/c/elementaryFunctions/includes/cscd.h37
-rw-r--r--src/c/elementaryFunctions/includes/csch.h38
-rw-r--r--src/c/elementaryFunctions/includes/dec2base.h29
-rw-r--r--src/c/elementaryFunctions/includes/dec2bin.h36
-rw-r--r--src/c/elementaryFunctions/includes/dec2hex.h38
-rw-r--r--src/c/elementaryFunctions/includes/dec2oct.h37
-rw-r--r--src/c/elementaryFunctions/includes/factor.h27
-rw-r--r--src/c/elementaryFunctions/includes/factorial.h37
-rw-r--r--src/c/elementaryFunctions/includes/float.h54
-rw-r--r--src/c/elementaryFunctions/includes/hex2dec.h27
-rw-r--r--src/c/elementaryFunctions/includes/interp1.h38
-rw-r--r--src/c/elementaryFunctions/includes/oct2dec.h37
-rw-r--r--src/c/elementaryFunctions/includes/primes.h28
-rw-r--r--src/c/elementaryFunctions/includes/sec.h37
-rw-r--r--src/c/elementaryFunctions/includes/secd.h28
-rw-r--r--src/c/elementaryFunctions/includes/sech.h38
-rw-r--r--src/c/elementaryFunctions/interfaces/int_base2dec.h27
-rw-r--r--src/c/elementaryFunctions/interfaces/int_bin2dec.h37
-rw-r--r--src/c/elementaryFunctions/interfaces/int_cosd.h28
-rw-r--r--src/c/elementaryFunctions/interfaces/int_cotd.h28
-rw-r--r--src/c/elementaryFunctions/interfaces/int_coth.h32
-rw-r--r--src/c/elementaryFunctions/interfaces/int_csc.h32
-rw-r--r--src/c/elementaryFunctions/interfaces/int_cscd.h32
-rw-r--r--src/c/elementaryFunctions/interfaces/int_csch.h32
-rw-r--r--src/c/elementaryFunctions/interfaces/int_dec2base.h35
-rw-r--r--src/c/elementaryFunctions/interfaces/int_dec2bin.h48
-rw-r--r--src/c/elementaryFunctions/interfaces/int_dec2hex.h35
-rw-r--r--src/c/elementaryFunctions/interfaces/int_dec2oct.h36
-rw-r--r--src/c/elementaryFunctions/interfaces/int_factor.h29
-rw-r--r--src/c/elementaryFunctions/interfaces/int_factorial.h31
-rw-r--r--src/c/elementaryFunctions/interfaces/int_float.h38
-rw-r--r--src/c/elementaryFunctions/interfaces/int_hex2dec.h26
-rw-r--r--src/c/elementaryFunctions/interfaces/int_interp1.h35
-rw-r--r--src/c/elementaryFunctions/interfaces/int_oct2dec.h35
-rw-r--r--src/c/elementaryFunctions/interfaces/int_primes.h29
-rw-r--r--src/c/elementaryFunctions/interfaces/int_sec.h34
-rw-r--r--src/c/elementaryFunctions/interfaces/int_secd.h28
-rw-r--r--src/c/elementaryFunctions/interfaces/int_sech.h32
-rw-r--r--src/c/elementaryFunctions/interpolation/dinterp1s.c26
-rw-r--r--src/c/elementaryFunctions/radix_conversions/base2dec/dbase2decs.c21
-rw-r--r--src/c/elementaryFunctions/radix_conversions/base2dec/gbase2decs.c160
-rw-r--r--src/c/elementaryFunctions/radix_conversions/bin2dec/dbin2deca.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/bin2dec/dbin2decs.c21
-rw-r--r--src/c/elementaryFunctions/radix_conversions/bin2dec/i16bin2deca.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/bin2dec/i16bin2decs.c21
-rw-r--r--src/c/elementaryFunctions/radix_conversions/bin2dec/i8bin2deca.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/bin2dec/i8bin2decs.c21
-rw-r--r--src/c/elementaryFunctions/radix_conversions/bin2dec/u16bin2deca.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/bin2dec/u16bin2decs.c21
-rw-r--r--src/c/elementaryFunctions/radix_conversions/bin2dec/u8bin2deca.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/bin2dec/u8bin2decs.c21
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2base/ddec2basea.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2base/ddec2bases.c60
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2base/sdec2basea.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2base/sdec2bases.c34
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2bin/ddec2bina.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2bin/ddec2bins.c39
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2bin/i16dec2bina.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2bin/i16dec2bins.c32
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2bin/i8dec2bina.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2bin/i8dec2bins.c32
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2bin/u16dec2bina.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2bin/u16dec2bins.c32
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2bin/u8dec2bina.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2bin/u8dec2bins.c32
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2hex/ddec2hexa.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2hex/ddec2hexs.c39
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2hex/i16dec2hexa.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2hex/i16dec2hexs.c38
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2hex/i8dec2hexa.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2hex/i8dec2hexs.c39
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2hex/u16dec2hexa.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2hex/u16dec2hexs.c38
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2hex/u8dec2hexa.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2hex/u8dec2hexs.c38
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2oct/ddec2octa.c9
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2oct/ddec2octs.c27
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2oct/i16dec2octa.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2oct/i16dec2octs.c27
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2oct/i8dec2octa.c9
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2oct/i8dec2octs.c27
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2oct/u16dec2octa.c9
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2oct/u16dec2octs.c27
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2oct/u8dec2octa.c9
-rw-r--r--src/c/elementaryFunctions/radix_conversions/dec2oct/u8dec2octs.c27
-rw-r--r--src/c/elementaryFunctions/radix_conversions/hex2dec/dhex2decs.c21
-rw-r--r--src/c/elementaryFunctions/radix_conversions/hex2dec/ghex2decs.c81
-rw-r--r--src/c/elementaryFunctions/radix_conversions/oct2dec/doct2deca.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/oct2dec/doct2decs.c21
-rw-r--r--src/c/elementaryFunctions/radix_conversions/oct2dec/i16oct2deca.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/oct2dec/i16oct2decs.c21
-rw-r--r--src/c/elementaryFunctions/radix_conversions/oct2dec/i8oct2deca.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/oct2dec/i8oct2decs.c21
-rw-r--r--src/c/elementaryFunctions/radix_conversions/oct2dec/u16oct2deca.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/oct2dec/u16oct2decs.c21
-rw-r--r--src/c/elementaryFunctions/radix_conversions/oct2dec/u8oct2deca.c10
-rw-r--r--src/c/elementaryFunctions/radix_conversions/oct2dec/u8oct2decs.c21
-rw-r--r--src/c/elementaryFunctions/special_functions/gamma/dgammas.c52
-rw-r--r--src/c/elementaryFunctions/tanh/ctanhs.c2
-rw-r--r--src/c/string/convstr/gconvstrs.c19
-rw-r--r--src/c/string/includes/convstr.h4
-rw-r--r--src/c/string/includes/strrchr.h26
-rw-r--r--src/c/string/includes/strrev.h27
-rw-r--r--src/c/string/includes/strsubst.h27
-rw-r--r--src/c/string/interfaces/int_convstr.h6
-rw-r--r--src/c/string/interfaces/int_strrchr.h25
-rw-r--r--src/c/string/interfaces/int_strrev.h25
-rw-r--r--src/c/string/interfaces/int_strsubst.h28
-rw-r--r--src/c/string/strrchr/gstrrchra.c21
-rw-r--r--src/c/string/strrev/gstrreva.c15
-rw-r--r--src/c/string/strsubst/gstrsubsta.c57
197 files changed, 4148 insertions, 8 deletions
diff --git a/src/c/elementaryFunctions/Trigonometry/cosd/dcosda.c b/src/c/elementaryFunctions/Trigonometry/cosd/dcosda.c
new file mode 100644
index 0000000..b48876e
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/cosd/dcosda.c
@@ -0,0 +1,14 @@
+#include "cosd.h"
+#include <math.h>
+
+void dcosda(double* in,int size,double* out)
+{
+ double val=0.0;
+ val =3.14159265/180.0;
+ int i=0;
+ for (i=0;i<size;i++)
+ {
+ out[i] = cos(in[i]*val);
+ }
+}
+
diff --git a/src/c/elementaryFunctions/Trigonometry/cosd/dcosds.c b/src/c/elementaryFunctions/Trigonometry/cosd/dcosds.c
new file mode 100644
index 0000000..4550757
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/cosd/dcosds.c
@@ -0,0 +1,11 @@
+#include <math.h>
+#include "cos.h"
+#include "cosd.h"
+
+double dcosds(double in)
+{
+ if(cos((M_PI/180.0)*in)==0.0)
+ return 0.0;
+ else
+ return (cos((M_PI/180.0)*in));
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/cosd/scosda.c b/src/c/elementaryFunctions/Trigonometry/cosd/scosda.c
new file mode 100644
index 0000000..5224899
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/cosd/scosda.c
@@ -0,0 +1,9 @@
+#include "cos.h"
+#include "cosd.h"
+
+void scosda(float* in, int size, float* out) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = scosds(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/cosd/scosds.c b/src/c/elementaryFunctions/Trigonometry/cosd/scosds.c
new file mode 100644
index 0000000..e99a195
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/cosd/scosds.c
@@ -0,0 +1,11 @@
+#include <math.h>
+#include "cosd.h"
+#include "cos.h"
+
+float scosds(float in)
+{
+ if(cosf((M_PI/180.0)*in)==0.0)
+ return 0.0;
+ else
+ return (cosf((M_PI/180.0)*in));
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/cotd/dcotda.c b/src/c/elementaryFunctions/Trigonometry/cotd/dcotda.c
new file mode 100644
index 0000000..3cf032a
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/cotd/dcotda.c
@@ -0,0 +1,16 @@
+#include "cotd.h"
+#include <math.h>
+#define PI 3.14159265
+
+void dcotda(double* in,int size,double* out)
+{
+ double val;
+ int i=0;
+ val = PI / 180.0;
+ for(i=0;i<size;i++)
+ {
+ out[i]=1/tan(in[i]*val);
+ /*printf("The cotangent of %lf degrees is %lf \n", in[i], out[i]);*/
+ }
+}
+
diff --git a/src/c/elementaryFunctions/Trigonometry/cotd/dcotds.c b/src/c/elementaryFunctions/Trigonometry/cotd/dcotds.c
new file mode 100644
index 0000000..4ba95b8
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/cotd/dcotds.c
@@ -0,0 +1,9 @@
+#include <math.h>
+#include "cotd.h"
+
+double dcotds(double in)
+{
+if(in==0)
+printf("Inf\n");
+ return (1/tan((M_PI/180.0)*in));
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/cotd/scotda.c b/src/c/elementaryFunctions/Trigonometry/cotd/scotda.c
new file mode 100644
index 0000000..fd5a1e1
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/cotd/scotda.c
@@ -0,0 +1,9 @@
+
+#include "cotd.h"
+
+void scotda(float* in, int size, float* out) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = scosds(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/cotd/scotds.c b/src/c/elementaryFunctions/Trigonometry/cotd/scotds.c
new file mode 100644
index 0000000..d635dbc
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/cotd/scotds.c
@@ -0,0 +1,7 @@
+#include <math.h>
+#include "cotd.h"
+
+float scotds(float in)
+{
+ return (1/tanf((M_PI/180.0)*in));
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/coth/ccotha.c b/src/c/elementaryFunctions/Trigonometry/coth/ccotha.c
new file mode 100644
index 0000000..4e79451
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/coth/ccotha.c
@@ -0,0 +1,12 @@
+#include "coth.h"
+#include <math.h>
+
+void ccotha(floatComplex* in, int size,floatComplex* out)
+{
+ int i = 0;
+ for (i=0;i<size;i++)
+ {
+ out[i] = ccoths(in[i]);
+ }
+ return out;
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/coth/ccoths.c b/src/c/elementaryFunctions/Trigonometry/coth/ccoths.c
new file mode 100644
index 0000000..564b8e6
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/coth/ccoths.c
@@ -0,0 +1,14 @@
+#include <math.h>
+#include "coth.h"
+#include <math.h>
+#include "tanh.h"
+#include "floatComplex.h"
+#include "division.h"
+
+floatComplex ccoths(floatComplex z)
+{
+
+ floatComplex out;
+ out = crdivs(FloatComplex(1,0), ctanhs(z));
+ return out;
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/coth/dcotha.c b/src/c/elementaryFunctions/Trigonometry/coth/dcotha.c
new file mode 100644
index 0000000..f6304f5
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/coth/dcotha.c
@@ -0,0 +1,14 @@
+#include "coth.h"
+#include <math.h>
+
+void dcotha(double* in,int size,double* out)
+{
+ double val;
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ out[i]=cosh(in[i])/sinh(in[i]);
+ /*printf("The cotangent of %lf is %lf\n", in[i], out[i]);*/
+ }
+}
+
diff --git a/src/c/elementaryFunctions/Trigonometry/coth/dcoths.c b/src/c/elementaryFunctions/Trigonometry/coth/dcoths.c
new file mode 100644
index 0000000..bf6bb78
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/coth/dcoths.c
@@ -0,0 +1,10 @@
+#include <math.h>
+#include "coth.h"
+#include "cosh.h"
+#include "cos.h"
+#include "sinh.h"
+#include "sin.h"
+
+double dcoths(double in) {
+ return (cosh(in)/sinh(in));
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/coth/scotha.c b/src/c/elementaryFunctions/Trigonometry/coth/scotha.c
new file mode 100644
index 0000000..3fdf37f
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/coth/scotha.c
@@ -0,0 +1,14 @@
+#include "coth.h"
+#include <math.h>
+
+void scotha(float* in,int size,float* out)
+{
+ float val;
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ out[i]=cosh(in[i])/sinh(in[i]);
+ /*printf("The cotangent of %lf is %lf\n", in[i], out[i]);*/
+ }
+}
+
diff --git a/src/c/elementaryFunctions/Trigonometry/coth/scoths.c b/src/c/elementaryFunctions/Trigonometry/coth/scoths.c
new file mode 100644
index 0000000..107945e
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/coth/scoths.c
@@ -0,0 +1,10 @@
+#include <math.h>
+#include "coth.h"
+#include "cosh.h"
+#include "cos.h"
+#include "sinh.h"
+#include "sin.h"
+
+float scoths(float in) {
+ return (cosh(in)/sinh(in));
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/coth/zcotha.c b/src/c/elementaryFunctions/Trigonometry/coth/zcotha.c
new file mode 100644
index 0000000..dcbb284
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/coth/zcotha.c
@@ -0,0 +1,11 @@
+#include "coth.h"
+#include <math.h>
+
+void zcotha(doubleComplex* in, int size,doubleComplex* out)
+{
+ int i = 0;
+ for (i=0;i<size;i++)
+ {
+ out[i] = zcoths(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/coth/zcoths.c b/src/c/elementaryFunctions/Trigonometry/coth/zcoths.c
new file mode 100644
index 0000000..2eed86b
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/coth/zcoths.c
@@ -0,0 +1,14 @@
+#include "coth.h"
+#include "tanh.h"
+#include "tan.h"
+#include <math.h>
+#include "doubleComplex.h"
+#include "division.h"
+
+doubleComplex zcoths(doubleComplex z)
+{
+
+ doubleComplex out;
+ out = zrdivs(DoubleComplex(1,0),ztanhs(z));
+ return out;
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/csc/ccsca.c b/src/c/elementaryFunctions/Trigonometry/csc/ccsca.c
new file mode 100644
index 0000000..5f5504a
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/csc/ccsca.c
@@ -0,0 +1,11 @@
+#include "csc.h"
+#include <math.h>
+
+void ccsca(floatComplex* in, int size,floatComplex* out)
+{
+ int i = 0;
+ for (i=0;i<size;i++)
+ {
+ out[i] = ccscs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/csc/ccscs.c b/src/c/elementaryFunctions/Trigonometry/csc/ccscs.c
new file mode 100644
index 0000000..af8b3eb
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/csc/ccscs.c
@@ -0,0 +1,16 @@
+#include <math.h>
+#include "sin.h"
+#include "cos.h"
+#include "sinh.h"
+#include "cosh.h"
+#include "csc.h"
+#include "floatComplex.h"
+#include "division.h"
+
+floatComplex ccscs(floatComplex z)
+{
+
+ floatComplex out;
+ out = crdivs(FloatComplex(1,0),csins(z));
+ return out;
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/csc/dcsca.c b/src/c/elementaryFunctions/Trigonometry/csc/dcsca.c
new file mode 100644
index 0000000..eeedea5
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/csc/dcsca.c
@@ -0,0 +1,10 @@
+#include "csc.h"
+
+void dcsca(double* in,int size,double* out)
+{
+ int i = 0;
+ for (i = 0;i<size;++i)
+ {
+ out[i] = dcscs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/csc/dcscs.c b/src/c/elementaryFunctions/Trigonometry/csc/dcscs.c
new file mode 100644
index 0000000..31a6944
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/csc/dcscs.c
@@ -0,0 +1,9 @@
+#include "csc.h"
+#include <math.h>
+
+double dcscs(double in)
+{
+ double out;
+ out=1/sin(in);
+ return out;
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/csc/scsca.c b/src/c/elementaryFunctions/Trigonometry/csc/scsca.c
new file mode 100644
index 0000000..3e6963a
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/csc/scsca.c
@@ -0,0 +1,10 @@
+#include "csc.h"
+
+void scsca(float* in,int size,float* out)
+{
+ int i = 0;
+ for (i = 0;i<size;++i)
+ {
+ out[i] = scscs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/csc/scscs.c b/src/c/elementaryFunctions/Trigonometry/csc/scscs.c
new file mode 100644
index 0000000..6d1b1b7
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/csc/scscs.c
@@ -0,0 +1,9 @@
+#include "csc.h"
+#include <math.h>
+
+float scscs(float in)
+{
+ float out;
+ out=1/sin(in);
+ return out;
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/csc/zcsca.c b/src/c/elementaryFunctions/Trigonometry/csc/zcsca.c
new file mode 100644
index 0000000..4b8cdad
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/csc/zcsca.c
@@ -0,0 +1,11 @@
+#include "csc.h"
+#include <math.h>
+
+void zcsca(doubleComplex* in, int size,doubleComplex* out)
+{
+ int i = 0;
+ for (i=0;i<size;i++)
+ {
+ out[i] = zcscs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/csc/zcscs.c b/src/c/elementaryFunctions/Trigonometry/csc/zcscs.c
new file mode 100644
index 0000000..c0b692d
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/csc/zcscs.c
@@ -0,0 +1,19 @@
+#include <math.h>
+#include "sin.h"
+#include "cos.h"
+#include "sinh.h"
+#include "cosh.h"
+#include "csc.h"
+#include "doubleComplex.h"
+#include "division.h"
+
+doubleComplex zcscs(doubleComplex z)
+{
+ doubleComplex out;
+ //out = zrdivs(DoubleComplex(1,0),zsins(z));
+ double real = zreals(z);
+ double imag = zimags(z);
+ printf("%d , %d",real,imag);
+return zrdivs(1+0*%i,(DoubleComplex(dsins(real) * dcoshs(imag), dcoss(real) * dsinhs(imag))));
+ //return out;
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/cscd/ccscda.c b/src/c/elementaryFunctions/Trigonometry/cscd/ccscda.c
new file mode 100644
index 0000000..d18d3c7
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/cscd/ccscda.c
@@ -0,0 +1,12 @@
+#include "csc.h"
+#include "cscd.h"
+#include <math.h>
+
+void ccscda(floatComplex* in, int size,floatComplex* out)
+{
+ int i = 0;
+ for (i=0;i<size;i++)
+ {
+ out[i] = ccscds(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/cscd/ccscds.c b/src/c/elementaryFunctions/Trigonometry/cscd/ccscds.c
new file mode 100644
index 0000000..8f1f9f7
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/cscd/ccscds.c
@@ -0,0 +1,17 @@
+#include <math.h>
+#include "sin.h"
+#include "cos.h"
+#include "sinh.h"
+#include "cosh.h"
+#include "csc.h"
+#include "cscd.h"
+#include "floatComplex.h"
+#include "division.h"
+
+floatComplex ccscds(floatComplex z)
+{
+
+ floatComplex out;
+ out = crdivs(FloatComplex(1,0),csins(z));
+ return out;
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/cscd/dcscda.c b/src/c/elementaryFunctions/Trigonometry/cscd/dcscda.c
new file mode 100644
index 0000000..43e0043
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/cscd/dcscda.c
@@ -0,0 +1,15 @@
+#include "cscd.h"
+#include <math.h>
+#define PI 3.14159265
+
+void dcscda(double* in,int size,double* out)
+{
+ double val;
+ int i=0;
+ val = PI / 180.0;
+ for(i=0;i<size;i++)
+ {
+ out[i]=1/sin(in[i]*val);
+ }
+}
+
diff --git a/src/c/elementaryFunctions/Trigonometry/cscd/dcscds.c b/src/c/elementaryFunctions/Trigonometry/cscd/dcscds.c
new file mode 100644
index 0000000..d9a0df9
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/cscd/dcscds.c
@@ -0,0 +1,11 @@
+#include "cscd.h"
+#include <math.h>
+
+double dcscds(double in)
+{
+ double val;
+ val = (M_PI) / 180.0;
+ double out;
+ out=1/sin(in*val);
+ return out;
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/cscd/scscda.c b/src/c/elementaryFunctions/Trigonometry/cscd/scscda.c
new file mode 100644
index 0000000..761d941
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/cscd/scscda.c
@@ -0,0 +1,10 @@
+#include "cscd.h"
+
+void scscda(float* in,int size,float* out)
+{
+ int i = 0;
+ for (i = 0;i<size;++i)
+ {
+ out[i] = scscds(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/cscd/scscds.c b/src/c/elementaryFunctions/Trigonometry/cscd/scscds.c
new file mode 100644
index 0000000..d434854
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/cscd/scscds.c
@@ -0,0 +1,10 @@
+#include "cscd.h"
+#include <math.h>
+
+float scscds(float in)
+{
+ float out,val;
+ val=(M_PI)/180.0;
+ out=1/sin(in*val);
+ return out;
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/cscd/zcscda.c b/src/c/elementaryFunctions/Trigonometry/cscd/zcscda.c
new file mode 100644
index 0000000..02f9e3b
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/cscd/zcscda.c
@@ -0,0 +1,12 @@
+#include "csc.h"
+#include "cscd.h"
+#include <math.h>
+
+void zcscda(doubleComplex* in, int size,doubleComplex* out)
+{
+ int i = 0;
+ for (i=0;i<size;i++)
+ {
+ out[i] = zcscds(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/cscd/zcscds.c b/src/c/elementaryFunctions/Trigonometry/cscd/zcscds.c
new file mode 100644
index 0000000..351c8ff
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/cscd/zcscds.c
@@ -0,0 +1,17 @@
+#include <math.h>
+#include "sin.h"
+#include "cos.h"
+#include "sinh.h"
+#include "cosh.h"
+#include "csc.h"
+#include "cscd.h"
+#include "doubleComplex.h"
+#include "division.h"
+
+doubleComplex zcscds(doubleComplex z)
+{
+
+ doubleComplex out;
+ out = zrdivs(DoubleComplex(1,0),zsins(z));
+ return out;
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/csch/ccscha.c b/src/c/elementaryFunctions/Trigonometry/csch/ccscha.c
new file mode 100644
index 0000000..02a9ec1
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/csch/ccscha.c
@@ -0,0 +1,11 @@
+#include "csch.h"
+#include <math.h>
+
+void ccscha(floatComplex* in, int size,floatComplex* out)
+{
+ int i = 0;
+ for (i=0;i<size;i++)
+ {
+ out[i] = ccschs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/csch/ccschs.c b/src/c/elementaryFunctions/Trigonometry/csch/ccschs.c
new file mode 100644
index 0000000..177a9fa
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/csch/ccschs.c
@@ -0,0 +1,14 @@
+#include "csch.h"
+#include "sinh.h"
+#include "sin.h"
+#include <math.h>
+#include "floatComplex.h"
+#include "division.h"
+
+floatComplex ccschs(floatComplex z)
+{
+
+ floatComplex out;
+ out = crdivs(FloatComplex(1,0),csinhs(z));
+ return out;
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/csch/dcscha.c b/src/c/elementaryFunctions/Trigonometry/csch/dcscha.c
new file mode 100644
index 0000000..ce87b6f
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/csch/dcscha.c
@@ -0,0 +1,8 @@
+#include "csch.h"
+
+void dcscha(double* in, int size, double* out) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = dcschs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/csch/dcschs.c b/src/c/elementaryFunctions/Trigonometry/csch/dcschs.c
new file mode 100644
index 0000000..3b22544
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/csch/dcschs.c
@@ -0,0 +1,9 @@
+#include "csch.h"
+#include <math.h>
+
+double dcschs(double in)
+{
+ double out;
+ out=1/sinh(in);
+ return out;
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/csch/scscha.c b/src/c/elementaryFunctions/Trigonometry/csch/scscha.c
new file mode 100644
index 0000000..880ffaa
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/csch/scscha.c
@@ -0,0 +1,8 @@
+#include "csch.h"
+
+void scscha(float* in, int size, float* out) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = scschs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/csch/scschs.c b/src/c/elementaryFunctions/Trigonometry/csch/scschs.c
new file mode 100644
index 0000000..8cd4e62
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/csch/scschs.c
@@ -0,0 +1,9 @@
+#include "csch.h"
+#include <math.h>
+
+float scschs(float in)
+{
+ float out;
+ out=1/sinh(in);
+ return out;
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/csch/zcscha.c b/src/c/elementaryFunctions/Trigonometry/csch/zcscha.c
new file mode 100644
index 0000000..ae659de
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/csch/zcscha.c
@@ -0,0 +1,11 @@
+#include "csch.h"
+#include <math.h>
+
+void zcscha(doubleComplex* in, int size,doubleComplex* out)
+{
+ int i = 0;
+ for (i=0;i<size;i++)
+ {
+ out[i] = zcschs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/csch/zcschs.c b/src/c/elementaryFunctions/Trigonometry/csch/zcschs.c
new file mode 100644
index 0000000..f3a9b22
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/csch/zcschs.c
@@ -0,0 +1,14 @@
+#include "csch.h"
+#include "sinh.h"
+#include "sin.h"
+#include <math.h>
+#include "doubleComplex.h"
+#include "division.h"
+
+doubleComplex zcschs(doubleComplex z)
+{
+
+ doubleComplex out;
+ out = zrdivs(DoubleComplex(1,0),zsinhs(z));
+ return out;
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/sec/cseca.c b/src/c/elementaryFunctions/Trigonometry/sec/cseca.c
new file mode 100644
index 0000000..139360a
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/sec/cseca.c
@@ -0,0 +1,11 @@
+#include "sec.h"
+#include <math.h>
+
+void cseca(floatComplex* in, int size,floatComplex* out)
+{
+ int i = 0;
+ for (i=0;i<size;i++)
+ {
+ out[i] = csecs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/sec/csecs.c b/src/c/elementaryFunctions/Trigonometry/sec/csecs.c
new file mode 100644
index 0000000..51ea224
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/sec/csecs.c
@@ -0,0 +1,13 @@
+#include "sec.h"
+#include "cos.h"
+#include <math.h>
+#include "floatComplex.h"
+#include "division.h"
+
+floatComplex csecs(floatComplex z)
+{
+
+ floatComplex out;
+ out = crdivs(FloatComplex(1,0),ccoss(z));
+ return out;
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/sec/dseca.c b/src/c/elementaryFunctions/Trigonometry/sec/dseca.c
new file mode 100644
index 0000000..986b52f
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/sec/dseca.c
@@ -0,0 +1,11 @@
+#include "sec.h"
+#include <math.h>
+
+void dseca(double* in,int size,double* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ out[i]=1/cos(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/sec/dsecs.c b/src/c/elementaryFunctions/Trigonometry/sec/dsecs.c
new file mode 100644
index 0000000..9135ad1
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/sec/dsecs.c
@@ -0,0 +1,7 @@
+#include <math.h>
+#include "sec.h"
+
+double dsecs(double in)
+{
+ return (1/cos(in));
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/sec/sseca.c b/src/c/elementaryFunctions/Trigonometry/sec/sseca.c
new file mode 100644
index 0000000..f5fd81b
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/sec/sseca.c
@@ -0,0 +1,8 @@
+#include "sec.h"
+
+void sseca(float* in, int size, float* out) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = ssecs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/sec/ssecs.c b/src/c/elementaryFunctions/Trigonometry/sec/ssecs.c
new file mode 100644
index 0000000..2c9e018
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/sec/ssecs.c
@@ -0,0 +1,7 @@
+#include <math.h>
+#include "sec.h"
+
+float ssecs(float in)
+{
+ return (1/cos(in));
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/sec/zseca.c b/src/c/elementaryFunctions/Trigonometry/sec/zseca.c
new file mode 100644
index 0000000..7a80291
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/sec/zseca.c
@@ -0,0 +1,11 @@
+#include "sec.h"
+#include <math.h>
+
+void zseca(doubleComplex* in, int size,doubleComplex* out)
+{
+ int i = 0;
+ for (i=0;i<size;i++)
+ {
+ out[i] = zsecs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/sec/zsecs.c b/src/c/elementaryFunctions/Trigonometry/sec/zsecs.c
new file mode 100644
index 0000000..b5468db
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/sec/zsecs.c
@@ -0,0 +1,57 @@
+/*//#include "sec.h"
+//#include "cos.h"
+//#include <math.h>
+//#include "doubleComplex.h"
+//#include "division.h"
+*/
+
+/*#include <math.h>
+#include "sin.h"
+#include "cos.h"
+#include "sinh.h"
+#include "cosh.h"
+#include "csc.h"
+#include "division.h"
+*/
+#include <complex.h>
+#include <stdio.h>
+
+/*doubleComplex zsecs(doubleComplex z)
+{
+
+ doubleComplex out;
+ out = zrdivs(DoubleComplex(1,0),zcoss(z));
+ return out;
+}
+*/
+void zsecs(double complex z)
+{
+
+ //double complex out;
+ /*out = zrdivs(DoubleComplex(1,0),zcoss(z));
+ return out;
+}*/
+
+ double complex out = 1.0/(ccos(z));
+ if(cimag(out)==0.0)
+ {
+ printf("%.7lf\n",creal(out));
+ //out=creal(out);
+ }
+ else if(creal(out)==0.0)
+ {
+ printf("%.7lfi\n",cimag(out));
+ //out=cimag(out);
+ }
+ else if(creal(out)!=0.0 && cimag(out)<0.0)
+ {
+ printf("%.7lf %.7lfi\n",creal(out),cimag(out));
+ //out=x;
+ }
+ else
+ {
+ printf("%.7lf + %.7lfi\n", creal(out), cimag(out));
+ //out=x;
+ }
+ //return out;
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/secd/dsecda.c b/src/c/elementaryFunctions/Trigonometry/secd/dsecda.c
new file mode 100644
index 0000000..028595c
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/secd/dsecda.c
@@ -0,0 +1,11 @@
+#include "secd.h"
+#include <math.h>
+
+void dsecda(double* in,int size,double* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ out[i]=dsecds(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/secd/dsecds.c b/src/c/elementaryFunctions/Trigonometry/secd/dsecds.c
new file mode 100644
index 0000000..7b08a46
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/secd/dsecds.c
@@ -0,0 +1,8 @@
+#include <math.h>
+#include "sec.h"
+#include "secd.h"
+
+double dsecds(double in)
+{
+ return (1/cos((M_PI/180.0)*in));
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/secd/ssecda.c b/src/c/elementaryFunctions/Trigonometry/secd/ssecda.c
new file mode 100644
index 0000000..6267f94
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/secd/ssecda.c
@@ -0,0 +1,9 @@
+#include "sec.h"
+#include "secd.h"
+
+void ssecda(float* in, int size, float* out) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = ssecds(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/secd/ssecds.c b/src/c/elementaryFunctions/Trigonometry/secd/ssecds.c
new file mode 100644
index 0000000..3fabb22
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/secd/ssecds.c
@@ -0,0 +1,7 @@
+#include <math.h>
+#include "secd.h"
+#include "sec.h"
+
+float ssecds(float in) {
+ return (1/cos((M_PI/180.0)*in));
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/sech/csecha.c b/src/c/elementaryFunctions/Trigonometry/sech/csecha.c
new file mode 100644
index 0000000..dcd76d5
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/sech/csecha.c
@@ -0,0 +1,11 @@
+#include "sech.h"
+#include <math.h>
+
+void csecha(floatComplex* in, int size,floatComplex* out)
+{
+ int i = 0;
+ for (i=0;i<size;i++)
+ {
+ out[i] = csechs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/sech/csechs.c b/src/c/elementaryFunctions/Trigonometry/sech/csechs.c
new file mode 100644
index 0000000..37ba6d9
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/sech/csechs.c
@@ -0,0 +1,15 @@
+#include "sech.h"
+#include "sec.h"
+#include <math.h>
+#include "cos.h"
+#include "cosh.h"
+#include "floatComplex.h"
+#include "division.h"
+
+floatComplex csechs(floatComplex z)
+{
+
+ floatComplex out;
+ out = crdivs(FloatComplex(1,0),ccoshs(z));
+ return out;
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/sech/dsecha.c b/src/c/elementaryFunctions/Trigonometry/sech/dsecha.c
new file mode 100644
index 0000000..cfab81f
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/sech/dsecha.c
@@ -0,0 +1,10 @@
+#include "sech.h"
+#include <math.h>
+void dsecha(double* in,int size,double* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ out[i]=dsechs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/sech/dsechs.c b/src/c/elementaryFunctions/Trigonometry/sech/dsechs.c
new file mode 100644
index 0000000..10ca392
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/sech/dsechs.c
@@ -0,0 +1,10 @@
+#include <math.h>
+#include "sech.h"
+#include "cosh.h"
+#include "cos.h"
+
+
+double dsechs(double in)
+{
+ return (1/cosh(in));
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/sech/ssecha.c b/src/c/elementaryFunctions/Trigonometry/sech/ssecha.c
new file mode 100644
index 0000000..1d26563
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/sech/ssecha.c
@@ -0,0 +1,10 @@
+#include "sech.h"
+#include <math.h>
+void ssecha(float* in,int size,float* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ out[i]=ssechs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/sech/ssechs.c b/src/c/elementaryFunctions/Trigonometry/sech/ssechs.c
new file mode 100644
index 0000000..f582fd7
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/sech/ssechs.c
@@ -0,0 +1,10 @@
+#include <math.h>
+#include "sech.h"
+#include "cosh.h"
+#include "cos.h"
+
+
+float ssechs(float in)
+{
+ return (1/cosh(in));
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/sech/zsecha.c b/src/c/elementaryFunctions/Trigonometry/sech/zsecha.c
new file mode 100644
index 0000000..c48f8da
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/sech/zsecha.c
@@ -0,0 +1,11 @@
+#include "sech.h"
+#include <math.h>
+
+void zsecha(doubleComplex* in, int size,doubleComplex* out)
+{
+ int i = 0;
+ for (i=0;i<size;i++)
+ {
+ out[i] = zsechs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/Trigonometry/sech/zsechs.c b/src/c/elementaryFunctions/Trigonometry/sech/zsechs.c
new file mode 100644
index 0000000..93c95b3
--- /dev/null
+++ b/src/c/elementaryFunctions/Trigonometry/sech/zsechs.c
@@ -0,0 +1,15 @@
+#include "sech.h"
+#include "sec.h"
+#include <math.h>
+#include "cos.h"
+#include "cosh.h"
+#include "doubleComplex.h"
+#include "division.h"
+
+doubleComplex zsechs(doubleComplex z)
+{
+
+ doubleComplex out;
+ out = zrdivs(DoubleComplex(1,0),zcoshs(z));
+ return out;
+}
diff --git a/src/c/elementaryFunctions/discrete_mathematics/factor/dfactors.c b/src/c/elementaryFunctions/discrete_mathematics/factor/dfactors.c
new file mode 100644
index 0000000..210670b
--- /dev/null
+++ b/src/c/elementaryFunctions/discrete_mathematics/factor/dfactors.c
@@ -0,0 +1,31 @@
+# include <stdio.h>
+# include <math.h>
+
+void dfactors(double in,double* out)
+{
+ int i=0,k=0;
+ int n=(int)in;
+ while (n%2 == 0)
+ {
+ //printf("%d ", 2);
+ out[k++]=2;
+ n = n/2;
+ }
+
+ for (i = 3; i <= sqrt(n); i = i+2)
+ {
+ while (n%i == 0)
+ {
+ out[k++]=i;
+ //printf("%d ", i);
+ n = n/i;
+ }
+ }
+
+ if (n > 2)
+ {
+ out[k++]=n;
+ //printf ("%d ", n);
+ }
+}
+
diff --git a/src/c/elementaryFunctions/discrete_mathematics/factor/sfactors.c b/src/c/elementaryFunctions/discrete_mathematics/factor/sfactors.c
new file mode 100644
index 0000000..9a37140
--- /dev/null
+++ b/src/c/elementaryFunctions/discrete_mathematics/factor/sfactors.c
@@ -0,0 +1,31 @@
+# include <stdio.h>
+# include <math.h>
+
+void sfactors(float in,float* out)
+{
+ int i=0,k=0;
+ int n=(int)in;
+ while (n%2 == 0)
+ {
+ //printf("%d ", 2);
+ out[k++]=2;
+ n = n/2;
+ }
+
+ for (i = 3; i <= sqrt(n); i = i+2)
+ {
+ while (n%i == 0)
+ {
+ out[k++]=i;
+ //printf("%d ", i);
+ n = n/i;
+ }
+ }
+
+ if (n > 2)
+ {
+ out[k++]=n;
+ //printf ("%d ", n);
+ }
+}
+
diff --git a/src/c/elementaryFunctions/discrete_mathematics/factorial/dfactoriala.c b/src/c/elementaryFunctions/discrete_mathematics/factorial/dfactoriala.c
new file mode 100644
index 0000000..de06aaa
--- /dev/null
+++ b/src/c/elementaryFunctions/discrete_mathematics/factorial/dfactoriala.c
@@ -0,0 +1,12 @@
+#include "factorial.h"
+#include <math.h>
+
+void dfactoriala(double* in,int size,double* out)
+{
+ int i=0;
+ for (i=0;i<size;i++)
+ {
+ out[i] = dfactorials(in[i]);
+ }
+}
+
diff --git a/src/c/elementaryFunctions/discrete_mathematics/factorial/dfactorials.c b/src/c/elementaryFunctions/discrete_mathematics/factorial/dfactorials.c
new file mode 100644
index 0000000..28c787e
--- /dev/null
+++ b/src/c/elementaryFunctions/discrete_mathematics/factorial/dfactorials.c
@@ -0,0 +1,24 @@
+#include <stdio.h>
+#include <math.h>
+#include "factorial.h"
+
+double dfactorials(double in)
+{
+ int i,n;
+ long long int fact=1;
+ n=(int)in;
+ if (n < 0)
+ printf("Error! Factorial of a negative number doesn't exist.");
+ else if (n>170)
+ printf("Inf");
+ else
+ {
+ for(i=1; i<=n; i++)
+ {
+ fact=fact*i;
+ //printf("\n %lld",fact);
+ }
+ }
+
+ return fact;
+}
diff --git a/src/c/elementaryFunctions/discrete_mathematics/factorial/sfactoriala.c b/src/c/elementaryFunctions/discrete_mathematics/factorial/sfactoriala.c
new file mode 100644
index 0000000..e7d820b
--- /dev/null
+++ b/src/c/elementaryFunctions/discrete_mathematics/factorial/sfactoriala.c
@@ -0,0 +1,12 @@
+#include "factorial.h"
+#include <math.h>
+
+void sfactoriala(float* in,int size,float* out)
+{
+ int i=0;
+ for (i=0;i<size;i++)
+ {
+ out[i] = dfactorials(in[i]);
+ }
+}
+
diff --git a/src/c/elementaryFunctions/discrete_mathematics/factorial/sfactorials.c b/src/c/elementaryFunctions/discrete_mathematics/factorial/sfactorials.c
new file mode 100644
index 0000000..b660702
--- /dev/null
+++ b/src/c/elementaryFunctions/discrete_mathematics/factorial/sfactorials.c
@@ -0,0 +1,23 @@
+#include <stdio.h>
+#include <math.h>
+#include "factorial.h"
+
+float sfactorials(float in)
+{
+ int i,n;
+ long long int fact=1;
+ n=(int)in;
+ if (n < 0)
+ printf("Error! Factorial of a negative number doesn't exist.");
+ else if(n>170)
+ printf("Inf");
+ else
+ {
+ for(i=1; i<=n; i++)
+ {
+ fact *= i;
+ }
+ }
+
+ return fact;
+}
diff --git a/src/c/elementaryFunctions/discrete_mathematics/primes/dprimess.c b/src/c/elementaryFunctions/discrete_mathematics/primes/dprimess.c
new file mode 100644
index 0000000..5ecb92e
--- /dev/null
+++ b/src/c/elementaryFunctions/discrete_mathematics/primes/dprimess.c
@@ -0,0 +1,24 @@
+#include<stdio.h>
+#include "primes.h"
+void dprimess(double in, double* out)
+{
+ int i=0,j=0,k=0,n=0,counter=0;
+ n=(int)in;
+ for(i=2;i<=n;i++)
+ {
+ counter=0;
+ for(j=2;j<i;j++)
+ {
+ if(i%j==0)
+ {
+ counter=1;
+ break;
+ }
+ }
+ if(counter==0)
+ {
+ out[k++]=i;
+
+ }
+ }
+}
diff --git a/src/c/elementaryFunctions/discrete_mathematics/primes/sprimess.c b/src/c/elementaryFunctions/discrete_mathematics/primes/sprimess.c
new file mode 100644
index 0000000..14aa236
--- /dev/null
+++ b/src/c/elementaryFunctions/discrete_mathematics/primes/sprimess.c
@@ -0,0 +1,24 @@
+#include<stdio.h>
+#include "primes.h"
+void sprimess(float in, float* out)
+{
+ int i=0,j=0,k=0,n=0,counter=0;
+ n=(int)in;
+ for(i=2;i<=n;i++)
+ {
+ counter=0;
+ for(j=2;j<i;j++)
+ {
+ if(i%j==0)
+ {
+ counter=1;
+ break;
+ }
+ }
+ if(counter==0)
+ {
+ out[k]=i;
+ k++;
+ }
+ }
+}
diff --git a/src/c/elementaryFunctions/float/dfloata.c b/src/c/elementaryFunctions/float/dfloata.c
new file mode 100644
index 0000000..e27b0a1
--- /dev/null
+++ b/src/c/elementaryFunctions/float/dfloata.c
@@ -0,0 +1,7 @@
+#include "float.h"
+
+void dfloata(double* x, int size, float* out) {
+ int i = 0;
+ for (i=0;i<size;i++)
+ out[i] = dfloats(x[i]);
+}
diff --git a/src/c/elementaryFunctions/float/dfloats.c b/src/c/elementaryFunctions/float/dfloats.c
new file mode 100644
index 0000000..a56c24c
--- /dev/null
+++ b/src/c/elementaryFunctions/float/dfloats.c
@@ -0,0 +1,5 @@
+#include "float.h"
+
+float dfloats(double x) {
+ return (float) x;
+}
diff --git a/src/c/elementaryFunctions/float/i16floata.c b/src/c/elementaryFunctions/float/i16floata.c
new file mode 100644
index 0000000..e2366b7
--- /dev/null
+++ b/src/c/elementaryFunctions/float/i16floata.c
@@ -0,0 +1,6 @@
+#include "float.h"
+
+void i16floata(int16* x, int size, float* out) {
+ int i = 0;
+ for (i=0;i<size;i++) out[i] = i16floats(x[i]);
+}
diff --git a/src/c/elementaryFunctions/float/i16floats.c b/src/c/elementaryFunctions/float/i16floats.c
new file mode 100644
index 0000000..c0c073c
--- /dev/null
+++ b/src/c/elementaryFunctions/float/i16floats.c
@@ -0,0 +1,5 @@
+#include "float.h"
+
+float i16floats(int16 x) {
+ return (float) x;
+}
diff --git a/src/c/elementaryFunctions/float/i8floata.c b/src/c/elementaryFunctions/float/i8floata.c
new file mode 100644
index 0000000..b578fe5
--- /dev/null
+++ b/src/c/elementaryFunctions/float/i8floata.c
@@ -0,0 +1,6 @@
+#include "float.h"
+
+void i8floata(int8* x, int size, float* out) {
+ int i = 0;
+ for (i=0;i<size;i++) out[i] = i8floats(x[i]);
+}
diff --git a/src/c/elementaryFunctions/float/i8floats.c b/src/c/elementaryFunctions/float/i8floats.c
new file mode 100644
index 0000000..15e4fc7
--- /dev/null
+++ b/src/c/elementaryFunctions/float/i8floats.c
@@ -0,0 +1,5 @@
+#include "float.h"
+
+float i8floats(int8 x) {
+ return (float) x;
+}
diff --git a/src/c/elementaryFunctions/float/sfloata.c b/src/c/elementaryFunctions/float/sfloata.c
new file mode 100644
index 0000000..c7583ba
--- /dev/null
+++ b/src/c/elementaryFunctions/float/sfloata.c
@@ -0,0 +1,7 @@
+#include "float.h"
+
+void sfloata(float* x, int size, float* out) {
+ int i = 0;
+ for (i=0;i<size;i++)
+ out[i] = sfloats(x[i]);
+}
diff --git a/src/c/elementaryFunctions/float/sfloats.c b/src/c/elementaryFunctions/float/sfloats.c
new file mode 100644
index 0000000..e579186
--- /dev/null
+++ b/src/c/elementaryFunctions/float/sfloats.c
@@ -0,0 +1,5 @@
+#include "float.h"
+
+float sfloats(float x) {
+ return (float) x;
+}
diff --git a/src/c/elementaryFunctions/float/u16floata.c b/src/c/elementaryFunctions/float/u16floata.c
new file mode 100644
index 0000000..28867cb
--- /dev/null
+++ b/src/c/elementaryFunctions/float/u16floata.c
@@ -0,0 +1,6 @@
+#include "float.h"
+
+void u16floata(uint16* x, int size, float* out) {
+ int i = 0;
+ for (i=0;i<size;i++) out[i] = u16floats(x[i]);
+}
diff --git a/src/c/elementaryFunctions/float/u16floats.c b/src/c/elementaryFunctions/float/u16floats.c
new file mode 100644
index 0000000..f46275d
--- /dev/null
+++ b/src/c/elementaryFunctions/float/u16floats.c
@@ -0,0 +1,5 @@
+#include "float.h"
+
+float u16floats(uint16 x) {
+ return (float) x;
+}
diff --git a/src/c/elementaryFunctions/float/u8floata.c b/src/c/elementaryFunctions/float/u8floata.c
new file mode 100644
index 0000000..8455420
--- /dev/null
+++ b/src/c/elementaryFunctions/float/u8floata.c
@@ -0,0 +1,6 @@
+#include "float.h"
+
+void u8floata(uint8* x, int size, float* out) {
+ int i = 0;
+ for (i=0;i<size;i++) out[i] = u8floats(x[i]);
+}
diff --git a/src/c/elementaryFunctions/float/u8floats.c b/src/c/elementaryFunctions/float/u8floats.c
new file mode 100644
index 0000000..f2b4c26
--- /dev/null
+++ b/src/c/elementaryFunctions/float/u8floats.c
@@ -0,0 +1,5 @@
+#include "float.h"
+
+float u8floats(uint8 x) {
+ return (float) x;
+}
diff --git a/src/c/elementaryFunctions/includes/base2dec.h b/src/c/elementaryFunctions/includes/base2dec.h
new file mode 100644
index 0000000..426388e
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/base2dec.h
@@ -0,0 +1,28 @@
+/* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __BASE2DEC_H__
+#define __BASE2DEC_H__
+
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+double gbase2decs(char* in,int size,int base);
+double dbase2decs(double in,int base);
+//void ghex2deca(char* in,int size,double* out);
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__BASE2DEC_H__*/
diff --git a/src/c/elementaryFunctions/includes/bin2dec.h b/src/c/elementaryFunctions/includes/bin2dec.h
new file mode 100644
index 0000000..792e368
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/bin2dec.h
@@ -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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __BIN2DEC_H__
+#define __BIN2DEC_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+long double dbin2decs(long double in);
+int8 i8bin2decs(int8 in);
+//int16 i16bin2decs(int16 in);
+uint8 u8bin2decs(uint8 in);
+uint16 u16bin2decs(uint16 in);
+
+void dbin2deca(double* in,int size,double* out);
+void i8bin2deca(int8* in,int size,int8* out);
+//void i16bin2deca(int16* in,int size,int16* out);
+void u8bin2deca(uint8* in,int size,uint8* out);
+void u16bin2deca(uint16* in,int size,uint16* out);
+
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__BIN2DEC_H__*/
diff --git a/src/c/elementaryFunctions/includes/cosd.h b/src/c/elementaryFunctions/includes/cosd.h
new file mode 100644
index 0000000..7cb59be
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/cosd.h
@@ -0,0 +1,28 @@
+/* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __COSD_H__
+#define __COSD_H__
+#include "types.h"
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+void dcosda(double* in,int size,double* out);
+void scosda(float* in,int size,float* out);
+double dcosds(double in);
+float scosds(float in);
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__COSD_H__*/
diff --git a/src/c/elementaryFunctions/includes/cotd.h b/src/c/elementaryFunctions/includes/cotd.h
new file mode 100644
index 0000000..d2140cb
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/cotd.h
@@ -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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __COTD_H__
+#define __COTD_H__
+
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+void dcotda(double* in,int size,double* out);
+double dcotds(double in);
+void scotda(float* in,int size,float* out);
+float scotds(float in);
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__COTD_H__*/
diff --git a/src/c/elementaryFunctions/includes/coth.h b/src/c/elementaryFunctions/includes/coth.h
new file mode 100644
index 0000000..ac3f82c
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/coth.h
@@ -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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __COTH_H__
+#define __COTH_H__
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "types.h"
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+void dcotha(double* in,int size,double* out);
+double dcoths(double in);
+void scotha(float* in,int size,float* out);
+float scoths(float in);
+doubleComplex zcoths(doubleComplex z);
+void zcotha(doubleComplex* in, int size,doubleComplex* out);
+void ccotha(floatComplex* in, int size,floatComplex* out);
+floatComplex ccoths(floatComplex z);
+
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__COTH_H__*/
diff --git a/src/c/elementaryFunctions/includes/csc.h b/src/c/elementaryFunctions/includes/csc.h
new file mode 100644
index 0000000..6914c93
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/csc.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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __CSC_H__
+#define __CSC_H__
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "types.h"
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+void dcsca(double* in,int size,double* out);
+double dcscs(double in);
+void scsca(float* in,int size,float* out);
+float scscs(float in);
+doubleComplex zcscs(doubleComplex z);
+void zcsca(doubleComplex* in, int size,doubleComplex* out);
+floatComplex ccscs(floatComplex z);
+void ccsca(floatComplex* in, int size,floatComplex* out);
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__CSC_H__*/
diff --git a/src/c/elementaryFunctions/includes/cscd.h b/src/c/elementaryFunctions/includes/cscd.h
new file mode 100644
index 0000000..fad3155
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/cscd.h
@@ -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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __CSCD_H__
+#define __CSCD_H__
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "types.h"
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+void dcscda(double* in,int size,double* out);
+double dcscds(double in);
+void scscda(float* in,int size,float* out);
+float scscds(float in);
+
+void ccscda(floatComplex* in,int size,floatComplex* out);
+floatComplex ccscds(floatComplex in);
+void zcscda(doubleComplex* in,int size,doubleComplex* out);
+doubleComplex zcscds(doubleComplex in);
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__CSCD_H__*/
diff --git a/src/c/elementaryFunctions/includes/csch.h b/src/c/elementaryFunctions/includes/csch.h
new file mode 100644
index 0000000..fd7b8cd
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/csch.h
@@ -0,0 +1,38 @@
+/* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __CSCH_H__
+#define __CSCH_H__
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "types.h"
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+void dcscha(double* in,int size,double* out);
+double dcschs(double in);
+void scscha(float* in,int size,float* out);
+float scschs(float in);
+
+void ccscha(floatComplex* in,int size,floatComplex* out);
+floatComplex ccschs(floatComplex in);
+void zcscha(doubleComplex* in,int size,doubleComplex* out);
+doubleComplex zcschs(doubleComplex in);
+
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__CSCH_H__*/
diff --git a/src/c/elementaryFunctions/includes/dec2base.h b/src/c/elementaryFunctions/includes/dec2base.h
new file mode 100644
index 0000000..aa83007
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/dec2base.h
@@ -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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __DEC2BASE_H__
+#define __DEC2BASE_H__
+#include "types.h"
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+void ddec2bases(double in,int base,int n,char* out);
+void ddec2basea(double* in,int size,int base,int n,char* out);
+void sdec2bases(float in,int base,int n,char* out);
+void sdec2basea(float* in,int size,int base,int n,char* out);
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__DEC2BASE_H__*/
diff --git a/src/c/elementaryFunctions/includes/dec2bin.h b/src/c/elementaryFunctions/includes/dec2bin.h
new file mode 100644
index 0000000..d0917bb
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/dec2bin.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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __DEC2BIN_H__
+#define __DEC2BIN_H__
+#include "types.h"
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+void ddec2bins(double in,int n,double* out);
+void i8dec2bins(int8 in,int n,int8* out);
+void i16dec2bins(int16 in,int n,int16* out);
+void u8dec2bins(uint8 in,int n,uint8* out);
+void u16dec2bins(uint16 in,int n,uint16* out);
+
+void ddec2bina(double* in,int size,int n,double* out);
+void i8dec2bina(int8* in,int size,int n,int8* out);
+void i16dec2bina(int16* in,int size,int n,int16* out);
+void u8dec2bina(uint8* in,int size,int n,uint8* out);
+void u16dec2bina(uint16* in,int size,int n,uint16* out);
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__DEC2BIN_H__*/
diff --git a/src/c/elementaryFunctions/includes/dec2hex.h b/src/c/elementaryFunctions/includes/dec2hex.h
new file mode 100644
index 0000000..e973a87
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/dec2hex.h
@@ -0,0 +1,38 @@
+/* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __DEC2HEX_H__
+#define __DEC2HEX_H__
+#include "types.h"
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+void ddec2hexs(double in,char* out);
+void i8dec2hexs(int8 in,char* out);
+void i16dec2hexs(int16 in,char* out);
+void u8dec2hexs(uint8 in,char* out);
+void u16dec2hexs(uint16 in,char* out);
+
+void ddec2hexa(double* in,int size,char* out);
+void i8dec2hexa(int8* in,int size,char* out);
+void i16dec2hexa(int16* in,int size,char* out);
+void u8dec2hexa(uint8* in,int size,char* out);
+void u16dec2hexa(uint16* in,int size,char* out);
+
+
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__DEC2HEX_H__*/
diff --git a/src/c/elementaryFunctions/includes/dec2oct.h b/src/c/elementaryFunctions/includes/dec2oct.h
new file mode 100644
index 0000000..b0e38fa
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/dec2oct.h
@@ -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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __DEC2oct_H__
+#define __DEC2oct_H__
+#include "types.h"
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+void ddec2octs(double in,double* out);
+void i8dec2octs(int8 in,int8* out);
+void i16dec2octs(int16 in,int16* out);
+void u8dec2octs(uint8 in,uint8* out);
+void u16dec2octs(uint16 in,uint16* out);
+
+void ddec2octa(double* in,int size,double* out);
+void i8dec2octa(int8* in,int size,int8* out);
+void i16dec2octa(int16* in,int size,int16* out);
+void u8dec2octa(uint8* in,int size,uint8* out);
+void u16dec2octa(uint16* in,int size,uint16* out);
+
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__DEC2oct_H__*/
diff --git a/src/c/elementaryFunctions/includes/factor.h b/src/c/elementaryFunctions/includes/factor.h
new file mode 100644
index 0000000..bec7277
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/factor.h
@@ -0,0 +1,27 @@
+/* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __FACTOR_H__
+#define __FACTOR_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dfactors(double in,double* out);
+void sfactors(float in,float* out);
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__FACTOR_H__*/
diff --git a/src/c/elementaryFunctions/includes/factorial.h b/src/c/elementaryFunctions/includes/factorial.h
new file mode 100644
index 0000000..077191e
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/factorial.h
@@ -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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __FACTORIAL_H__
+#define __FACTORIAL_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dfactorials(double in);
+//int8 i8factorials(int8 in);
+//int16 i16factorials(int16 in);
+//uint8 u8factorials(uint8 in);
+//uint16 u16factorials(uint16 in);
+
+void dfactoriala(double* in,int size,double* out);
+//void i8factoriala(int8* in,int size,int8* out);
+//void i16factoriala(int16* in,int size,int16* out);
+//void u8factoriala(uint8* in,int size,uint8* out);
+//void u16factoriala(uint16* in,int size,uint16* out);
+
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__FACTORIAL_H__*/
diff --git a/src/c/elementaryFunctions/includes/float.h b/src/c/elementaryFunctions/includes/float.h
new file mode 100644
index 0000000..885564b
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/float.h
@@ -0,0 +1,54 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006-2008 - INRIA - Arnaud Torset
+ * Author - Shamik Guha
+ * 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 __FLOAT_H__
+#define __FLOAT_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ float(X) returns the unsigned char part of the double value
+*/
+
+EXTERN_ELEMFUNCT float sfloats(float in);
+
+EXTERN_ELEMFUNCT float dfloats(double in);
+
+EXTERN_ELEMFUNCT float i8floats(int8 in);
+
+EXTERN_ELEMFUNCT float u16floats(uint16 in);
+
+EXTERN_ELEMFUNCT float i16floats(int16 in);
+
+EXTERN_ELEMFUNCT void sfloata(float* in, int size, float* out);
+
+EXTERN_ELEMFUNCT void dfloata(double* in, int size, float* out);
+
+EXTERN_ELEMFUNCT void i8floata(int8* in, int size, float* out);
+
+EXTERN_ELEMFUNCT void u16floata(uint16* in, int size, float* out);
+
+EXTERN_ELEMFUNCT void i16floata(int16* in, int size, float* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__FLOAT_H__ */
+
diff --git a/src/c/elementaryFunctions/includes/hex2dec.h b/src/c/elementaryFunctions/includes/hex2dec.h
new file mode 100644
index 0000000..f16a854
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/hex2dec.h
@@ -0,0 +1,27 @@
+/* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __HEX2DEC_H__
+#define __HEX2DEC_H__
+
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+double ghex2decs(char* in,int size);
+double dhex2decs(double in);
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__HEX2DEC_H__*/
diff --git a/src/c/elementaryFunctions/includes/interp1.h b/src/c/elementaryFunctions/includes/interp1.h
new file mode 100644
index 0000000..caf4243
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/interp1.h
@@ -0,0 +1,38 @@
+/* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INTERP1_H__
+#define __INTERP1_H__
+#include "types.h"
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+double dinterp1s(double* x, int size, double* y,int size2, double xin, char* method,int size3);
+//void i8interp1s(int8 in,char* out);
+//void i16interp1s(int16 in,char* out);
+//void u8interp1s(uint8 in,char* out);
+//void u16interp1s(uint16 in,char* out);
+
+//void dinterp1a(double* in,int size,char* out);
+//void i8interp1a(int8* in,int size,char* out);
+//void i16interp1a(int16* in,int size,char* out);
+//void u8interp1a(uint8* in,int size,char* out);
+//void u16interp1a(uint16* in,int size,char* out);
+
+
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INTERP1_H__*/
diff --git a/src/c/elementaryFunctions/includes/oct2dec.h b/src/c/elementaryFunctions/includes/oct2dec.h
new file mode 100644
index 0000000..0b454d1
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/oct2dec.h
@@ -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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __OCT2DEC_H__
+#define __OCT2DEC_H__
+#include "types.h"
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+double doct2decs(double in);
+int8 i8oct2decs(int8 in);
+int16 i16oct2decs(int16 in);
+uint8 u8oct2decs(uint8 in);
+uint16 u16oct2decs(uint16 in);
+
+void doct2deca(double* in,int size,double* out);
+void i8oct2deca(int8* in,int size,int8* out);
+void i16oct2deca(int16* in,int size,int16* out);
+void u8oct2deca(uint8* in,int size,uint8* out);
+void u16oct2deca(uint16* in,int size,uint16* out);
+
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__OCT2DEC_H__*/
diff --git a/src/c/elementaryFunctions/includes/primes.h b/src/c/elementaryFunctions/includes/primes.h
new file mode 100644
index 0000000..c541df9
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/primes.h
@@ -0,0 +1,28 @@
+/* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __PRIMES_H__
+#define __PRIMES_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+void dprimess(double in,double* out);
+void sprimess(float in,float* out);
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__PRIMES_H__*/
diff --git a/src/c/elementaryFunctions/includes/sec.h b/src/c/elementaryFunctions/includes/sec.h
new file mode 100644
index 0000000..08120ed
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/sec.h
@@ -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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __SEC_H__
+#define __SEC_H__
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+//#include "doubleComplex.h"
+#include <complex.h>
+#include "types.h"
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+void dseca(double* in,int size,double* out);
+double dsecs(double in);
+void sseca(float* in,int size,float* out);
+float ssecs(float in);
+
+void zsecs(double complex z);
+//void zseca(doubleComplex* in, int size,doubleComplex* out);
+floatComplex csecs(floatComplex z);
+void cseca(floatComplex* in, int size,floatComplex* out);
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__SEC_H__*/
diff --git a/src/c/elementaryFunctions/includes/secd.h b/src/c/elementaryFunctions/includes/secd.h
new file mode 100644
index 0000000..bf9c653
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/secd.h
@@ -0,0 +1,28 @@
+/* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __SECD_H__
+#define __SECD_H__
+#include "types.h"
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+void dsecda(double* in,int size,double* out);
+void ssecda(float* in,int size,float* out);
+double dsecds(double in);
+float ssecds(float in);
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__SECD_H__*/
diff --git a/src/c/elementaryFunctions/includes/sech.h b/src/c/elementaryFunctions/includes/sech.h
new file mode 100644
index 0000000..9b85396
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/sech.h
@@ -0,0 +1,38 @@
+/* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __SECH_H__
+#define __SECH_H__
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "types.h"
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+void dsecha(double* in,int size,double* out);
+double dsechs(double in);
+void ssecha(float* in,int size,float* out);
+float ssechs(float in);
+
+void csecha(floatComplex* in,int size,floatComplex* out);
+floatComplex csechs(floatComplex in);
+void zsecha(doubleComplex* in,int size,doubleComplex* out);
+doubleComplex zsechs(doubleComplex in);
+
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__SECH_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_base2dec.h b/src/c/elementaryFunctions/interfaces/int_base2dec.h
new file mode 100644
index 0000000..8d5e68e
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_base2dec.h
@@ -0,0 +1,27 @@
+ /* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_base2dec_H__
+#define __INT_base2dec_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define g2d0base2decd0(in,size,base) gbase2decs(in,size[1],base)
+#define d0d0base2decd0(in,base) dbase2decs(in,base)
+//#define g2d0base2decd2(in,size,out) gbase2deca(in,size[1],out)
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_base2dec_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_bin2dec.h b/src/c/elementaryFunctions/interfaces/int_bin2dec.h
new file mode 100644
index 0000000..c8e07b0
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_bin2dec.h
@@ -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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_bin2dec_H__
+#define __INT_bin2dec_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define d0bin2decd0(in) dbin2decs(in)
+#define i80bin2deci80(in) i8bin2decs(in)
+//#define i160bin2deci160(in) i16bin2decs(in)
+#define u80bin2decu80(in) u8bin2decs(in)
+#define u160bin2decu160(in) u16bin2decs(in)
+
+#define d2bin2decd2(in,size,out) dbin2deca(in,size[0]*size[1],out)
+#define i82bin2deci82(in,size,out) i8bin2deca(in,size[0]*size[1],out)
+//#define i162bin2deci162(in,size,out) i16bin2deca(in,size[0]*size[1],out)
+#define u82bin2decu82(in,size,out) u8bin2deca(in,size[0]*size[1],out)
+#define u162bin2decu162(in,size,out) u16bin2deca(in,size[0]*size[1],out)
+
+
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_bin2dec_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_cosd.h b/src/c/elementaryFunctions/interfaces/int_cosd.h
new file mode 100644
index 0000000..9ca9945
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_cosd.h
@@ -0,0 +1,28 @@
+ /* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_COSD_H__
+#define __INT_COSD_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define d2cosdd2(in,size,out) dcosda(in,size[1],out)
+#define d0cosdd0(in) dcosds(in)
+#define s2cosds2(in,size,out) scosda(in,size[1],out)
+#define s0cosds0(in) scosds(in)
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_COSD_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_cotd.h b/src/c/elementaryFunctions/interfaces/int_cotd.h
new file mode 100644
index 0000000..382f780
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_cotd.h
@@ -0,0 +1,28 @@
+ /* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_COTD_H__
+#define __INT_COTD_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define d2cotdd2(in,size,out) dcotda(in,size[1],out)
+#define s2cotds2(in,size,out) scotda(in,size[1],out)
+#define d0cotdd0(in) dcotds(in)
+#define s0cotds0(in) scotds(in)
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_COTD_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_coth.h b/src/c/elementaryFunctions/interfaces/int_coth.h
new file mode 100644
index 0000000..db8887a
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_coth.h
@@ -0,0 +1,32 @@
+ /* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_COTH_H__
+#define __INT_COTH_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define d2cothd2(in,size,out) dcotha(in,size[1],out)
+#define s2coths2(in,size,out) scotha(in,size[1],out)
+#define d0cothd0(in) dcoths(in)
+#define s0coths0(in) scoths(in)
+#define z0cothz0(in) zcoths(in)
+#define z2cothz2(in,size,out) zcoths(in,size[1],out)
+#define c0cothc0(in) ccoths(in)
+#define c2cothc2(in,size,out) ccoths(in,size[1],out)
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_COTH_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_csc.h b/src/c/elementaryFunctions/interfaces/int_csc.h
new file mode 100644
index 0000000..74038c9
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_csc.h
@@ -0,0 +1,32 @@
+ /* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_CSC_H__
+#define __INT_CSC_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define d2cscd2(in,size,out) dcsca(in,size[1],out)
+#define d0cscd0(in) dcscs(in)
+#define s2cscs2(in,size,out) scsca(in,size[1],out)
+#define s0cscs0(in) scscs(in)
+#define z2cscz2(in,size,out) zcsca(in,size[1],out)
+#define z0cscz0(in) zcscs(in)
+#define c2cscc2(in,size,out) ccsca(in,size[1],out)
+#define c0cscc0(in) ccscs(in)
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_CSC_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_cscd.h b/src/c/elementaryFunctions/interfaces/int_cscd.h
new file mode 100644
index 0000000..99bc49a
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_cscd.h
@@ -0,0 +1,32 @@
+ /* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_CSCD_H__
+#define __INT_CSCD_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define d2cscdd2(in,size,out) dcscda(in,size[1],out)
+#define d0cscdd0(in) dcscds(in)
+#define s2cscds2(in,size,out) scscda(in,size[1],out)
+#define s0cscds0(in) scscds(in)
+#define z0cscdz0(in) zcscds(in)
+#define z2cscdz2(in,size,out) zcscds(in,size[1],out)
+#define c0cscdc0(in) ccscds(in)
+#define c2cscdc2(in,size,out) ccscds(in,size[1],out)
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_CSCD_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_csch.h b/src/c/elementaryFunctions/interfaces/int_csch.h
new file mode 100644
index 0000000..ce35589
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_csch.h
@@ -0,0 +1,32 @@
+ /* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_CSCH_H__
+#define __INT_CSCH_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define d2cschd2(in,size,out) dcscha(in,size[1],out)
+#define d0cschd0(in) dcschs(in)
+#define s2cschs2(in,size,out) scscha(in,size[1],out)
+#define s0cschs0(in) scschs(in)
+#define z0cschz0(in) zcschs(in)
+#define z2cschz2(in,size,out) zcschs(in,size[1],out)
+#define c0cschc0(in) ccschs(in)
+#define c2cschc2(in,size,out) ccschs(in,size[1],out)
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_CSC_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_dec2base.h b/src/c/elementaryFunctions/interfaces/int_dec2base.h
new file mode 100644
index 0000000..637f099
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_dec2base.h
@@ -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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_dec2base_H__
+#define __INT_dec2base_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define d0d0dec2baseg2(in,base,out) ddec2bases(in,base,0,out)
+#define s0d0dec2baseg2(in,base,out) sdec2bases(in,base,0,out)
+
+#define d2d0dec2baseg2(in,size,out) ddec2basea(in,size[0]*size[1],base,0,out)
+#define s2d0dec2baseg2(in,size,out) sdec2basea(in,size[0]*size[1],base,0,out)
+
+#define d0d0d0dec2baseg2(in,base,n,out) ddec2bases(in,base,n,out)
+#define s0d0d0dec2baseg2(in,base,n,out) sdec2bases(in,base,n,out)
+
+#define d2d0d0dec2baseg2(in,size,base,n,out) ddec2basea(in,size[0]*size[1],base,n,out)
+#define s2d0d0dec2baseg2(in,size,base,n,out) sdec2basea(in,size[0]*size[1],base,n,out)
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_dec2base_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_dec2bin.h b/src/c/elementaryFunctions/interfaces/int_dec2bin.h
new file mode 100644
index 0000000..c6f2008
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_dec2bin.h
@@ -0,0 +1,48 @@
+ /* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_dec2bin_H__
+#define __INT_dec2bin_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define d0dec2bind2(in,out) ddec2bins(in,0,out)
+#define i80dec2bini82(in,out) i8dec2bins(in,0,out)
+#define i160dec2bini162(in,out) i16dec2bins(in,0,out)
+#define u80dec2binu82(in,out) u8dec2bins(in,0,out)
+#define u160dec2binu162(in,out) u16dec2bins(in,0,out)
+
+#define d2dec2bind2(in,size,out) ddec2bina(in,size[0]*size[1],0,out)
+#define i82dec2bini82(in,size,out) i8dec2bina(in,size[0]*size[1],0,out)
+#define i162dec2bini162(in,size,out) i16dec2bina(in,size[0]*size[1],0,out)
+#define u82dec2binu82(in,size,out) u8dec2bina(in,size[0]*size[1],0,out)
+#define u162dec2binu162(in,size,out) u16dec2bina(in,size[0]*size[1],0,out)
+
+#define d0d0dec2bind2(in,n,out) ddec2bins(in,n,out)
+#define i80d0dec2bini82(in,n,out) i8dec2bins(in,n,out)
+#define i160d0dec2bini162(in,n,out) i16dec2bins(in,n,out)
+#define u80d0dec2binu82(in,n,out) u8dec2bins(in,n,out)
+#define u160d0dec2binu162(in,n,out) u16dec2bins(in,n,out)
+
+#define d2d0dec2bind2(in,size,n,out) ddec2bina(in,size[0]*size[1],n,out)
+#define i82d0dec2bini82(in,size,n,out) i8dec2bina(in,size[0]*size[1],n,out)
+#define i162d0dec2bini162(in,size,n,out) i16dec2bina(in,size[0]*size[1],n,out)
+#define u82d0dec2binu82(in,size,n,out) u8dec2bina(in,size[0]*size[1],n,out)
+#define u162d0dec2binu162(in,size,n,out) u16dec2bina(in,size[0]*size[1],n,out)
+
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_dec2bin_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_dec2hex.h b/src/c/elementaryFunctions/interfaces/int_dec2hex.h
new file mode 100644
index 0000000..bed85be
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_dec2hex.h
@@ -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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_dec2hex_H__
+#define __INT_dec2hex_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define d0dec2hexg2(in,out) ddec2hexs(in,out)
+#define i80dec2hexg2(in,out) i8dec2hexs(in,out)
+#define i160dec2hexg2(in,out) i16dec2hexs(in,out)
+#define u80dec2hexg2(in,out) u8dec2hexs(in,out)
+#define u160dec2hexg2(in,out) u16dec2hexs(in,out)
+
+#define d2dec2hexg2(in,size,out) ddec2hexa(in,size[0]*size[1],out)
+#define i82dec2hexg2(in,size,out) i8dec2hexa(in,size[0]*size[1],out)
+#define i162dec2hexg2(in,size,out) i16dec2hexa(in,size[0]*size[1],out)
+#define u82dec2hexg2(in,size,out) u8dec2hexa(in,size[0]*size[1],out)
+#define u162dec2hexg2(in,size,out) u16dec2hexa(in,size[0]*size[1],out)
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_dec2hex_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_dec2oct.h b/src/c/elementaryFunctions/interfaces/int_dec2oct.h
new file mode 100644
index 0000000..5cf61be
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_dec2oct.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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_dec2oct_H__
+#define __INT_dec2oct_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define d0dec2octd2(in,out) ddec2octs(in,out)
+#define i80dec2octi82(in,out) i8dec2octs(in,out)
+#define i160dec2octi162(in,out) i16dec2octs(in,out)
+#define u80dec2octu82(in,out) u8dec2octs(in,out)
+#define u160dec2octu162(in,out) u16dec2octs(in,out)
+
+#define d2dec2octd2(in,size,out) ddec2octa(in,size[0]*size[1],out)
+#define i82dec2octi82(in,size,out) i8dec2octa(in,size[0]*size[1],out)
+#define i162dec2octi162(in,size,out) i16dec2octa(in,size[0]*size[1],out)
+#define u82dec2octu82(in,size,out) u8dec2octa(in,size[0]*size[1],out)
+#define u162dec2octu162(in,size,out) u16dec2octa(in,size[0]*size[1],out)
+
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_dec2oct_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_factor.h b/src/c/elementaryFunctions/interfaces/int_factor.h
new file mode 100644
index 0000000..5e0991a
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_factor.h
@@ -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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_FACTOR_H__
+#define __INT_FACTOR_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define d0factord2(in,out) dfactors(in,out)
+#define s0factors2(in,out) sfactors(in,out)
+
+
+
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_FACTOR_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_factorial.h b/src/c/elementaryFunctions/interfaces/int_factorial.h
new file mode 100644
index 0000000..446b513
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_factorial.h
@@ -0,0 +1,31 @@
+ /* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_FACTORIAL_H__
+#define __INT_FACTORIAL_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define d0factoriald0(in) dfactorials(in)
+#define s0factorials0(in) sfactorials(in)
+
+#define d2factoriald2(in,size,out) dfactoriala(in,size[0]*size[1],out)
+#define s2factorials2(in,size,out) sfactoriala(in,size[0]*size[1],out)
+
+
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_FACTORIAL_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_float.h b/src/c/elementaryFunctions/interfaces/int_float.h
new file mode 100644
index 0000000..df9aa39
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_float.h
@@ -0,0 +1,38 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ * Author - Shamik Guha
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_FLOAT_H__
+#define __INT_FLOAT_H__
+
+#define s0floats0(in) sfloats(in)
+
+#define d0floats0(in) dfloats(in)
+
+#define i80floats0(in) i8floats(in)
+
+#define u160floats0(in) u16floats(in)
+
+#define i160floats0(in) i16floats(in)
+
+#define s2floats2(in,size,out) sfloata(in, size[0]*size[1], out)
+
+#define d2floats2(in,size,out) dfloata(in, size[0]*size[1], out)
+
+#define i82floats2(in,size,out) i8floata(in, size[0]*size[1], out)
+
+#define u162floats2(in,size,out) u16floata(in, size[0]*size[1], out)
+
+#define i162floats2(in,size,out) i16floata(in, size[0]*size[1], out)
+
+#endif /* !__INT_FLOAT_H__ */
diff --git a/src/c/elementaryFunctions/interfaces/int_hex2dec.h b/src/c/elementaryFunctions/interfaces/int_hex2dec.h
new file mode 100644
index 0000000..d558936
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_hex2dec.h
@@ -0,0 +1,26 @@
+ /* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_hex2dec_H__
+#define __INT_hex2dec_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define g2hex2decd0(in,size) ghex2decs(in,size[1])
+#define d0hex2decd0(in) dhex2decs(in)
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_hex2dec_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_interp1.h b/src/c/elementaryFunctions/interfaces/int_interp1.h
new file mode 100644
index 0000000..bafe915
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_interp1.h
@@ -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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_INTERP1_H__
+#define __INT_INTERP1_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define d2d2d0g2interp1d0(x,size,y,size2,xin,method,size3) dinterp1s(x,size[1],y,size2[1],xin,method,size3[1])
+//#define i80interp1g2(in,out) i8interp1s(in,out)
+//#define i160interp1g2(in,out) i16interp1s(in,out)
+//#define u80interp1g2(in,out) u8interp1s(in,out)
+//#define u160interp1g2(in,out) u16interp1s(in,out)
+
+//#define d2interp1g2(in,size,out) dinterp1a(in,size[0]*size[1],out)
+//#define i82interp1g2(in,size,out) i8interp1a(in,size[0]*size[1],out)
+//#define i162interp1g2(in,size,out) i16interp1a(in,size[0]*size[1],out)
+//#define u82interp1g2(in,size,out) u8interp1a(in,size[0]*size[1],out)
+//#define u162interp1g2(in,size,out) u16interp1a(in,size[0]*size[1],out)
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_interp1_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_oct2dec.h b/src/c/elementaryFunctions/interfaces/int_oct2dec.h
new file mode 100644
index 0000000..0f5d1f2
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_oct2dec.h
@@ -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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_oct2dec_H__
+#define __INT_oct2dec_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define d0oct2decd0(in) doct2decs(in)
+#define i80oct2deci80(in) i8oct2decs(in)
+#define i160oct2deci160(in) i16oct2decs(in)
+#define u80oct2decu80(in) u8oct2decs(in)
+#define u160oct2decu160(in) u16oct2decs(in)
+
+#define d2oct2decd2(in,size,out) doct2deca(in,size[0]*size[1],out)
+#define i82oct2deci82(in,size,out) i8oct2deca(in,size[0]*size[1],out)
+#define i162oct2deci162(in,size,out) i16oct2deca(in,size[0]*size[1],out)
+#define u82oct2decu82(in,size,out) u8oct2deca(in,size[0]*size[1],out)
+#define u162oct2decu162(in,size,out) u16oct2deca(in,size[0]*size[1],out)
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_oct2dec_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_primes.h b/src/c/elementaryFunctions/interfaces/int_primes.h
new file mode 100644
index 0000000..d48a683
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_primes.h
@@ -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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_PRIMES_H__
+#define __INT_PRIMES_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define d0primesd2(in,out) dprimess(in,out)
+#define s0primess2(in,out) sprimess(in,out)
+
+
+
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_PRIMES_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_sec.h b/src/c/elementaryFunctions/interfaces/int_sec.h
new file mode 100644
index 0000000..b07cdfc
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_sec.h
@@ -0,0 +1,34 @@
+ /* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_SEC_H__
+#define __INT_SEC_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define d2secd2(in,size,out) dseca(in,size[1],out)
+#define d0secd0(in) dsecs(in)
+#define s2secs2(in,size,out) sseca(in,size[1],out)
+#define s0secs0(in) ssecs(in)
+
+#define z2secz2(in,size,out) zseca(in,size[1],out)
+#define z0secz0(in) zsecs(in)
+#define c2secc2(in,size,out) cseca(in,size[1],out)
+#define c0secc0(in) csecs(in)
+
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_SEC__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_secd.h b/src/c/elementaryFunctions/interfaces/int_secd.h
new file mode 100644
index 0000000..9304eb0
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_secd.h
@@ -0,0 +1,28 @@
+ /* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_SECD_H__
+#define __INT_SECD_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define d2secdd2(in,size,out) dsecda(in,size[1],out)
+#define d0secdd0(in) dsecds(in)
+#define s2secds2(in,size,out) ssecda(in,size[1],out)
+#define s0secds0(in) ssecds(in)
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_SECD_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_sech.h b/src/c/elementaryFunctions/interfaces/int_sech.h
new file mode 100644
index 0000000..1cd4221
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_sech.h
@@ -0,0 +1,32 @@
+ /* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_SECH_H__
+#define __INT_SECH_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define d2sechd2(in,size,out) dsecha(in,size[1],out)
+#define s2sechs2(in,size,out) ssecha(in,size[1],out)
+#define d0sechd0(in) dsechs(in)
+#define s0sechs0(in) ssechs(in)
+#define z0sechz0(in) zsechs(in)
+#define z2sechz2(in,size,out) zsechs(in,size[1],out)
+#define c0sechc0(in) csechs(in)
+#define c2sechc2(in,size,out) csechs(in,size[1],out)
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_SECH_H__*/
diff --git a/src/c/elementaryFunctions/interpolation/dinterp1s.c b/src/c/elementaryFunctions/interpolation/dinterp1s.c
new file mode 100644
index 0000000..17aeb87
--- /dev/null
+++ b/src/c/elementaryFunctions/interpolation/dinterp1s.c
@@ -0,0 +1,26 @@
+#include <stdio.h>
+#include "interp1.h"
+double dinterp1s(double* x, int size, double* y,int size2, double xin, char* method,int size3)
+{
+ double x0=x[0];
+ double x1=x[size-1];
+ double y0=y[0];
+ double y1=y[size2-1];
+ double a = (y1 - y0) / (x1 - x0);
+ double b = ((-a)*x0) + y0;
+ double yout = 0.0;
+ yout=(double) ((a*xin) + b);
+ return yout;
+}
+
+/*
+int main(void)
+{
+ double x0=3, y0=0, x1=5, y1=8;
+ double x=4;
+ double y = linear_interpolation(x0, y0, x1, y1, x);
+ printf("(%f, %f), (%f, %f) for %f = %f\n", x0, y0, x1, y1, x, y);
+ return 0;
+
+}
+*/
diff --git a/src/c/elementaryFunctions/radix_conversions/base2dec/dbase2decs.c b/src/c/elementaryFunctions/radix_conversions/base2dec/dbase2decs.c
new file mode 100644
index 0000000..51c42e0
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/base2dec/dbase2decs.c
@@ -0,0 +1,21 @@
+#include <string.h>
+#include "base2dec.h"
+#include <stdio.h>
+#include <math.h>
+
+double dbase2decs(double in,int base)
+{
+ int n=0,rem=0, base1=1;
+ double out=0.0;
+ n=(int)in;
+ while (n!=0)
+ {
+ rem = n%10;
+ out = out + (rem * base1);
+ n = n / 10 ;
+ base1 = base1 * base;
+ }
+ return out;
+}
+
+
diff --git a/src/c/elementaryFunctions/radix_conversions/base2dec/gbase2decs.c b/src/c/elementaryFunctions/radix_conversions/base2dec/gbase2decs.c
new file mode 100644
index 0000000..9acf266
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/base2dec/gbase2decs.c
@@ -0,0 +1,160 @@
+#include<stdio.h>
+#include<math.h>
+#include "base2dec.h"
+#include <string.h>
+
+double gbase2decs(char* in,int size,int base)
+{
+ size-=2;
+ int i=0,val=0,j=0;
+ double o=0.0;
+ for(i=0; in[i]!='\0'; i++)
+ {
+ //printf("%c \n",in[i]);
+ switch(in[i])
+ {
+ case '0':
+ val = 0;
+ break;
+ case '1':
+ val = 1;
+ break;
+ case '2':
+ val = 2;
+ break;
+ case '3':
+ val = 3;
+ break;
+ case '4':
+ val = 4;
+ break;
+ case '5':
+ val = 5;
+ break;
+ case '6':
+ val = 6;
+ break;
+ case '7':
+ val = 7;
+ break;
+ case '8':
+ val = 8;
+ break;
+ case '9':
+ val = 9;
+ break;
+ case 'a':
+ case 'A':
+ val = 10;
+ break;
+ case 'b':
+ case 'B':
+ val = 11;
+ break;
+ case 'c':
+ case 'C':
+ val = 12;
+ break;
+ case 'd':
+ case 'D':
+ val = 13;
+ break;
+ case 'e':
+ case 'E':
+ val = 14;
+ break;
+ case 'f':
+ case 'F':
+ val = 15;
+ break;
+ case 'g':
+ case 'G':
+ val = 16;
+ break;
+ case 'h':
+ case 'H':
+ val = 17;
+ break;
+ case 'i':
+ case 'I':
+ val = 18;
+ break;
+ case 'j':
+ case 'J':
+ val = 19;
+ break;
+ case 'k':
+ case 'K':
+ val = 20;
+ break;
+ case 'l':
+ case 'L':
+ val = 21;
+ break;
+ case 'm':
+ case 'M':
+ val = 22;
+ break;
+ case 'n':
+ case 'N':
+ val = 23;
+ break;
+ case 'o':
+ case 'O':
+ val = 24;
+ break;
+ case 'p':
+ case 'P':
+ val = 25;
+ break;
+ case 'q':
+ case 'Q':
+ val = 26;
+ break;
+ case 'r':
+ case 'R':
+ val = 27;
+ break;
+ case 's':
+ case 'S':
+ val = 28;
+ break;
+ case 't':
+ case 'T':
+ val = 29;
+ break;
+ case 'u':
+ case 'U':
+ val = 30;
+ break;
+ case 'v':
+ case 'V':
+ val = 31;
+ break;
+ case 'w':
+ case 'W':
+ val = 32;
+ break;
+ case 'x':
+ case 'X':
+ val = 33;
+ break;
+ case 'y':
+ case 'Y':
+ val = 34;
+ break;
+ case 'z':
+ case 'Z':
+ val = 35;
+ break;
+ }
+ o = o + (val * pow(base, size));
+ //printf("%f\n",out[0]);
+ //o=(int)out[0];
+ //o=o/16;
+ //printf("%d %d %d\n",o,val,(val * pow(16, size)));
+ //j++;
+ size--;
+ }
+ return o;
+ }
diff --git a/src/c/elementaryFunctions/radix_conversions/bin2dec/dbin2deca.c b/src/c/elementaryFunctions/radix_conversions/bin2dec/dbin2deca.c
new file mode 100644
index 0000000..9baf4bd
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/bin2dec/dbin2deca.c
@@ -0,0 +1,10 @@
+#include "bin2dec.h"
+
+void dbin2deca(double* in,int size,double* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ out[i]=dbin2decs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/bin2dec/dbin2decs.c b/src/c/elementaryFunctions/radix_conversions/bin2dec/dbin2decs.c
new file mode 100644
index 0000000..1d3cf3a
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/bin2dec/dbin2decs.c
@@ -0,0 +1,21 @@
+#include <string.h>
+#include "bin2dec.h"
+#include <stdlib.h>
+#include <stdio.h>
+long double dbin2decs(long double in)
+{
+ int base=1, rem=0;
+ long double out=0.0;
+ int in1;
+ in1=(int)in;
+ while (in1 != 0)
+ {
+ rem = in1 % 10;
+ out = out + (rem * base);
+ in1 = in1 / 10 ;
+ base = base * 2;
+ }
+ return out;
+ // printf("Decimal equivalent is: %f \n",out);
+}
+
diff --git a/src/c/elementaryFunctions/radix_conversions/bin2dec/i16bin2deca.c b/src/c/elementaryFunctions/radix_conversions/bin2dec/i16bin2deca.c
new file mode 100644
index 0000000..1ebc973
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/bin2dec/i16bin2deca.c
@@ -0,0 +1,10 @@
+#include "bin2dec.h"
+
+void i16bin2deca(int16* in,int size,int16* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ out[i]=i16bin2decs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/bin2dec/i16bin2decs.c b/src/c/elementaryFunctions/radix_conversions/bin2dec/i16bin2decs.c
new file mode 100644
index 0000000..0f39541
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/bin2dec/i16bin2decs.c
@@ -0,0 +1,21 @@
+#include <string.h>
+#include "bin2dec.h"
+#include <stdlib.h>
+#include <stdio.h>
+int16 i16bin2decs(int16 in)
+{
+ int base=1, rem=0;
+ int16 out=0;
+ int in1;
+ in1=(int)in;
+ while (in1 != 0)
+ {
+ rem = in1 % 10;
+ out = out + (rem * base);
+ in1 = in1 / 10 ;
+ base = base * 2;
+ }
+ return out;
+ // printf("Decimal equivalent is: %f \n",out);
+}
+
diff --git a/src/c/elementaryFunctions/radix_conversions/bin2dec/i8bin2deca.c b/src/c/elementaryFunctions/radix_conversions/bin2dec/i8bin2deca.c
new file mode 100644
index 0000000..ad76143
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/bin2dec/i8bin2deca.c
@@ -0,0 +1,10 @@
+#include "bin2dec.h"
+
+void i8bin2deca(int8* in,int size,int8* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ out[i]=i8bin2decs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/bin2dec/i8bin2decs.c b/src/c/elementaryFunctions/radix_conversions/bin2dec/i8bin2decs.c
new file mode 100644
index 0000000..1863e51
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/bin2dec/i8bin2decs.c
@@ -0,0 +1,21 @@
+#include <string.h>
+#include "bin2dec.h"
+#include <stdlib.h>
+#include <stdio.h>
+int8 i8bin2decs(int8 in)
+{
+ int base=1, rem=0;
+ int8 out=0;
+ int in1;
+ in1=(int)in;
+ while (in1 != 0)
+ {
+ rem = in1 % 10;
+ out = out + (rem * base);
+ in1 = in1 / 10 ;
+ base = base * 2;
+ }
+ return out;
+ // printf("Decimal equivalent is: %f \n",out);
+}
+
diff --git a/src/c/elementaryFunctions/radix_conversions/bin2dec/u16bin2deca.c b/src/c/elementaryFunctions/radix_conversions/bin2dec/u16bin2deca.c
new file mode 100644
index 0000000..2a4ac15
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/bin2dec/u16bin2deca.c
@@ -0,0 +1,10 @@
+#include "bin2dec.h"
+
+void u16bin2deca(uint16* in,int size,uint16* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ out[i]=u16bin2decs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/bin2dec/u16bin2decs.c b/src/c/elementaryFunctions/radix_conversions/bin2dec/u16bin2decs.c
new file mode 100644
index 0000000..0e58b94
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/bin2dec/u16bin2decs.c
@@ -0,0 +1,21 @@
+#include <string.h>
+#include "bin2dec.h"
+#include <stdlib.h>
+#include <stdio.h>
+uint16 u16bin2decs(uint16 in)
+{
+ int base=1, rem=0;
+ uint16 out=0;
+ int in1;
+ in1=(int)in;
+ while (in1 != 0)
+ {
+ rem = in1 % 10;
+ out = out + (rem * base);
+ in1 = in1 / 10 ;
+ base = base * 2;
+ }
+ return out;
+ // printf("Decimal equivalent is: %f \n",out);
+}
+
diff --git a/src/c/elementaryFunctions/radix_conversions/bin2dec/u8bin2deca.c b/src/c/elementaryFunctions/radix_conversions/bin2dec/u8bin2deca.c
new file mode 100644
index 0000000..f775664
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/bin2dec/u8bin2deca.c
@@ -0,0 +1,10 @@
+#include "bin2dec.h"
+
+void u8bin2deca(uint8* in,int size,uint8* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ out[i]=u8bin2decs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/bin2dec/u8bin2decs.c b/src/c/elementaryFunctions/radix_conversions/bin2dec/u8bin2decs.c
new file mode 100644
index 0000000..4198600
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/bin2dec/u8bin2decs.c
@@ -0,0 +1,21 @@
+#include <string.h>
+#include "bin2dec.h"
+#include <stdlib.h>
+#include <stdio.h>
+uint8 u8bin2decs(uint8 in)
+{
+ int base=1, rem=0;
+ uint8 out=0;
+ int in1;
+ in1=(int)in;
+ while (in1 != 0)
+ {
+ rem = in1 % 10;
+ out = out + (rem * base);
+ in1 = in1 / 10 ;
+ base = base * 2;
+ }
+ return out;
+ // printf("Decimal equivalent is: %f \n",out);
+}
+
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2base/ddec2basea.c b/src/c/elementaryFunctions/radix_conversions/dec2base/ddec2basea.c
new file mode 100644
index 0000000..eeadcb7
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2base/ddec2basea.c
@@ -0,0 +1,10 @@
+#include "dec2base.h"
+
+void ddec2basea(double* in,int size,int base,int n,char* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ ddec2bases(in[i],base,n,&(out[i*3]));
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2base/ddec2bases.c b/src/c/elementaryFunctions/radix_conversions/dec2base/ddec2bases.c
new file mode 100644
index 0000000..9dc7c82
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2base/ddec2bases.c
@@ -0,0 +1,60 @@
+#include <string.h>
+#include <math.h>
+#include "dec2base.h"
+#include <stdio.h>
+
+void ddec2bases(double in,int base,int n,char* out)
+{
+ int quot;
+ //printf("%d\n",n);
+ int i=0,j=0,k=0,tmp,temp;
+ quot=(int)in;
+ //printf("%d",quot);
+ while(quot!=0)
+ {
+ temp=quot%base;
+ //printf("%d\n",temp);
+ if(temp < 10)
+ { temp = temp + 48;
+ //printf("%d\n",temp);
+ }
+ else
+ {
+ temp = temp + 55;
+ //printf("%d\n",temp);
+ }
+ out[i++]=temp;
+ //printf("%c\n",out[i-1]);
+ quot = quot/base;
+ }
+//printf("%d\n",i);
+ if(n>i-1)
+ {
+ for(j=i;j<=n;j++)
+ { out[j]='0';
+ //printf(" %c %c \n",out[j],out[i]);
+ }
+ }
+ if(n==0)
+ {
+ j=i-1;
+ n=i;
+ }
+ else
+ j=n-1;
+
+ out[n]='\0';
+ //for(k=0;k<=n;k++)
+ //printf("%c\n",out[k]);
+ i=0;
+ while(i<j)
+ {
+ tmp=out[i];
+ //printf("%c\n",out[i]);
+ out[i]=out[j];
+ out[j]=tmp;
+ //printf("%c\n",out[j]);
+ i++;
+ j--;
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2base/sdec2basea.c b/src/c/elementaryFunctions/radix_conversions/dec2base/sdec2basea.c
new file mode 100644
index 0000000..51e1238
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2base/sdec2basea.c
@@ -0,0 +1,10 @@
+#include "dec2base.h"
+
+void sdec2basea(float* in,int size,int base,int n,char* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ sdec2bases(in[i],base,n,&(out[i*3]));
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2base/sdec2bases.c b/src/c/elementaryFunctions/radix_conversions/dec2base/sdec2bases.c
new file mode 100644
index 0000000..9abe216
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2base/sdec2bases.c
@@ -0,0 +1,34 @@
+#include <string.h>
+#include <math.h>
+#include "dec2base.h"
+#include <stdio.h>
+
+void sdec2bases(float in,int base,int n,char* out)
+{
+ int quot;
+ int i=0,j=0,k=0,tmp,temp;
+ quot=(int)in;
+ while(quot!=0)
+ {
+ temp=quot%base;
+ if(temp < 10)
+ temp = temp + 48;
+ else
+ temp = temp + 55;
+ out[i++]=temp;
+ quot = quot/base;
+ }
+ out[i]='\0';
+ j=i-1;
+ i=0;
+ while(i<j)
+ {
+ tmp=out[i];
+ out[i]=out[j];
+ out[j]=tmp;
+ i++;
+ j--;
+ }
+
+
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2bin/ddec2bina.c b/src/c/elementaryFunctions/radix_conversions/dec2bin/ddec2bina.c
new file mode 100644
index 0000000..e064875
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2bin/ddec2bina.c
@@ -0,0 +1,10 @@
+#include "dec2bin.h"
+
+void ddec2bina(double* in,int size,int n,double* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ ddec2bins(in[i],n,&(out[i*15]));
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2bin/ddec2bins.c b/src/c/elementaryFunctions/radix_conversions/dec2bin/ddec2bins.c
new file mode 100644
index 0000000..c97fc42
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2bin/ddec2bins.c
@@ -0,0 +1,39 @@
+#include <string.h>
+#include "dec2bin.h"
+#include <stdio.h>
+void ddec2bins(double in,int n,double* out)
+{
+ int quotient,i=0,j=0,tmp=0;
+ quotient=(int)in;
+ for(i=0;i<n;i++)
+ {
+ out[i]=0.0;
+ }
+ i=0;
+ while(quotient!=0)
+ {
+ out[i++]= quotient%2;
+ quotient=quotient/2;
+ }
+ if(n>i-1)
+ {
+ for(j=i;j<=n;j++)
+ out[j]=0.0;
+ }
+ if(n==0)
+ j=i-1;
+ else
+ j=n-1;
+
+ i=0;
+
+ while(i<j)
+ {
+ tmp=out[i];
+ //printf("%f",tmp);
+ out[i]=out[j];
+ out[j]=tmp;
+ i++;
+ j--;
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2bin/i16dec2bina.c b/src/c/elementaryFunctions/radix_conversions/dec2bin/i16dec2bina.c
new file mode 100644
index 0000000..1fa251c
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2bin/i16dec2bina.c
@@ -0,0 +1,10 @@
+#include "dec2bin.h"
+
+void i16dec2bina(int16* in,int size,int n,int16* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ i16dec2bins(in[i],n,&(out[i*15]));
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2bin/i16dec2bins.c b/src/c/elementaryFunctions/radix_conversions/dec2bin/i16dec2bins.c
new file mode 100644
index 0000000..0b06aef
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2bin/i16dec2bins.c
@@ -0,0 +1,32 @@
+#include <string.h>
+#include "dec2bin.h"
+#include <stdio.h>
+void i16dec2bins(int16 in,int n,int16* out)
+{
+ int quotient,i=0,j=0,tmp=0;
+ quotient=(int)in;
+ while(quotient!=0)
+ {
+ out[i++]= quotient%2;
+ quotient=quotient/2;
+ }
+ if(n>i-1)
+ {
+ for(j=i;j<=n;j++)
+ out[j]=0.0;
+ }
+ if(n==0)
+ j=i-1;
+ else
+ j=n-1;
+ i=0;
+
+ while(i<j)
+ {
+ tmp=out[i];
+ out[i]=out[j];
+ out[j]=tmp;
+ i++;
+ j--;
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2bin/i8dec2bina.c b/src/c/elementaryFunctions/radix_conversions/dec2bin/i8dec2bina.c
new file mode 100644
index 0000000..2297ae9
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2bin/i8dec2bina.c
@@ -0,0 +1,10 @@
+#include "dec2bin.h"
+
+void i8dec2bina(int8* in,int size,int n,int8* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ i8dec2bins(in[i],n,&(out[i*15]));
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2bin/i8dec2bins.c b/src/c/elementaryFunctions/radix_conversions/dec2bin/i8dec2bins.c
new file mode 100644
index 0000000..4f4024c
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2bin/i8dec2bins.c
@@ -0,0 +1,32 @@
+#include <string.h>
+#include "dec2bin.h"
+#include <stdio.h>
+void i8dec2bins(int8 in,int n,int8* out)
+{
+ int quotient,i=0,j=0,tmp=0;
+ quotient=(int)in;
+ while(quotient!=0)
+ {
+ out[i++]= quotient%2;
+ quotient=quotient/2;
+ }
+ if(n>i-1)
+ {
+ for(j=i;j<=n;j++)
+ out[j]=0.0;
+ }
+ if(n==0)
+ j=i-1;
+ else
+ j=n-1;
+ i=0;
+
+ while(i<j)
+ {
+ tmp=out[i];
+ out[i]=out[j];
+ out[j]=tmp;
+ i++;
+ j--;
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2bin/u16dec2bina.c b/src/c/elementaryFunctions/radix_conversions/dec2bin/u16dec2bina.c
new file mode 100644
index 0000000..153ce86
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2bin/u16dec2bina.c
@@ -0,0 +1,10 @@
+#include "dec2bin.h"
+
+void u16dec2bina(uint16* in,int size,int n,uint16* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ u16dec2bins(in[i],n,&(out[i*15]));
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2bin/u16dec2bins.c b/src/c/elementaryFunctions/radix_conversions/dec2bin/u16dec2bins.c
new file mode 100644
index 0000000..1ade60f
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2bin/u16dec2bins.c
@@ -0,0 +1,32 @@
+#include <string.h>
+#include "dec2bin.h"
+#include <stdio.h>
+void u16dec2bins(uint16 in,int n,uint16* out)
+{
+ int quotient,i=0,j=0,tmp=0;
+ quotient=(int)in;
+ while(quotient!=0)
+ {
+ out[i++]= quotient%2;
+ quotient=quotient/2;
+ }
+ if(n>i-1)
+ {
+ for(j=i;j<=n;j++)
+ out[j]=0.0;
+ }
+ if(n==0)
+ j=i-1;
+ else
+ j=n-1;
+ i=0;
+
+ while(i<j)
+ {
+ tmp=out[i];
+ out[i]=out[j];
+ out[j]=tmp;
+ i++;
+ j--;
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2bin/u8dec2bina.c b/src/c/elementaryFunctions/radix_conversions/dec2bin/u8dec2bina.c
new file mode 100644
index 0000000..87fc918
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2bin/u8dec2bina.c
@@ -0,0 +1,10 @@
+#include "dec2bin.h"
+
+void u8dec2bina(uint8* in,int size,int n,uint8* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ u8dec2bins(in[i],n,&(out[i*15]));
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2bin/u8dec2bins.c b/src/c/elementaryFunctions/radix_conversions/dec2bin/u8dec2bins.c
new file mode 100644
index 0000000..971f6c2
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2bin/u8dec2bins.c
@@ -0,0 +1,32 @@
+#include <string.h>
+#include "dec2bin.h"
+#include <stdio.h>
+void u8dec2bins(uint8 in,int n,uint8* out)
+{
+ int quotient,i=0,j=0,tmp=0;
+ quotient=(int)in;
+ while(quotient!=0)
+ {
+ out[i++]= quotient%2;
+ quotient=quotient/2;
+ }
+ if(n>i-1)
+ {
+ for(j=i;j<=n;j++)
+ out[j]=0.0;
+ }
+ if(n==0)
+ j=i-1;
+ else
+ j=n-1;
+ i=0;
+
+ while(i<j)
+ {
+ tmp=out[i];
+ out[i]=out[j];
+ out[j]=tmp;
+ i++;
+ j--;
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2hex/ddec2hexa.c b/src/c/elementaryFunctions/radix_conversions/dec2hex/ddec2hexa.c
new file mode 100644
index 0000000..c3187d2
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2hex/ddec2hexa.c
@@ -0,0 +1,10 @@
+#include "dec2hex.h"
+
+void ddec2hexa(double* in,int size,char* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ ddec2hexs(in[i],&(out[i*3]));
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2hex/ddec2hexs.c b/src/c/elementaryFunctions/radix_conversions/dec2hex/ddec2hexs.c
new file mode 100644
index 0000000..0adafef
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2hex/ddec2hexs.c
@@ -0,0 +1,39 @@
+#include <string.h>
+#include <math.h>
+#include "dec2hex.h"
+#include <stdio.h>
+
+void ddec2hexs(double in,char* out)
+{
+ int quot;
+ int i=0,j=0,k=0,tmp,temp;
+ quot=(int)in;
+ while(quot!=0)
+ {
+ temp=quot%16;
+ //To convert integer into character
+ if(temp < 10)
+ temp = temp + 48;
+ else
+ temp = temp + 55;
+
+ out[i++]=temp;
+ quot = quot/16;
+ //printf("%c ",out[i-1]);
+ }
+ out[i]='\0';
+ j=i-1;
+ i=0;
+
+ while(i<j)
+ {
+ tmp=out[i];
+ out[i]=out[j];
+ out[j]=tmp;
+ i++;
+ j--;
+ }
+ //out[i+1]=' ';
+
+
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2hex/i16dec2hexa.c b/src/c/elementaryFunctions/radix_conversions/dec2hex/i16dec2hexa.c
new file mode 100644
index 0000000..f66df8b
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2hex/i16dec2hexa.c
@@ -0,0 +1,10 @@
+#include "dec2hex.h"
+
+void i16dec2hexa(int16* in,int size,char* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ i16dec2hexs(in[i],&(out[i*3]));
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2hex/i16dec2hexs.c b/src/c/elementaryFunctions/radix_conversions/dec2hex/i16dec2hexs.c
new file mode 100644
index 0000000..f556141
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2hex/i16dec2hexs.c
@@ -0,0 +1,38 @@
+#include <string.h>
+#include <math.h>
+#include "dec2hex.h"
+#include <stdio.h>
+
+void i16dec2hexs(int16 in,char* out)
+{
+ int quot;
+ int i=0,j=0,k=0,tmp,temp;
+ quot=(int)in;
+ while(quot!=0)
+ {
+ temp=quot%16;
+ //To convert integer into character
+ if(temp < 10)
+ temp = temp + 48;
+ else
+ temp = temp + 55;
+
+ out[i++]=temp;
+ quot = quot/16;
+ //printf("%c ",out[i-1]);
+ }
+ out[i]='\0';
+ j=i-1;
+ i=0;
+
+ while(i<j)
+ {
+ tmp=out[i];
+ out[i]=out[j];
+ out[j]=tmp;
+ i++;
+ j--;
+ }
+ out[i+1]=' ';
+
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2hex/i8dec2hexa.c b/src/c/elementaryFunctions/radix_conversions/dec2hex/i8dec2hexa.c
new file mode 100644
index 0000000..a6c9d94
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2hex/i8dec2hexa.c
@@ -0,0 +1,10 @@
+#include "dec2hex.h"
+
+void i8dec2hexa(int8* in,int size,char* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ i8dec2hexs(in[i],&(out[i*3]));
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2hex/i8dec2hexs.c b/src/c/elementaryFunctions/radix_conversions/dec2hex/i8dec2hexs.c
new file mode 100644
index 0000000..a5a6772
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2hex/i8dec2hexs.c
@@ -0,0 +1,39 @@
+#include <string.h>
+#include <math.h>
+#include "dec2hex.h"
+#include <stdio.h>
+
+void i8dec2hexs(int8 in,char* out)
+{
+ int quot;
+ int i=0,j=0,k=0,tmp,temp;
+ quot=(int)in;
+ while(quot!=0)
+ {
+ temp=quot%16;
+ //To convert integer into character
+ if(temp < 10)
+ temp = temp + 48;
+ else
+ temp = temp + 55;
+
+ out[i++]=temp;
+ quot = quot/16;
+ //printf("%c ",out[i-1]);
+ }
+ out[i]='\0';
+ j=i-1;
+ i=0;
+
+ while(i<j)
+ {
+ tmp=out[i];
+ out[i]=out[j];
+ out[j]=tmp;
+ i++;
+ j--;
+ }
+ out[i+1]=' ';
+
+
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2hex/u16dec2hexa.c b/src/c/elementaryFunctions/radix_conversions/dec2hex/u16dec2hexa.c
new file mode 100644
index 0000000..52e1ae8
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2hex/u16dec2hexa.c
@@ -0,0 +1,10 @@
+#include "dec2hex.h"
+
+void u16dec2hexa(uint16* in,int size,char* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ u16dec2hexs(in[i],&(out[i*3]));
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2hex/u16dec2hexs.c b/src/c/elementaryFunctions/radix_conversions/dec2hex/u16dec2hexs.c
new file mode 100644
index 0000000..1e942e6
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2hex/u16dec2hexs.c
@@ -0,0 +1,38 @@
+#include <string.h>
+#include <math.h>
+#include "dec2hex.h"
+#include <stdio.h>
+
+void u16dec2hexs(uint16 in,char* out)
+{
+ int quot;
+ int i=0,j=0,k=0,tmp,temp;
+ quot=(int)in;
+ while(quot!=0)
+ {
+ temp=quot%16;
+ //To convert integer into character
+ if(temp < 10)
+ temp = temp + 48;
+ else
+ temp = temp + 55;
+
+ out[i++]=temp;
+ quot = quot/16;
+ //printf("%c ",out[i-1]);
+ }
+ out[i]='\0';
+ j=i-1;
+ i=0;
+
+ while(i<j)
+ {
+ tmp=out[i];
+ out[i]=out[j];
+ out[j]=tmp;
+ i++;
+ j--;
+ }
+ out[i+1]=' ';
+
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2hex/u8dec2hexa.c b/src/c/elementaryFunctions/radix_conversions/dec2hex/u8dec2hexa.c
new file mode 100644
index 0000000..0ac48a0
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2hex/u8dec2hexa.c
@@ -0,0 +1,10 @@
+#include "dec2hex.h"
+
+void u8dec2hexa(uint8* in,int size,char* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ u8dec2hexs(in[i],&(out[i*3]));
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2hex/u8dec2hexs.c b/src/c/elementaryFunctions/radix_conversions/dec2hex/u8dec2hexs.c
new file mode 100644
index 0000000..154c23f
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2hex/u8dec2hexs.c
@@ -0,0 +1,38 @@
+#include <string.h>
+#include <math.h>
+#include "dec2hex.h"
+#include <stdio.h>
+
+void u8dec2hexs(uint8 in,char* out)
+{
+ int quot;
+ int i=0,j=0,k=0,tmp,temp;
+ quot=(int)in;
+ while(quot!=0)
+ {
+ temp=quot%16;
+ //To convert integer into character
+ if(temp < 10)
+ temp = temp + 48;
+ else
+ temp = temp + 55;
+
+ out[i++]=temp;
+ quot = quot/16;
+ //printf("%c ",out[i-1]);
+ }
+ out[i]='\0';
+ j=i-1;
+ i=0;
+
+ while(i<j)
+ {
+ tmp=out[i];
+ out[i]=out[j];
+ out[j]=tmp;
+ i++;
+ j--;
+ }
+ out[i+1]=' ';
+
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2oct/ddec2octa.c b/src/c/elementaryFunctions/radix_conversions/dec2oct/ddec2octa.c
new file mode 100644
index 0000000..03fc2dc
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2oct/ddec2octa.c
@@ -0,0 +1,9 @@
+#include "dec2oct.h"
+
+void ddec2octa(double* in,int size,double* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ { ddec2octs(in[i],&(out[i*15]));
+}
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2oct/ddec2octs.c b/src/c/elementaryFunctions/radix_conversions/dec2oct/ddec2octs.c
new file mode 100644
index 0000000..d06da30
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2oct/ddec2octs.c
@@ -0,0 +1,27 @@
+#include <string.h>
+#include <math.h>
+#include "dec2oct.h"
+#include <stdio.h>
+
+void ddec2octs(double in,double* out)
+{
+ int i=0,j=0,tmp=0;
+ int quotient;
+ quotient=(int)in;
+ while(quotient!=0)
+ {
+ out[i++]= quotient%8;
+ quotient=quotient/8;
+ }
+ j=i-1;
+ i=0;
+
+ while(i<j)
+ {
+ tmp=out[i];
+ out[i]=out[j];
+ out[j]=tmp;
+ i++;
+ j--;
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2oct/i16dec2octa.c b/src/c/elementaryFunctions/radix_conversions/dec2oct/i16dec2octa.c
new file mode 100644
index 0000000..882b00b
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2oct/i16dec2octa.c
@@ -0,0 +1,10 @@
+#include "dec2oct.h"
+
+void i16dec2octa(int16* in,int size,int16* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+i16dec2octs(in[i],&(out[i*15]));
+}
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2oct/i16dec2octs.c b/src/c/elementaryFunctions/radix_conversions/dec2oct/i16dec2octs.c
new file mode 100644
index 0000000..cb08845
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2oct/i16dec2octs.c
@@ -0,0 +1,27 @@
+#include <string.h>
+#include <math.h>
+#include "dec2oct.h"
+#include <stdio.h>
+
+void i16dec2octs(int16 in,int16* out)
+{
+ int i=0,j=0,tmp=0;
+ int quotient;
+ quotient=(int)in;
+ while(quotient!=0)
+ {
+ out[i++]= quotient%8;
+ quotient=quotient/8;
+ }
+ j=i-1;
+ i=0;
+
+ while(i<j)
+ {
+ tmp=out[i];
+ out[i]=out[j];
+ out[j]=tmp;
+ i++;
+ j--;
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2oct/i8dec2octa.c b/src/c/elementaryFunctions/radix_conversions/dec2oct/i8dec2octa.c
new file mode 100644
index 0000000..221f486
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2oct/i8dec2octa.c
@@ -0,0 +1,9 @@
+#include "dec2oct.h"
+
+void i8dec2octa(int8* in,int size,int8* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ { i8dec2octs(in[i],&(out[i*15]));
+}
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2oct/i8dec2octs.c b/src/c/elementaryFunctions/radix_conversions/dec2oct/i8dec2octs.c
new file mode 100644
index 0000000..30ae5b0
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2oct/i8dec2octs.c
@@ -0,0 +1,27 @@
+#include <string.h>
+#include <math.h>
+#include "dec2oct.h"
+#include <stdio.h>
+
+void i8dec2octs(int8 in,int8* out)
+{
+ int i=0,j=0,tmp=0;
+ int quotient;
+ quotient=(int)in;
+ while(quotient!=0)
+ {
+ out[i++]= quotient%8;
+ quotient=quotient/8;
+ }
+ j=i-1;
+ i=0;
+
+ while(i<j)
+ {
+ tmp=out[i];
+ out[i]=out[j];
+ out[j]=tmp;
+ i++;
+ j--;
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2oct/u16dec2octa.c b/src/c/elementaryFunctions/radix_conversions/dec2oct/u16dec2octa.c
new file mode 100644
index 0000000..cc0d543
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2oct/u16dec2octa.c
@@ -0,0 +1,9 @@
+#include "dec2oct.h"
+
+void u16dec2octa(uint16* in,int size,uint16* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ { u16dec2octs(in[i],&(out[i*15]));
+}
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2oct/u16dec2octs.c b/src/c/elementaryFunctions/radix_conversions/dec2oct/u16dec2octs.c
new file mode 100644
index 0000000..4b0bd59
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2oct/u16dec2octs.c
@@ -0,0 +1,27 @@
+#include <string.h>
+#include <math.h>
+#include "dec2oct.h"
+#include <stdio.h>
+
+void u16dec2octs(uint16 in,uint16* out)
+{
+ int i=0,j=0,tmp=0;
+ int quotient;
+ quotient=(int)in;
+ while(quotient!=0)
+ {
+ out[i++]= quotient%8;
+ quotient=quotient/8;
+ }
+ j=i-1;
+ i=0;
+
+ while(i<j)
+ {
+ tmp=out[i];
+ out[i]=out[j];
+ out[j]=tmp;
+ i++;
+ j--;
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2oct/u8dec2octa.c b/src/c/elementaryFunctions/radix_conversions/dec2oct/u8dec2octa.c
new file mode 100644
index 0000000..c187077
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2oct/u8dec2octa.c
@@ -0,0 +1,9 @@
+#include "dec2oct.h"
+
+void u8dec2octa(uint8* in,int size,uint8* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ { u8dec2octs(in[i],&(out[i*15]));
+}
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/dec2oct/u8dec2octs.c b/src/c/elementaryFunctions/radix_conversions/dec2oct/u8dec2octs.c
new file mode 100644
index 0000000..9348630
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/dec2oct/u8dec2octs.c
@@ -0,0 +1,27 @@
+#include <string.h>
+#include <math.h>
+#include "dec2oct.h"
+#include <stdio.h>
+
+void u8dec2octs(uint8 in,uint8* out)
+{
+ int i=0,j=0,tmp=0;
+ int quotient;
+ quotient=(int)in;
+ while(quotient!=0)
+ {
+ out[i++]= quotient%8;
+ quotient=quotient/8;
+ }
+ j=i-1;
+ i=0;
+
+ while(i<j)
+ {
+ tmp=out[i];
+ out[i]=out[j];
+ out[j]=tmp;
+ i++;
+ j--;
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/hex2dec/dhex2decs.c b/src/c/elementaryFunctions/radix_conversions/hex2dec/dhex2decs.c
new file mode 100644
index 0000000..cfe0594
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/hex2dec/dhex2decs.c
@@ -0,0 +1,21 @@
+#include <string.h>
+#include "hex2dec.h"
+#include <stdio.h>
+#include <math.h>
+
+double dhex2decs(double in)
+{
+ int n=0,rem=0, base=1;
+ double out=0.0;
+ n=(int)in;
+ while (n!=0)
+ {
+ rem = n%10;
+ out = out + (rem * base);
+ n = n / 10 ;
+ base = base * 16;
+ }
+ return out;
+}
+
+
diff --git a/src/c/elementaryFunctions/radix_conversions/hex2dec/ghex2decs.c b/src/c/elementaryFunctions/radix_conversions/hex2dec/ghex2decs.c
new file mode 100644
index 0000000..c5b68db
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/hex2dec/ghex2decs.c
@@ -0,0 +1,81 @@
+#include <string.h>
+#include "hex2dec.h"
+#include <stdio.h>
+#include <math.h>
+
+double ghex2decs(char* in,int size)
+{
+ size-=2;
+ int i=0,val=0,j=0;
+ double o=0.0;
+ for(i=0; in[i]!='\0'; i++)
+ {
+/* Finds the decimal equivalent of each hexadecimal digit
+*/
+ switch(in[i])
+ {
+ case '0':
+ val = 0;
+ break;
+ case '1':
+ val = 1;
+ break;
+ case '2':
+ val = 2;
+ break;
+ case '3':
+ val = 3;
+ break;
+ case '4':
+ val = 4;
+ break;
+ case '5':
+ val = 5;
+ break;
+ case '6':
+ val = 6;
+ break;
+ case '7':
+ val = 7;
+ break;
+ case '8':
+ val = 8;
+ break;
+ case '9':
+ val = 9;
+ break;
+ case 'a':
+ case 'A':
+ val = 10;
+ break;
+ case 'b':
+ case 'B':
+ val = 11;
+ break;
+ case 'c':
+ case 'C':
+ val = 12;
+ break;
+ case 'd':
+ case 'D':
+ val = 13;
+ break;
+ case 'e':
+ case 'E':
+ val = 14;
+ break;
+ case 'f':
+ case 'F':
+ val = 15;
+ break;
+ }
+ o = o + (val * pow(16, size));
+ //printf("%f\n",out[0]);
+ //o=(int)out[0];
+ //o=o/16;
+ //printf("%d %d %d\n",o,val,(val * pow(16, size)));
+ //j++;
+ size--;
+ }
+ return o;
+ }
diff --git a/src/c/elementaryFunctions/radix_conversions/oct2dec/doct2deca.c b/src/c/elementaryFunctions/radix_conversions/oct2dec/doct2deca.c
new file mode 100644
index 0000000..6bb5d00
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/oct2dec/doct2deca.c
@@ -0,0 +1,10 @@
+#include "oct2dec.h"
+
+void doct2deca(double* in,int size,double* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ out[i]=doct2decs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/oct2dec/doct2decs.c b/src/c/elementaryFunctions/radix_conversions/oct2dec/doct2decs.c
new file mode 100644
index 0000000..8f9f0b6
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/oct2dec/doct2decs.c
@@ -0,0 +1,21 @@
+#include <string.h>
+#include "oct2dec.h"
+#include <stdio.h>
+#include <math.h>
+
+double doct2decs(double in)
+{
+ int n=0,rem=0, base=1;
+ double out=0.0;
+ n=(int)in;
+ while (n!=0)
+ {
+ rem = n%10;
+ out = out + (rem * base);
+ n = n / 10 ;
+ base = base * 8;
+ }
+ return out;
+}
+
+
diff --git a/src/c/elementaryFunctions/radix_conversions/oct2dec/i16oct2deca.c b/src/c/elementaryFunctions/radix_conversions/oct2dec/i16oct2deca.c
new file mode 100644
index 0000000..1ab843f
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/oct2dec/i16oct2deca.c
@@ -0,0 +1,10 @@
+#include "oct2dec.h"
+
+void i16oct2deca(int16* in,int size,int16* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ out[i]=i16oct2decs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/oct2dec/i16oct2decs.c b/src/c/elementaryFunctions/radix_conversions/oct2dec/i16oct2decs.c
new file mode 100644
index 0000000..ea09285
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/oct2dec/i16oct2decs.c
@@ -0,0 +1,21 @@
+#include <string.h>
+#include "oct2dec.h"
+#include <stdio.h>
+#include <math.h>
+
+int16 i16oct2decs(int16 in) /* Function to convert octal to decimal */
+{
+ int n=0,rem=0, base=1;
+ int16 out=0;
+ n=(int)in;
+ while (n!=0)
+ {
+ rem = n%10;
+ out = out + (rem * base);
+ n = n / 10 ;
+ base = base * 8;
+ }
+ return out;
+}
+
+
diff --git a/src/c/elementaryFunctions/radix_conversions/oct2dec/i8oct2deca.c b/src/c/elementaryFunctions/radix_conversions/oct2dec/i8oct2deca.c
new file mode 100644
index 0000000..133806c
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/oct2dec/i8oct2deca.c
@@ -0,0 +1,10 @@
+#include "oct2dec.h"
+
+void i8oct2deca(int8* in,int size,int8* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ out[i]=i8oct2decs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/oct2dec/i8oct2decs.c b/src/c/elementaryFunctions/radix_conversions/oct2dec/i8oct2decs.c
new file mode 100644
index 0000000..1886739
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/oct2dec/i8oct2decs.c
@@ -0,0 +1,21 @@
+#include <string.h>
+#include "oct2dec.h"
+#include <stdio.h>
+#include <math.h>
+
+int8 i8oct2decs(int8 in) /* Function to convert octal to decimal */
+{
+ int n=0,rem=0, base=1;
+ int8 out=0;
+ n=(int)in;
+ while (n!=0)
+ {
+ rem = n%10;
+ out = out + (rem * base);
+ n = n / 10 ;
+ base = base * 8;
+ }
+ return out;
+}
+
+
diff --git a/src/c/elementaryFunctions/radix_conversions/oct2dec/u16oct2deca.c b/src/c/elementaryFunctions/radix_conversions/oct2dec/u16oct2deca.c
new file mode 100644
index 0000000..cec3a21
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/oct2dec/u16oct2deca.c
@@ -0,0 +1,10 @@
+#include "oct2dec.h"
+
+void u16oct2deca(uint16* in,int size,uint16* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ out[i]=u16oct2decs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/oct2dec/u16oct2decs.c b/src/c/elementaryFunctions/radix_conversions/oct2dec/u16oct2decs.c
new file mode 100644
index 0000000..43dd0ac
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/oct2dec/u16oct2decs.c
@@ -0,0 +1,21 @@
+#include <string.h>
+#include "oct2dec.h"
+#include <stdio.h>
+#include <math.h>
+
+uint16 u16oct2decs(uint16 in) /* Function to convert octal to decimal */
+{
+ int n=0,rem=0, base=1;
+ uint16 out=0;
+ n=(int)in;
+ while (n!=0)
+ {
+ rem = n%10;
+ out = out + (rem * base);
+ n = n / 10 ;
+ base = base * 8;
+ }
+ return out;
+}
+
+
diff --git a/src/c/elementaryFunctions/radix_conversions/oct2dec/u8oct2deca.c b/src/c/elementaryFunctions/radix_conversions/oct2dec/u8oct2deca.c
new file mode 100644
index 0000000..3b35658
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/oct2dec/u8oct2deca.c
@@ -0,0 +1,10 @@
+#include "oct2dec.h"
+
+void u8oct2deca(uint8* in,int size,uint8* out)
+{
+ int i=0;
+ for(i=0;i<size;i++)
+ {
+ out[i]=u8oct2decs(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/radix_conversions/oct2dec/u8oct2decs.c b/src/c/elementaryFunctions/radix_conversions/oct2dec/u8oct2decs.c
new file mode 100644
index 0000000..c854bc2
--- /dev/null
+++ b/src/c/elementaryFunctions/radix_conversions/oct2dec/u8oct2decs.c
@@ -0,0 +1,21 @@
+#include <string.h>
+#include "oct2dec.h"
+#include <stdio.h>
+#include <math.h>
+
+uint8 u8oct2decs(uint8 in) /* Function to convert octal to decimal */
+{
+ int n=0,rem=0, base=1;
+ uint8 out=0;
+ n=(int)in;
+ while (n!=0)
+ {
+ rem = n%10;
+ out = out + (rem * base);
+ n = n / 10 ;
+ base = base * 8;
+ }
+ return out;
+}
+
+
diff --git a/src/c/elementaryFunctions/special_functions/gamma/dgammas.c b/src/c/elementaryFunctions/special_functions/gamma/dgammas.c
new file mode 100644
index 0000000..c466f43
--- /dev/null
+++ b/src/c/elementaryFunctions/special_functions/gamma/dgammas.c
@@ -0,0 +1,52 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include <gsl/gsl_sf_gamma.h>
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
+/* very simple approximation */
+double st_gamma(double x)
+{
+ return sqrt(2.0*M_PI/x)*pow(x/M_E, x);
+}
+
+#define A 12
+double sp_gamma(double z)
+{
+ const int a = A;
+ static double c_space[A];
+ static double *c = NULL;
+ int k;
+ double accm;
+
+ if ( c == NULL ) {
+ double k1_factrl = 1.0; /* (k - 1)!*(-1)^k with 0!==1*/
+ c = c_space;
+ c[0] = sqrt(2.0*M_PI);
+ for(k=1; k < a; k++) {
+ c[k] = exp(a-k) * pow(a-k, k-0.5) / k1_factrl;
+ k1_factrl *= -k;
+ }
+ }
+ accm = c[0];
+ for(k=1; k < a; k++) {
+ accm += c[k] / ( z + k );
+ }
+ accm *= exp(-(z+a)) * pow(z+a, z+0.5); /* Gamma(z+1) */
+ return accm/z;
+}
+
+int main()
+{
+ double x;
+
+
+ printf("%15s%15s%15s%15s\n", "Stirling", "Spouge", "GSL", "libm");
+ for(x=1.0; x <= 10.0; x+=1.0) {
+ printf("%15.8lf%15.8lf%15.8lf%15.8lf\n", st_gamma(x/3.0), sp_gamma(x/3.0),
+ gsl_sf_gamma(x/3.0), tgamma(x/3.0));
+ }
+ return 0;
+}
diff --git a/src/c/elementaryFunctions/tanh/ctanhs.c b/src/c/elementaryFunctions/tanh/ctanhs.c
index 5111dbd..24c1fa6 100644
--- a/src/c/elementaryFunctions/tanh/ctanhs.c
+++ b/src/c/elementaryFunctions/tanh/ctanhs.c
@@ -13,7 +13,7 @@
#include "tanh.h"
#include "tan.h"
-floatComplex ctanhs(floatComplex z) {
+floatComplex ctanhs(floatComplex z) {
float real = creals(z);
float imag = cimags(z);
diff --git a/src/c/string/convstr/gconvstrs.c b/src/c/string/convstr/gconvstrs.c
index d417496..3db7663 100644
--- a/src/c/string/convstr/gconvstrs.c
+++ b/src/c/string/convstr/gconvstrs.c
@@ -1,7 +1,20 @@
#include <string.h>
#include "convstr.h"
-int gconvstrs(int* in)
+void gconvstrs(char* in, int size,char* flag,int size2,char* out)
{
- return (toupper(in));
-} \ No newline at end of file
+ int i=0;//temp=0;
+ for(i=0;i<size;i++)
+ {
+ //temp= in[i];
+ if(flag[0]=='l' || flag[0]=='L')
+ { //temp=temp + 32;
+ out[i]=tolower(in[i]);
+ }
+ else if(flag[0]=='u' || flag[0]=='U')
+ {
+ //temp=temp - 32;
+ out[i]=toupper(in[i]);
+ }
+ }
+}
diff --git a/src/c/string/includes/convstr.h b/src/c/string/includes/convstr.h
index 3a8e6e7..0737c54 100644
--- a/src/c/string/includes/convstr.h
+++ b/src/c/string/includes/convstr.h
@@ -5,7 +5,7 @@
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: Siddhesh Wani
+ Author: Shamik Guha
Organization: FOSSEE, IIT Bombay
Email: toolbox@scilab.in
*/
@@ -17,7 +17,7 @@
extern "C" {
#endif
-int gconvstrs(int* in);
+void gconvstrs(char* in, int size,char* flag,int size2,char* out);
#ifdef __cplusplus
} /* extern "C" */
diff --git a/src/c/string/includes/strrchr.h b/src/c/string/includes/strrchr.h
new file mode 100644
index 0000000..d06460b
--- /dev/null
+++ b/src/c/string/includes/strrchr.h
@@ -0,0 +1,26 @@
+ /* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __STRRCHR_H__
+#define __STRRCHR_H__
+
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+void gstrrchr(char* str,int size,char* key,int size2,char* out);
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__STRRCHR_H__*/
diff --git a/src/c/string/includes/strrev.h b/src/c/string/includes/strrev.h
new file mode 100644
index 0000000..c7e7957
--- /dev/null
+++ b/src/c/string/includes/strrev.h
@@ -0,0 +1,27 @@
+ /* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __STRREV_H__
+#define __STRREV_H__
+
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+void gstrreva(char* str,int size,char* out);
+//void gstrrevs(char* in, int size,char* search, int size2, char* rep, int size3, ,char* out);
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__STRREV_H__*/
diff --git a/src/c/string/includes/strsubst.h b/src/c/string/includes/strsubst.h
new file mode 100644
index 0000000..e9eba42
--- /dev/null
+++ b/src/c/string/includes/strsubst.h
@@ -0,0 +1,27 @@
+ /* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __STRSUBST_H__
+#define __STRSUBST_H__
+
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+void gstrsubsta(char* str, int size, char* search, int size2, char* rep, int size3, char* flagmain,int size4, char* out);
+//void gstrsubsta(char* str, int size, char* search, int size2, char* rep, int size3, char* out,int size5);
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__STRSUBST_H__*/
diff --git a/src/c/string/interfaces/int_convstr.h b/src/c/string/interfaces/int_convstr.h
index f565b85..fee3d37 100644
--- a/src/c/string/interfaces/int_convstr.h
+++ b/src/c/string/interfaces/int_convstr.h
@@ -5,7 +5,7 @@
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: Siddhesh Wani
+ Author: Shamik Guha
Organization: FOSSEE, IIT Bombay
Email: toolbox@scilab.in
*/
@@ -16,7 +16,9 @@
extern "C" {
#endif
-#define g0constrg0(in, size) gconstrs(in)
+#define g2g2convstrg2(in,size,flag,size2,out) gconvstrs(in,size[0]*size[1],flag,size2[1],out)
+//#define g2g2convstrg0(in,size,type,typesize,out) (type=='u': \
+ gconvstrs(in,size[0]*size[1],0,out)?gconvstrs(in,size[0]*size[1],1,out))
#ifdef __cplusplus
} /* extern "C" */
diff --git a/src/c/string/interfaces/int_strrchr.h b/src/c/string/interfaces/int_strrchr.h
new file mode 100644
index 0000000..7ec94eb
--- /dev/null
+++ b/src/c/string/interfaces/int_strrchr.h
@@ -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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_STRRCHR_H__
+#define __INT_STRRCHR_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define g2g2strrchrg2(str,size,key,size2,out) gstrrchra(str,size[1],key,size2[1],out)
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_STRRCHR_H__*/
diff --git a/src/c/string/interfaces/int_strrev.h b/src/c/string/interfaces/int_strrev.h
new file mode 100644
index 0000000..8429f6a
--- /dev/null
+++ b/src/c/string/interfaces/int_strrev.h
@@ -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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_STRREV_H__
+#define __INT_STRREV_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define g2strrevg2(str,size,out) gstrreva(str,size[1],out)
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_STRREV_H__*/
diff --git a/src/c/string/interfaces/int_strsubst.h b/src/c/string/interfaces/int_strsubst.h
new file mode 100644
index 0000000..c8dd67a
--- /dev/null
+++ b/src/c/string/interfaces/int_strsubst.h
@@ -0,0 +1,28 @@
+ /* 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: Shamik Guha
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_STRSUBST_H__
+#define __INT_STRSUBST_H__
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#define g2g2g2g2strsubstg2(str,size,search,size2,rep,size3,flagmain,size4,out) gstrsubsta(str,size[1],search,size2[1],rep,size3[1],flagmain,size4[1],out)
+#define g2g2g2strsubstg2(in,size,search,size2,rep,size3,out) gstrsubsta(in,size[1],search,size2[1],rep,size3[1],'s',size3[1],out)
+
+
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+#endif /*__INT_STRSUBST_H__*/
diff --git a/src/c/string/strrchr/gstrrchra.c b/src/c/string/strrchr/gstrrchra.c
new file mode 100644
index 0000000..460c1f2
--- /dev/null
+++ b/src/c/string/strrchr/gstrrchra.c
@@ -0,0 +1,21 @@
+#include <stdio.h>
+#include <string.h>
+#include "strrchr.h"
+
+void gstrrchra(char* str,int size,char* key,int size2,char* out)
+{
+ int i,j, k=0, pos2;
+
+ for (i = 0;i<size;i++)
+ {
+ if (key[0] == str[i])
+ {
+ pos2 = i;
+ }
+ }
+ for(j=pos2;j<i;j++)
+ {
+ out[k]=str[j];
+ k++;
+ }
+}
diff --git a/src/c/string/strrev/gstrreva.c b/src/c/string/strrev/gstrreva.c
new file mode 100644
index 0000000..8ceb16a
--- /dev/null
+++ b/src/c/string/strrev/gstrreva.c
@@ -0,0 +1,15 @@
+#include<stdio.h>
+#include "strrev.h"
+
+void gstrreva(char* str,int size,char* out)
+{
+ int i=-1,j=0;
+
+ while(str[++i]!='\0');
+
+ while(i>=0)
+ out[j++] = str[--i];
+
+ out[j]='\0';
+
+}
diff --git a/src/c/string/strsubst/gstrsubsta.c b/src/c/string/strsubst/gstrsubsta.c
new file mode 100644
index 0000000..69ebf3c
--- /dev/null
+++ b/src/c/string/strsubst/gstrsubsta.c
@@ -0,0 +1,57 @@
+#include <stdio.h>
+#include <string.h>
+#include "strsubst.h"
+
+void gstrsubsta(char* str,int size, char* search, int size2, char* rep, int size3, char* flagmain, int size4, char* out)
+{
+ int i = 0, j = 0, flag = 0, start = 0;
+
+ //if(flagmain[0]!='r')
+ //{
+ while (str[i] != '\0')
+ {
+ if (str[i] == search[j])
+ {
+ if (!flag)
+ start = i;
+ j++;
+ if (search[j] == '\0')
+ break;
+ flag = 1;
+ }
+ else
+ {
+ flag = start = j = 0;
+ }
+ i++;
+ }
+
+ if (search[j] == '\0' && flag)
+ {
+ for (i = 0; i < start; i++)
+ out[i] = str[i];
+ /* rep string with another string */
+ for (j = 0; j < strlen(rep); j++)
+ {
+ out[i] = rep[j];
+ i++;
+ }
+
+ /* copy remaining portion of the input string "str" */
+ for (j = start + strlen(search); j < strlen(str); j++)
+ {
+ out[i] = str[j];
+ i++;
+ }
+
+ /* print the out string */
+ out[i] = '\0';
+ //printf("Output: %s\n", out);
+ }
+ else
+ {
+ printf("%s is not a searching of %s\n", search, str);
+ }
+ // }
+
+}