summaryrefslogtreecommitdiff
path: root/src/c
diff options
context:
space:
mode:
Diffstat (limited to 'src/c')
-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 52ff221..0dbd079 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 0000000..1bd002e
--- /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 0000000..364d81d
--- /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 0000000..6f12425
--- /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 0000000..f059101
--- /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 0000000..c4d8f0e
--- /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 0000000..b7bd9a4
--- /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 0000000..6a4062e
--- /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 0000000..4723b53
--- /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 0000000..d8cb523
--- /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