summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSiddhesh Wani2015-07-30 17:06:28 +0530
committerSiddhesh Wani2015-07-30 17:06:28 +0530
commitf39c271ca3fbf737612350a7f1c6af7e2c7022f9 (patch)
tree3fb231c7500048aea6f41be146c66ba5b666245a /src
parentdb464f35f5a10b58d9ed1085e0b462689adee583 (diff)
downloadscilab2c-f39c271ca3fbf737612350a7f1c6af7e2c7022f9.tar.gz
scilab2c-f39c271ca3fbf737612350a7f1c6af7e2c7022f9.tar.bz2
scilab2c-f39c271ca3fbf737612350a7f1c6af7e2c7022f9.zip
Added new data types. Support for few functions with new data types added. These changes requires proper testing
Diffstat (limited to 'src')
-rw-r--r--src/c/operations/interfaces/int_OpStar.h39
-rw-r--r--src/c/operations/multiplication/i16muls.c19
-rw-r--r--src/c/operations/multiplication/i16mulv.c27
-rw-r--r--src/c/operations/multiplication/i8muls.c19
-rw-r--r--src/c/operations/multiplication/i8mulv.c27
-rw-r--r--src/c/operations/multiplication/u16muls.c19
-rw-r--r--src/c/operations/multiplication/u16mulv.c27
-rw-r--r--src/c/operations/multiplication/u8muls.c19
-rw-r--r--src/c/operations/multiplication/u8mulv.c26
-rw-r--r--src/c/type/types.h17
10 files changed, 239 insertions, 0 deletions
diff --git a/src/c/operations/interfaces/int_OpStar.h b/src/c/operations/interfaces/int_OpStar.h
index 52ff221c..0dbd0792 100644
--- a/src/c/operations/interfaces/int_OpStar.h
+++ b/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/src/c/operations/multiplication/i16muls.c b/src/c/operations/multiplication/i16muls.c
new file mode 100644
index 00000000..1bd002e1
--- /dev/null
+++ b/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/src/c/operations/multiplication/i16mulv.c b/src/c/operations/multiplication/i16mulv.c
new file mode 100644
index 00000000..364d81de
--- /dev/null
+++ b/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/src/c/operations/multiplication/i8muls.c b/src/c/operations/multiplication/i8muls.c
new file mode 100644
index 00000000..6f12425a
--- /dev/null
+++ b/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/src/c/operations/multiplication/i8mulv.c b/src/c/operations/multiplication/i8mulv.c
new file mode 100644
index 00000000..f0591016
--- /dev/null
+++ b/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/src/c/operations/multiplication/u16muls.c b/src/c/operations/multiplication/u16muls.c
new file mode 100644
index 00000000..c4d8f0e4
--- /dev/null
+++ b/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/src/c/operations/multiplication/u16mulv.c b/src/c/operations/multiplication/u16mulv.c
new file mode 100644
index 00000000..b7bd9a43
--- /dev/null
+++ b/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/src/c/operations/multiplication/u8muls.c b/src/c/operations/multiplication/u8muls.c
new file mode 100644
index 00000000..6a4062ee
--- /dev/null
+++ b/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/src/c/operations/multiplication/u8mulv.c b/src/c/operations/multiplication/u8mulv.c
new file mode 100644
index 00000000..4723b539
--- /dev/null
+++ b/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/src/c/type/types.h b/src/c/type/types.h
new file mode 100644
index 00000000..d8cb523c
--- /dev/null
+++ b/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