summaryrefslogtreecommitdiff
path: root/2.3-1/src/c
diff options
context:
space:
mode:
authorSiddhesh Wani2015-07-30 17:06:28 +0530
committerSiddhesh Wani2015-07-30 17:06:28 +0530
commitdcc7a8331ba9ae3bdd00670a018631c77517c100 (patch)
tree90af508b56e9e370f09c1c910961ca15c42fc014 /2.3-1/src/c
parent6a320264c2de3d6dd8cc1d1327b3c30df4c8cb26 (diff)
downloadScilab2C-dcc7a8331ba9ae3bdd00670a018631c77517c100.tar.gz
Scilab2C-dcc7a8331ba9ae3bdd00670a018631c77517c100.tar.bz2
Scilab2C-dcc7a8331ba9ae3bdd00670a018631c77517c100.zip
Added new data types. Support for few functions with new data types added. These changes requires proper testing
Diffstat (limited to '2.3-1/src/c')
-rw-r--r--2.3-1/src/c/operations/interfaces/int_OpStar.h39
-rw-r--r--2.3-1/src/c/operations/multiplication/i16muls.c19
-rw-r--r--2.3-1/src/c/operations/multiplication/i16mulv.c27
-rw-r--r--2.3-1/src/c/operations/multiplication/i8muls.c19
-rw-r--r--2.3-1/src/c/operations/multiplication/i8mulv.c27
-rw-r--r--2.3-1/src/c/operations/multiplication/u16muls.c19
-rw-r--r--2.3-1/src/c/operations/multiplication/u16mulv.c27
-rw-r--r--2.3-1/src/c/operations/multiplication/u8muls.c19
-rw-r--r--2.3-1/src/c/operations/multiplication/u8mulv.c26
-rw-r--r--2.3-1/src/c/type/types.h17
10 files changed, 239 insertions, 0 deletions
diff --git a/2.3-1/src/c/operations/interfaces/int_OpStar.h b/2.3-1/src/c/operations/interfaces/int_OpStar.h
index 52ff221c..0dbd0792 100644
--- a/2.3-1/src/c/operations/interfaces/int_OpStar.h
+++ b/2.3-1/src/c/operations/interfaces/int_OpStar.h
@@ -33,7 +33,46 @@
#define z0d0OpStarz0(in1,in2) zmuls(in1,DoubleComplex(in2,0))
+#define u80u80OpStaru80(in1,in2) (uint8)(in1 * in2)
+#define u80u80OpStaru160(in1,in2) (uint16)(in1 * in2)
+
+#define u80i80OpStari80(in1,in2) (int8)(in1 * in2)
+
+#define u80u80OpStari160(in1,in2) (int16)(in1 * in2)
+
+#define u80u160OpStaru160(in1,in2) (uint16)(in1 * in2)
+
+#define u80i160OpStari160(in1,in2) (int16)(in1 * in2)
+
+#define i80u80OpStari80(in1,in2) (int8)(in1 * in2)
+
+#define i80u80OpStari160(in1,in2) (int16)(in1 * in2)
+
+#define i80i80OpStari80(in1,in2) (int8)(in1 * in2)
+
+#define i80i80OpStari160(in1,in2) (int16)(in1 * in2)
+
+
+#define i80u160OpStari160(in1,in2) (int16)(in1 * in2)
+
+#define i80i160OpStari160(in1,in2) (int16)(in1 * in2)
+
+#define u160u80OpStaru160(in1,in2) (uint16)(in1 * in2)
+
+#define u160i80OpStari160(in1,in2) (int16)(in1 * in2)
+
+#define u160u160OpStaru160(in1,in2) (uint16)(in1 * in2)
+
+#define u160i160OpStari160(in1,in2) (int16)(in1 * in2)
+
+#define i160u80OpStari160(in1,in2) (int16)(in1 * in2)
+
+#define i160i80OpStari160(in1,in2) (int16)(in1 * in2)
+
+#define i160u160OpStari160(in1,in2) (int16)(in1 * in2)
+
+#define i160i160OpStari160(in1,in2) (int16)(in1 * in2)
/* Scalar * Matrix */
diff --git a/2.3-1/src/c/operations/multiplication/i16muls.c b/2.3-1/src/c/operations/multiplication/i16muls.c
new file mode 100644
index 00000000..1bd002e1
--- /dev/null
+++ b/2.3-1/src/c/operations/multiplication/i16muls.c
@@ -0,0 +1,19 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+
+#include "multiplication.h"
+#include "types.h"
+
+i16 i16muls(i16 in1, i16 in2){
+ return in1*in2;
+}
diff --git a/2.3-1/src/c/operations/multiplication/i16mulv.c b/2.3-1/src/c/operations/multiplication/i16mulv.c
new file mode 100644
index 00000000..364d81de
--- /dev/null
+++ b/2.3-1/src/c/operations/multiplication/i16mulv.c
@@ -0,0 +1,27 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+
+#include "multiplication.h"
+
+i16 i16mulv(i16* in1, i16* in2, u16 size)
+{
+ i16 out = 0;
+ u16 i = 0;
+
+ for (i = 0 ; i < size ; ++i)
+ {
+ out += i16muls(in1[i], in2[i]);
+ }
+
+ return out;
+}
diff --git a/2.3-1/src/c/operations/multiplication/i8muls.c b/2.3-1/src/c/operations/multiplication/i8muls.c
new file mode 100644
index 00000000..6f12425a
--- /dev/null
+++ b/2.3-1/src/c/operations/multiplication/i8muls.c
@@ -0,0 +1,19 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+
+#include "multiplication.h"
+#include "types.h"
+
+i80 i8muls(i80 in1, i80 in2){
+ return in1*in2;
+}
diff --git a/2.3-1/src/c/operations/multiplication/i8mulv.c b/2.3-1/src/c/operations/multiplication/i8mulv.c
new file mode 100644
index 00000000..f0591016
--- /dev/null
+++ b/2.3-1/src/c/operations/multiplication/i8mulv.c
@@ -0,0 +1,27 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+
+#include "multiplication.h"
+
+i8 i8mulv(i8* in1, i8* in2, i16 size)
+{
+ i8 out = 0;
+ u16 i = 0;
+
+ for (i = 0 ; i < size ; ++i)
+ {
+ out += i8muls(in1[i], in2[i]);
+ }
+
+ return out;
+}
diff --git a/2.3-1/src/c/operations/multiplication/u16muls.c b/2.3-1/src/c/operations/multiplication/u16muls.c
new file mode 100644
index 00000000..c4d8f0e4
--- /dev/null
+++ b/2.3-1/src/c/operations/multiplication/u16muls.c
@@ -0,0 +1,19 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+
+#include "multiplication.h"
+#include "types.h"
+
+u160 u16muls(u160 in1, u160 in2){
+ return in1*in2;
+}
diff --git a/2.3-1/src/c/operations/multiplication/u16mulv.c b/2.3-1/src/c/operations/multiplication/u16mulv.c
new file mode 100644
index 00000000..b7bd9a43
--- /dev/null
+++ b/2.3-1/src/c/operations/multiplication/u16mulv.c
@@ -0,0 +1,27 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+
+#include "multiplication.h"
+
+u16 u16mulv(u16* in1, u16* in2, u16 size)
+{
+ u16 out = 0;
+ u16 i = 0;
+
+ for (i = 0 ; i < size ; ++i)
+ {
+ out += u16muls(in1[i], in2[i]);
+ }
+
+ return out;
+}
diff --git a/2.3-1/src/c/operations/multiplication/u8muls.c b/2.3-1/src/c/operations/multiplication/u8muls.c
new file mode 100644
index 00000000..6a4062ee
--- /dev/null
+++ b/2.3-1/src/c/operations/multiplication/u8muls.c
@@ -0,0 +1,19 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+
+#include "multiplication.h"
+#include "types.h"
+
+u80 u8muls(u80 in1, u80 in2){
+ return in1*in2;
+}
diff --git a/2.3-1/src/c/operations/multiplication/u8mulv.c b/2.3-1/src/c/operations/multiplication/u8mulv.c
new file mode 100644
index 00000000..4723b539
--- /dev/null
+++ b/2.3-1/src/c/operations/multiplication/u8mulv.c
@@ -0,0 +1,26 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+#include "multiplication.h"
+
+u8 u8mulv(u8* in1, u8* in2, u16 size)
+{
+ u8 out = 0;
+ u16 i = 0;
+
+ for (i = 0 ; i < size ; ++i)
+ {
+ out += u8muls(in1[i], in2[i]);
+ }
+
+ return out;
+}
diff --git a/2.3-1/src/c/type/types.h b/2.3-1/src/c/type/types.h
new file mode 100644
index 00000000..d8cb523c
--- /dev/null
+++ b/2.3-1/src/c/type/types.h
@@ -0,0 +1,17 @@
+#ifndef _TYPES_H_
+#define _TYPES_H_
+
+/*****************************************************************************/
+/* TYPE DEFINITIONS */
+/*****************************************************************************/
+typedef unsigned char boolean;
+
+typedef unsigned char uint8;
+typedef unsigned short uint16;
+typedef unsigned int uint32;
+
+typedef signed char int8;
+typedef signed short int16;
+typedef signed int int32;
+
+#endif //_TYPES_H