summaryrefslogtreecommitdiff
path: root/src/c/operations
diff options
context:
space:
mode:
Diffstat (limited to 'src/c/operations')
-rw-r--r--src/c/operations/interfaces/int_OpLogNot.h25
-rw-r--r--src/c/operations/interfaces/int_OpStar.h4
-rw-r--r--src/c/operations/multiplication/u8mula.c21
3 files changed, 48 insertions, 2 deletions
diff --git a/src/c/operations/interfaces/int_OpLogNot.h b/src/c/operations/interfaces/int_OpLogNot.h
index 6184265..852cd1c 100644
--- a/src/c/operations/interfaces/int_OpLogNot.h
+++ b/src/c/operations/interfaces/int_OpLogNot.h
@@ -23,6 +23,14 @@
#define z0OpLogNotz0(in) (zreals(in)==0) ? DoubleComplex(1,0) : DoubleComplex(0,0)
+#define u8OpLogNotu80(in) (in==0) ? (uint8)1 : (uint8)0
+
+#define i8OpLogNoti80(in) (in==0) ? (int8)1 : (int8)0
+
+#define u16OpLogNotu160(in) (in==0) ? (uint16)1 : (uint16)0
+
+#define i16OpLogNoti160(in) (in==0) ? (int16)1 : (int16)0
+
#define s2OpLogNots2(in,size,out) {int i;\
for (i=0;i<size[0]*size[1];i++) out[i]=s0OpLogNots0(in[i]);\
}
@@ -39,4 +47,21 @@
for (i=0;i<size[0]*size[1];i++) out[i]=z0OpLogNotz0(in[i]);\
}
+#define u82OpLogNotu82(in,size,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=u80OpLogNotu80(in[i]);\
+ }
+
+#define i82OpLogNoti82(in,size,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=i80OpLogNoti80(in[i]);\
+ }
+
+#define u162OpLogNotu162(in,size,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=u160OpLogNoti160(in[i]);\
+ }
+
+#define i162OpLogNoti162(in,size,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=i160OpLogNotu160(in[i]);\
+ }
+
+
#endif /* !__INT_OPLOGNOT_H__ */
diff --git a/src/c/operations/interfaces/int_OpStar.h b/src/c/operations/interfaces/int_OpStar.h
index 53f39e8..f899a29 100644
--- a/src/c/operations/interfaces/int_OpStar.h
+++ b/src/c/operations/interfaces/int_OpStar.h
@@ -112,7 +112,7 @@
#define u160u162OpStaru162(in1,in2,size,out) {int i=0;\
for (i=0;i<size[0]*size[1];i++) out[i]=in1*in2[i];}
-#define i160162OpStari162(in1,in2,size,out) {int i=0;\
+#define i160i162OpStari162(in1,in2,size,out) {int i=0;\
for (i=0;i<size[0]*size[1];i++) out[i]=in1*in2[i];}
/* Matrix * Scalar */
@@ -156,7 +156,7 @@
#define u162u160OpStaru162(in1,size,in2,out) {int i=0;\
for (i=0;i<size[0]*size[1];i++) out[i]=in1[i]*in2;}
-#define i162160OpStari162(in1,size,in2,out) {int i=0;\
+#define i162i160OpStari162(in1,size,in2,out) {int i=0;\
for (i=0;i<size[0]*size[1];i++) out[i]=in1[i]*in2;}
diff --git a/src/c/operations/multiplication/u8mula.c b/src/c/operations/multiplication/u8mula.c
new file mode 100644
index 0000000..79d4330
--- /dev/null
+++ b/src/c/operations/multiplication/u8mula.c
@@ -0,0 +1,21 @@
+/*
+ * 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"
+
+void u8mula(uint8* in1, uint8* in2, int size, uint8* out){
+ int i=0;
+ for (i=0;i<size;i++){
+ out[i]=dmuls(in1[i],in2[i]);
+ }
+}