summaryrefslogtreecommitdiff
path: root/src/c/elementaryFunctions/includes
diff options
context:
space:
mode:
authorSiddhesh Wani2015-05-25 14:46:31 +0530
committerSiddhesh Wani2015-05-25 14:46:31 +0530
commitdb464f35f5a10b58d9ed1085e0b462689adee583 (patch)
treede5cdbc71a54765d9fec33414630ae2c8904c9b8 /src/c/elementaryFunctions/includes
downloadScilab2C_fossee_old-db464f35f5a10b58d9ed1085e0b462689adee583.tar.gz
Scilab2C_fossee_old-db464f35f5a10b58d9ed1085e0b462689adee583.tar.bz2
Scilab2C_fossee_old-db464f35f5a10b58d9ed1085e0b462689adee583.zip
Original Version
Diffstat (limited to 'src/c/elementaryFunctions/includes')
-rw-r--r--src/c/elementaryFunctions/includes/acos.h89
-rw-r--r--src/c/elementaryFunctions/includes/acosh.h91
-rw-r--r--src/c/elementaryFunctions/includes/asin.h90
-rw-r--r--src/c/elementaryFunctions/includes/asinh.h90
-rw-r--r--src/c/elementaryFunctions/includes/atan.h90
-rw-r--r--src/c/elementaryFunctions/includes/atan2.h57
-rw-r--r--src/c/elementaryFunctions/includes/atanh.h91
-rw-r--r--src/c/elementaryFunctions/includes/ceil.h50
-rw-r--r--src/c/elementaryFunctions/includes/cos.h88
-rw-r--r--src/c/elementaryFunctions/includes/cosh.h90
-rw-r--r--src/c/elementaryFunctions/includes/dynlib_elementaryfunctions.h26
-rw-r--r--src/c/elementaryFunctions/includes/exp.h90
-rw-r--r--src/c/elementaryFunctions/includes/exp10.h90
-rw-r--r--src/c/elementaryFunctions/includes/fix.h52
-rw-r--r--src/c/elementaryFunctions/includes/floor.h49
-rw-r--r--src/c/elementaryFunctions/includes/int.h49
-rw-r--r--src/c/elementaryFunctions/includes/lnp1m1.h46
-rw-r--r--src/c/elementaryFunctions/includes/log.h89
-rw-r--r--src/c/elementaryFunctions/includes/log10.h89
-rw-r--r--src/c/elementaryFunctions/includes/log1p.h88
-rw-r--r--src/c/elementaryFunctions/includes/pow.h43
-rw-r--r--src/c/elementaryFunctions/includes/round.h48
-rw-r--r--src/c/elementaryFunctions/includes/sin.h89
-rw-r--r--src/c/elementaryFunctions/includes/sinh.h88
-rw-r--r--src/c/elementaryFunctions/includes/sqrt.h88
-rw-r--r--src/c/elementaryFunctions/includes/tan.h89
-rw-r--r--src/c/elementaryFunctions/includes/tanh.h88
27 files changed, 2027 insertions, 0 deletions
diff --git a/src/c/elementaryFunctions/includes/acos.h b/src/c/elementaryFunctions/includes/acos.h
new file mode 100644
index 0000000..6b68c02
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/acos.h
@@ -0,0 +1,89 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __ACOS_H__
+#define __ACOS_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/*
+** Compute ArcCosine for different types .
+*/
+
+/*
+** \brief Float ArcCosine function
+** \param in : input array value.
+*/
+EXTERN_ELEMFUNCT float sacoss(float in);
+
+/*
+** \brief Double ArcCosine function
+** \param in : input array value.
+*/
+EXTERN_ELEMFUNCT double dacoss(double in);
+
+/*
+** \brief Float Complex ArcCosine function
+** \param in : input array value.
+*/
+EXTERN_ELEMFUNCT floatComplex cacoss(floatComplex in);
+
+/*
+** \brief Double Complex ArcCosine function
+** \param in : input array value.
+*/
+EXTERN_ELEMFUNCT doubleComplex zacoss(doubleComplex in);
+
+/*
+** \brief Float Matrix ArcCosine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void sacosa(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix ArcCosine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void dacosa(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix ArcCosine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void cacosa(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix ArcCosine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void zacosa(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* !__ACOS_H__ */
diff --git a/src/c/elementaryFunctions/includes/acosh.h b/src/c/elementaryFunctions/includes/acosh.h
new file mode 100644
index 0000000..ed7aa6a
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/acosh.h
@@ -0,0 +1,91 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __ACOSH_H__
+#define __ACOSH_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/*
+** Compute Hyperbolic Hyperbolic ArcCosine for different types .
+*/
+
+/*
+** \brief Float Hyperbolic ArcCosine function
+** \param in : input array value.
+*/
+EXTERN_ELEMFUNCT float sacoshs(float in);
+
+/*
+** \brief Double Hyperbolic ArcCosine function
+** \param in : input array value.
+*/
+EXTERN_ELEMFUNCT double dacoshs(double in);
+
+/*
+** \brief Float Complex Hyperbolic ArcCosine function
+** \param in : input array value.
+*/
+EXTERN_ELEMFUNCT floatComplex cacoshs(floatComplex in);
+
+/*
+** \brief Double Complex Hyperbolic ArcCosine function
+** \param in : input array value.
+*/
+EXTERN_ELEMFUNCT doubleComplex zacoshs(doubleComplex in);
+
+/*
+** \brief Float Matrix Hyperbolic ArcCosine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void sacosha(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix Hyperbolic ArcCosine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void dacosha(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix Hyperbolic ArcCosine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void cacosha(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix Hyperbolic ArcCosine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void zacosha(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__ACOSH_H__ */
diff --git a/src/c/elementaryFunctions/includes/asin.h b/src/c/elementaryFunctions/includes/asin.h
new file mode 100644
index 0000000..3a28df1
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/asin.h
@@ -0,0 +1,90 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __ASIN_H__
+#define __ASIN_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+** Compute ArcSine for different types .
+*/
+
+/*
+** \brief Float ArcSine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT float sasins(float in);
+
+/*
+** \brief Double ArcSine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT double dasins(double in);
+
+/*
+** \brief Float Complex ArcSine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT floatComplex casins(floatComplex in);
+
+/*
+** \brief Double Complex ArcSine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT doubleComplex zasins(doubleComplex in);
+
+/*
+** \brief Float Matrix ArcSine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void sasina(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix ArcSine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void dasina(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix ArcSine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void casina(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix ArcSine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void zasina(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__ASIN_H__ */
diff --git a/src/c/elementaryFunctions/includes/asinh.h b/src/c/elementaryFunctions/includes/asinh.h
new file mode 100644
index 0000000..9df597a
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/asinh.h
@@ -0,0 +1,90 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __ASINH_H__
+#define __ASINH_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+** Compute Hyperbolic ArcSine for different types .
+*/
+
+/*
+** \brief Float Hyperbolic ArcSine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT float sasinhs(float in);
+
+/*
+** \brief Double Hyperbolic ArcSine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT double dasinhs(double in);
+
+/*
+** \brief Float Complex Hyperbolic ArcSine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT floatComplex casinhs(floatComplex in);
+
+/*
+** \brief Double Complex Hyperbolic ArcSine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT doubleComplex zasinhs(doubleComplex in);
+
+/*
+** \brief Float Matrix Hyperbolic ArcSine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void sasinha(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix Hyperbolic ArcSine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void dasinha(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix Hyperbolic ArcSine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void casinha(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix Hyperbolic ArcSine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void zasinha(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__ASINH_H__ */
diff --git a/src/c/elementaryFunctions/includes/atan.h b/src/c/elementaryFunctions/includes/atan.h
new file mode 100644
index 0000000..b6a4cf0
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/atan.h
@@ -0,0 +1,90 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __ATAN_H__
+#define __ATAN_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+** Compute ArcTangeant for different types .
+*/
+
+/*
+** \brief Float ArcTangeant function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT float satans(float in);
+
+/*
+** \brief Double ArcTangeant function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT double datans(double in);
+
+/*
+** \brief Float Complex ArcTangeant function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT floatComplex catans(floatComplex in);
+
+/*
+** \brief Double Complex ArcTangeant function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT doubleComplex zatans(doubleComplex in);
+
+/*
+** \brief Float Matrix ArcTangeant function
+** \param in : input array value.
+** \param out : input array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void satana(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix ArcTangeant function
+** \param in : input array value.
+** \param out : input array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void datana(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix ArcTangeant function
+** \param in : input array value.
+** \param out : input array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void catana(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix ArcTangeant function
+** \param in : input array value.
+** \param out : input array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void zatana(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__ATAN_H__ */
diff --git a/src/c/elementaryFunctions/includes/atan2.h b/src/c/elementaryFunctions/includes/atan2.h
new file mode 100644
index 0000000..83aeebe
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/atan2.h
@@ -0,0 +1,57 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Allan SIMON
+ *
+ * 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 __ATAN2_H__
+#define __ATAN2_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include <math.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+** Compute arctan with two parameters .
+*/
+
+
+/*
+** \brief Float arc tangent function
+*/
+EXTERN_ELEMFUNCT float satan2s ( float x , float y );
+
+/*
+** \brief Double arc tangent function
+*/
+EXTERN_ELEMFUNCT double datan2s ( double x , double y);
+
+
+/*
+** \brief array's Float arc tangent function
+*/
+EXTERN_ELEMFUNCT void satan2a (float* in1, int size1, float* in2, int size2, float* out) ;
+
+/*
+** \brief array's Double arc tangent function
+*/
+EXTERN_ELEMFUNCT void datan2a (double* in1, int size1, double* in2, int size2, double* out) ;
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+
+#endif /* !__EXP10_H__ */
diff --git a/src/c/elementaryFunctions/includes/atanh.h b/src/c/elementaryFunctions/includes/atanh.h
new file mode 100644
index 0000000..32fe178
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/atanh.h
@@ -0,0 +1,91 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __ATANH_H__
+#define __ATANH_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+** Compute Hyperbolic ArcTangeant for different types .
+*/
+
+/*
+** \brief Float Hyperbolic ArcTangeant function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT float satanhs(float in);
+
+/*
+** \brief Double Hyperbolic ArcTangeant function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT double datanhs(double in);
+
+/*
+** \brief Float Complex Hyperbolic ArcTangeant function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT floatComplex catanhs(floatComplex in);
+
+/*
+** \brief Double Complex Hyperbolic ArcTangeant function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT doubleComplex zatanhs(doubleComplex in);
+
+/*
+** \brief Float Matrix Hyperbolic ArcTangeant function
+** \param in : input array value.
+** \param out : input array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void satanha(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix Hyperbolic ArcTangeant function
+** \param in : input array value.
+** \param out : input array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void datanha(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix Hyperbolic ArcTangeant function
+** \param in : input array value.
+** \param out : input array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void catanha(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix Hyperbolic ArcTangeant function
+** \param in : input array value.
+** \param out : input array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void zatanha(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__ATANH_H__ */
+
diff --git a/src/c/elementaryFunctions/includes/ceil.h b/src/c/elementaryFunctions/includes/ceil.h
new file mode 100644
index 0000000..960b8b3
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/ceil.h
@@ -0,0 +1,50 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006-2008 - INRIA - Arnaud Torset
+ *
+ * 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 __CEIL_H__
+#define __CEIL_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ ceil(x) returns an integer matrix made of rounded up elements
+*/
+
+EXTERN_ELEMFUNCT float sceils(float in);
+
+EXTERN_ELEMFUNCT double dceils(double in);
+
+EXTERN_ELEMFUNCT floatComplex cceils(floatComplex in);
+
+EXTERN_ELEMFUNCT doubleComplex zceils(doubleComplex in);
+
+EXTERN_ELEMFUNCT void sceila(float* in, int size, float* out);
+
+EXTERN_ELEMFUNCT void dceila(double* in, int size, double* out);
+
+EXTERN_ELEMFUNCT void cceila(floatComplex* in, int size, floatComplex* out);
+
+EXTERN_ELEMFUNCT void zceila(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__CEIL_H__ */
+
diff --git a/src/c/elementaryFunctions/includes/cos.h b/src/c/elementaryFunctions/includes/cos.h
new file mode 100644
index 0000000..5d573b1
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/cos.h
@@ -0,0 +1,88 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __COS_H__
+#define __COS_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+** Compute Cosine for different types .
+*/
+
+/*
+** \brief Float Cosine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT float scoss(float in);
+
+/*
+** \brief Double Cosine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT double dcoss(double in);
+
+/*
+** \brief Float Complex Cosine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT floatComplex ccoss(floatComplex in);
+
+/*
+** \brief Double Complex Cosine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT doubleComplex zcoss(doubleComplex in);
+
+/*
+** \brief Float Matrix Cosine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void scosa(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix Cosine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void dcosa(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix Cosine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void ccosa(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix Cosine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void zcosa(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__COS_H__ */
diff --git a/src/c/elementaryFunctions/includes/cosh.h b/src/c/elementaryFunctions/includes/cosh.h
new file mode 100644
index 0000000..0cbf8eb
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/cosh.h
@@ -0,0 +1,90 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __COSH_H__
+#define __COSH_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+** Compute Cosine for different types .
+*/
+
+/*
+** \brief Float Cosine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT float scoshs(float in);
+
+/*
+** \brief Double Cosine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT double dcoshs(double in);
+
+/*
+** \brief Float Complex Cosine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT floatComplex ccoshs(floatComplex in);
+
+/*
+** \brief Double Complex Cosine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT doubleComplex zcoshs(doubleComplex in);
+
+/*
+** \brief Float Matrix Cosine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void scosha(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix Cosine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void dcosha(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix Cosine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void ccosha(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix Cosine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void zcosha(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__COSH_H__ */
+
diff --git a/src/c/elementaryFunctions/includes/dynlib_elementaryfunctions.h b/src/c/elementaryFunctions/includes/dynlib_elementaryfunctions.h
new file mode 100644
index 0000000..5037696
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/dynlib_elementaryfunctions.h
@@ -0,0 +1,26 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2009 - DIGITEO - Allan CORNET
+*
+* 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 __DYNLIB_ELEMENTARYFUNCTIONS_H__
+#define __DYNLIB_ELEMENTARYFUNCTIONS_H__
+
+#if defined(_MSC_VER) && defined(_USRDLL)
+ #if ELEMENTARYFUNCTIONS_EXPORTS
+ #define EXTERN_ELEMFUNCT __declspec (dllexport)
+ #else
+ #define EXTERN_ELEMFUNCT __declspec (dllimport)
+ #endif
+#else
+ #define EXTERN_ELEMFUNCT
+#endif
+
+#endif /* __DYNLIB_ELEMENTARYFUNCTIONS_H__ */
diff --git a/src/c/elementaryFunctions/includes/exp.h b/src/c/elementaryFunctions/includes/exp.h
new file mode 100644
index 0000000..297a576
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/exp.h
@@ -0,0 +1,90 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __EXP_H__
+#define __EXP_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+** Compute Exponential for different types .
+*/
+
+/*
+** \brief Float Exponential function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT float sexps(float in);
+
+/*
+** \brief Double Exponential function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT double dexps(double in);
+
+/*
+** \brief Float Complex Exponential function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT floatComplex cexps(floatComplex in);
+
+/*
+** \brief Double Complex Exponential function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT doubleComplex zexps(doubleComplex in);
+
+/*
+** \brief Float Matrix Exponential function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void sexpa(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix Exponential function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void dexpa(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix Exponential function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void cexpa(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix Exponential function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void zexpa(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__EXP_H__ */
+
diff --git a/src/c/elementaryFunctions/includes/exp10.h b/src/c/elementaryFunctions/includes/exp10.h
new file mode 100644
index 0000000..56a1d99
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/exp10.h
@@ -0,0 +1,90 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __EXP10_H__
+#define __EXP10_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+** Compute 10 based Exponential for different types .
+*/
+
+/*
+** \brief Float 10 based Exponential function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT float sexp10s(float in);
+
+/*
+** \brief Double Exp10onential function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT double dexp10s(double in);
+
+/*
+** \brief Float Complex 10 based Exponential function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT floatComplex cexp10s(floatComplex in);
+
+/*
+** \brief Double Complex 10 based Exponential function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT doubleComplex zexp10s(doubleComplex in);
+
+/*
+** \brief Float Matrix 10 based Exponential function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void sexp10a(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix 10 based Exponential function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void dexp10a(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix 10 based Exponential function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void cexp10a(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix 10 based Exponential function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void zexp10a(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__EXP10_H__ */
+
diff --git a/src/c/elementaryFunctions/includes/fix.h b/src/c/elementaryFunctions/includes/fix.h
new file mode 100644
index 0000000..504a63c
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/fix.h
@@ -0,0 +1,52 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006-2008 - INRIA - Arnaud Torset
+ *
+ * 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 __FIX_H__
+#define __FIX_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ fix(x) returns an integer matrix made of nearest rounded integers toward zero,i.e, y=sign(x).*floor(abs(x)). Same as int.
+ In these functions, I take the formula :
+ if x>=0 y=floor(x)
+ else y=ceil(x)
+*/
+
+EXTERN_ELEMFUNCT float sfixs(float in);
+
+EXTERN_ELEMFUNCT double dfixs(double in);
+
+EXTERN_ELEMFUNCT floatComplex cfixs(floatComplex in);
+
+EXTERN_ELEMFUNCT doubleComplex zfixs(doubleComplex in);
+
+EXTERN_ELEMFUNCT void sfixa(float* in, int size, float* out);
+
+EXTERN_ELEMFUNCT void dfixa(double* in, int size, double* out);
+
+EXTERN_ELEMFUNCT void cfixa(floatComplex* in, int size, floatComplex* out);
+
+EXTERN_ELEMFUNCT void zfixa(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__FIX_H__ */
+
diff --git a/src/c/elementaryFunctions/includes/floor.h b/src/c/elementaryFunctions/includes/floor.h
new file mode 100644
index 0000000..971cdf6
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/floor.h
@@ -0,0 +1,49 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006-2008 - INRIA - Arnaud Torset
+ *
+ * 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 __FLOOR_H__
+#define __FLOOR_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ floor(x) returns an integer matrix made of nearest rounded down integers.
+*/
+
+EXTERN_ELEMFUNCT float sfloors(float in);
+
+EXTERN_ELEMFUNCT double dfloors(double in);
+
+EXTERN_ELEMFUNCT floatComplex cfloors(floatComplex in);
+
+EXTERN_ELEMFUNCT doubleComplex zfloors(doubleComplex in);
+
+EXTERN_ELEMFUNCT void sfloora(float* in, int size, float* out);
+
+EXTERN_ELEMFUNCT void dfloora(double* in, int size, double* out);
+
+EXTERN_ELEMFUNCT void cfloora(floatComplex* in, int size, floatComplex* out);
+
+EXTERN_ELEMFUNCT void zfloora(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__FLOOR_H__ */
+
diff --git a/src/c/elementaryFunctions/includes/int.h b/src/c/elementaryFunctions/includes/int.h
new file mode 100644
index 0000000..5398588
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/int.h
@@ -0,0 +1,49 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006-2008 - INRIA - Arnaud Torset
+ *
+ * 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 __INT_H__
+#define __INT_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ int(X) returns the integer part of the real matrix X. Same as fix.
+*/
+
+EXTERN_ELEMFUNCT float sints(float in);
+
+EXTERN_ELEMFUNCT double dints(double in);
+
+EXTERN_ELEMFUNCT floatComplex cints(floatComplex in);
+
+EXTERN_ELEMFUNCT doubleComplex zints(doubleComplex in);
+
+EXTERN_ELEMFUNCT void sinta(float* in, int size, float* out);
+
+EXTERN_ELEMFUNCT void dinta(double* in, int size, double* out);
+
+EXTERN_ELEMFUNCT void cinta(floatComplex* in, int size, floatComplex* out);
+
+EXTERN_ELEMFUNCT void zinta(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__INT_H__ */
+
diff --git a/src/c/elementaryFunctions/includes/lnp1m1.h b/src/c/elementaryFunctions/includes/lnp1m1.h
new file mode 100644
index 0000000..e5f3751
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/lnp1m1.h
@@ -0,0 +1,46 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __LNP1M1_H__
+#define __LNP1M1_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+** Compute v = log ( (1 + s)/(1 - s) ) for different types .
+*/
+
+/*
+** \brief Float Lnp1m1 function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT float slnp1m1s(float in);
+
+/*
+** \brief Double Lnp1m1 function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT double dlnp1m1s(double in);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__LNP1M1_H__ */
+
diff --git a/src/c/elementaryFunctions/includes/log.h b/src/c/elementaryFunctions/includes/log.h
new file mode 100644
index 0000000..9fb5e75
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/log.h
@@ -0,0 +1,89 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __LOG_H__
+#define __LOG_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+** Compute Logarithm for different types .
+*/
+
+/*
+** \brief Float Logarithm function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT float slogs(float in);
+
+/*
+** \brief Double Logarithm function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT double dlogs(double in);
+
+/*
+** \brief Float Complex Logarithm function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT floatComplex clogs(floatComplex in);
+
+/*
+** \brief Double Complex Logarithm function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT doubleComplex zlogs(doubleComplex in);
+
+/*
+** \brief Float Matrix Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void sloga(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void dloga(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void cloga(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void zloga(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__LOG_H__ */
+
diff --git a/src/c/elementaryFunctions/includes/log10.h b/src/c/elementaryFunctions/includes/log10.h
new file mode 100644
index 0000000..a595424
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/log10.h
@@ -0,0 +1,89 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __LOG10_H__
+#define __LOG10_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+** Compute Ten based Logarithm for different types .
+*/
+
+/*
+** \brief Float Ten based Logarithm function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT float slog10s(float in);
+
+/*
+** \brief Double Ten based Logarithm function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT double dlog10s(double in);
+
+/*
+** \brief Float Complex Ten based Logarithm function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT floatComplex clog10s(floatComplex in);
+
+/*
+** \brief Double Complex Ten based Logarithm function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT doubleComplex zlog10s(doubleComplex in);
+
+/*
+** \brief Float Matrix Ten based Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void slog10a(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix Ten based Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void dlog10a(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix Ten based Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void clog10a(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix Ten based Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void zlog10a(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__LOG10_H__ */
+
diff --git a/src/c/elementaryFunctions/includes/log1p.h b/src/c/elementaryFunctions/includes/log1p.h
new file mode 100644
index 0000000..58b93d0
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/log1p.h
@@ -0,0 +1,88 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __LOG1P_H__
+#define __LOG1P_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+** Compute Logarithm for different types .
+*/
+
+/*
+** \brief Float Logarithm function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT float slog1ps(float in);
+
+/*
+** \brief Double Logarithm function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT double dlog1ps(double in);
+
+/*
+** \brief Float Complex Logarithm function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT floatComplex clog1ps(floatComplex in);
+
+/*
+** \brief Double Complex Logarithm function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT doubleComplex zlog1ps(doubleComplex in);
+
+/*
+** \brief Float Matrix Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void slog1pa(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void dlog1pa(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void clog1pa(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void zlog1pa(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* !__LOG1P_H__ */
+
diff --git a/src/c/elementaryFunctions/includes/pow.h b/src/c/elementaryFunctions/includes/pow.h
new file mode 100644
index 0000000..ec8216d
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/pow.h
@@ -0,0 +1,43 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __POW_H__
+#define __POW_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "multiplication.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+EXTERN_ELEMFUNCT float spows(float value, float expand);
+
+EXTERN_ELEMFUNCT double dpows(double value, double expand);
+
+EXTERN_ELEMFUNCT floatComplex cpows(floatComplex value, floatComplex expand);
+
+EXTERN_ELEMFUNCT doubleComplex zpows(doubleComplex value, doubleComplex expand);
+
+EXTERN_ELEMFUNCT void spowa(float *value, int size, float* expand, float *out);
+
+EXTERN_ELEMFUNCT void dpowa(double *value, int size, double* expand, double *out);
+
+EXTERN_ELEMFUNCT void cpowa(floatComplex *value, int size, floatComplex* expand, floatComplex *out);
+
+EXTERN_ELEMFUNCT void zpowa(doubleComplex *value, int size, doubleComplex* expand, doubleComplex *out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__POW_H__ */
diff --git a/src/c/elementaryFunctions/includes/round.h b/src/c/elementaryFunctions/includes/round.h
new file mode 100644
index 0000000..1c3c0ce
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/round.h
@@ -0,0 +1,48 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006-2008 - INRIA - Arnaud Torset
+ *
+ * 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 __ROUND_H__
+#define __ROUND_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ round(x) rounds the elements of x to the nearest integers.
+*/
+
+EXTERN_ELEMFUNCT float srounds(float in);
+
+EXTERN_ELEMFUNCT double drounds(double in);
+
+EXTERN_ELEMFUNCT floatComplex crounds(floatComplex in);
+
+EXTERN_ELEMFUNCT doubleComplex zrounds(doubleComplex in);
+
+EXTERN_ELEMFUNCT void srounda(float* in, int size, float* out);
+
+EXTERN_ELEMFUNCT void drounda(double* in, int size, double* out);
+
+EXTERN_ELEMFUNCT void crounda(floatComplex* in, int size, floatComplex* out);
+
+EXTERN_ELEMFUNCT void zrounda(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* !__ROUND_H__ */
+
diff --git a/src/c/elementaryFunctions/includes/sin.h b/src/c/elementaryFunctions/includes/sin.h
new file mode 100644
index 0000000..198b066
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/sin.h
@@ -0,0 +1,89 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __SIN_H__
+#define __SIN_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+** Compute Sine for different types .
+*/
+
+/*
+** \brief Float Sine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT float ssins(float in);
+
+/*
+** \brief Double Sine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT double dsins(double in);
+
+/*
+** \brief Float Complex Sine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT floatComplex csins(floatComplex in);
+
+/*
+** \brief Double Complex Sine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT doubleComplex zsins(doubleComplex in);
+
+/*
+** \brief Float Matrix Sine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void ssina(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix Sine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void dsina(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix Sine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void csina(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix Sine function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void zsina(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__SIN_H__ */
+
diff --git a/src/c/elementaryFunctions/includes/sinh.h b/src/c/elementaryFunctions/includes/sinh.h
new file mode 100644
index 0000000..c052a90
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/sinh.h
@@ -0,0 +1,88 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __SINH_H__
+#define __SINH_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+** Compute Sine for different types .
+*/
+
+/*
+** \brief Float Sine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT float ssinhs(float in);
+
+/*
+** \brief Double Sine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT double dsinhs(double in);
+
+/*
+** \brief Float Complex Sine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT floatComplex csinhs(floatComplex in);
+
+/*
+** \brief Double Complex Sine function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT doubleComplex zsinhs(doubleComplex in);
+
+/*
+** \brief Float Matrix Sine function
+** \param in : input array value.
+** \param out : input array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void ssinha(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix Sine function
+** \param in : input array value.
+** \param out : input array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void dsinha(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix Sine function
+** \param in : input array value.
+** \param out : input array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void csinha(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix Sine function
+** \param in : input array value.
+** \param out : input array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void zsinha(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__SINH_H__ */
diff --git a/src/c/elementaryFunctions/includes/sqrt.h b/src/c/elementaryFunctions/includes/sqrt.h
new file mode 100644
index 0000000..7885c9c
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/sqrt.h
@@ -0,0 +1,88 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __SQRT_H__
+#define __SQRT_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+** Compute Square Root for different types .
+*/
+
+/*
+** \brief Float Square Root function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT float ssqrts(float in);
+
+/*
+** \brief Double Square Root function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT double dsqrts(double in);
+
+/*
+** \brief Float Complex Square Root function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT floatComplex csqrts(floatComplex in);
+
+/*
+** \brief Double Complex Square Root function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT doubleComplex zsqrts(doubleComplex in);
+
+/*
+** \brief Float Matrix Square Root function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void ssqrta(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix Square Root function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void dsqrta(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix Square Root function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void csqrta(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix Square Root function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void zsqrta(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__SQRT_H__ */
diff --git a/src/c/elementaryFunctions/includes/tan.h b/src/c/elementaryFunctions/includes/tan.h
new file mode 100644
index 0000000..77ef786
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/tan.h
@@ -0,0 +1,89 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __TAN_H__
+#define __TAN_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+** Compute Tangeant for different types .
+*/
+
+/*
+** \brief Float Tangeant function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT float stans(float in);
+
+/*
+** \brief Double Tangeant function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT double dtans(double in);
+
+/*
+** \brief Float Complex Tangeant function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT floatComplex ctans(floatComplex in);
+
+/*
+** \brief Double Complex Tangeant function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT doubleComplex ztans(doubleComplex in);
+
+/*
+** \brief Float Matrix Tangeant function
+** \param in : input array value.
+** \param out : input array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void stana(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix Tangeant function
+** \param in : input array value.
+** \param out : input array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void dtana(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix Tangeant function
+** \param in : input array value.
+** \param out : input array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void ctana(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix Tangeant function
+** \param in : input array value.
+** \param out : input array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void ztana(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__TAN_H__ */
+
diff --git a/src/c/elementaryFunctions/includes/tanh.h b/src/c/elementaryFunctions/includes/tanh.h
new file mode 100644
index 0000000..9ff440c
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/tanh.h
@@ -0,0 +1,88 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __TANH_H__
+#define __TANH_H__
+
+#include "dynlib_elementaryfunctions.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+** Compute Hyperbolic Tangeant for different types .
+*/
+
+/*
+** \brief Float Hyperbolic Tangeant function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT float stanhs(float in);
+
+/*
+** \brief Double Hyperbolic Tangeant function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT double dtanhs(double in);
+
+/*
+** \brief Float Complex Hyperbolic Tangeant function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT floatComplex ctanhs(floatComplex in);
+
+/*
+** \brief Double Complex Hyperbolic Tangeant function
+** \param in : input value.
+*/
+EXTERN_ELEMFUNCT doubleComplex ztanhs(doubleComplex in);
+
+/*
+** \brief Float Matrix Hyperbolic Tangeant function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void stanha(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix Hyperbolic Tangeant function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void dtanha(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix Hyperbolic Tangeant function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void ctanha(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix Hyperbolic Tangeant function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+EXTERN_ELEMFUNCT void ztanha(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__TANH_H__ */