summaryrefslogtreecommitdiff
path: root/src/c/matrixOperations/interfaces
diff options
context:
space:
mode:
Diffstat (limited to 'src/c/matrixOperations/interfaces')
-rw-r--r--src/c/matrixOperations/interfaces/int_OpStar.h8
-rw-r--r--src/c/matrixOperations/interfaces/int_cat.h359
-rw-r--r--src/c/matrixOperations/interfaces/int_cross.h35
-rw-r--r--src/c/matrixOperations/interfaces/int_cumprod.h54
-rw-r--r--src/c/matrixOperations/interfaces/int_cumsum.h54
-rw-r--r--src/c/matrixOperations/interfaces/int_diag.h85
-rw-r--r--src/c/matrixOperations/interfaces/int_eye.h35
-rw-r--r--src/c/matrixOperations/interfaces/int_flipdim.h109
-rw-r--r--src/c/matrixOperations/interfaces/int_invert.h16
-rw-r--r--src/c/matrixOperations/interfaces/int_kron.h43
-rw-r--r--src/c/matrixOperations/interfaces/int_matrix.h49
-rw-r--r--src/c/matrixOperations/interfaces/int_ndgrid.h28
-rw-r--r--src/c/matrixOperations/interfaces/int_nnz.h35
-rw-r--r--src/c/matrixOperations/interfaces/int_norm.h53
-rw-r--r--src/c/matrixOperations/interfaces/int_ones.h34
-rw-r--r--src/c/matrixOperations/interfaces/int_permute.h28
-rw-r--r--src/c/matrixOperations/interfaces/int_pertrans.h34
-rw-r--r--src/c/matrixOperations/interfaces/int_toeplitz.h50
-rw-r--r--src/c/matrixOperations/interfaces/int_trace.h16
-rw-r--r--src/c/matrixOperations/interfaces/int_transpose.h17
-rw-r--r--src/c/matrixOperations/interfaces/int_tril.h62
-rw-r--r--src/c/matrixOperations/interfaces/int_triu.h62
-rw-r--r--src/c/matrixOperations/interfaces/int_vmagn.h16
-rw-r--r--src/c/matrixOperations/interfaces/int_zeros.h37
-rw-r--r--[-rwxr-xr-x]src/c/matrixOperations/interfaces/interface.sh0
25 files changed, 1317 insertions, 2 deletions
diff --git a/src/c/matrixOperations/interfaces/int_OpStar.h b/src/c/matrixOperations/interfaces/int_OpStar.h
index 400918a4..f922b319 100644
--- a/src/c/matrixOperations/interfaces/int_OpStar.h
+++ b/src/c/matrixOperations/interfaces/int_OpStar.h
@@ -23,6 +23,14 @@
#define c2c2OpStarc2(in1,size1,in2,size2,out) cmulma(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+#define u82u82OpStaru82(in1,size1,in2,size2,out) u8mulma(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+
+#define u162u162OpStaru162(in1,size1,in2,size2,out) u16mulma(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+
+#define i82i82OpStari82(in1,size1,in2,size2,out) i8mulma(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+
+#define i162i162OpStari162(in1,size1,in2,size2,out) i16mulma(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+
#define c2s2OpStarc2(in1,size1,in2,size2,out) cmulma(in1,size1[0],size1[1],FloatComplexMatrix(in2,0,size2[0]*size2[1]),size2[0],size2[1],out)
#define s2c2OpStarc2(in1,size1,in2,size2,out) cmulma(FloatComplexMatrix(in1,0,size1[0]*size1[1]),size1[0],size1[1],in2,size2[0],size2[1],out)
diff --git a/src/c/matrixOperations/interfaces/int_cat.h b/src/c/matrixOperations/interfaces/int_cat.h
new file mode 100644
index 00000000..db80bec9
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_cat.h
@@ -0,0 +1,359 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Mushir
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __INT_CAT_H
+#define __INT_CAT_H
+
+/* Column Cat */
+
+/* Same input elements */
+
+#define s0s0cats2(in1,in2,out) scolumncats(in1,in2,out)
+
+#define d0d0catd2(in1,in2,out) dcolumncats(in1,in2,out)
+
+#define c0c0catc2(in1,in2,out) ccolumncats(in1,in2,out)
+
+#define z0z0catz2(in1,in2,out) zcolumncats(in1,in2,out)
+
+#define u80u80catu82(in1,in2,out) u8columncats(in1,in2,out)
+
+#define u160u160catu162(in1,in2,out) u16columncats(in1,in2,out)
+
+#define i80i80cati82(in1,in2,out) i8columnscats(in1,in2,out)
+
+#define i160i160cati162(in1,in2,out) i16columnscats(in1,in2,out)
+
+#define s2s2cats2(in1,size1,in2,size2,out) scolumncata(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define d2d2catd2(in1,size1,in2,size2,out) dcolumncata(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+/* ROW COLUMN SUPPORT for cat, If First argument in cat command is 1 then it will concatenate the element ROW WISE else COLUMN WISE */
+
+#define d0d2d2catd2(in1,in2,size2,in3,size3,out) (in1 == 1) ? drowcata(in2, size2[0], size2[1], in3, size3[0], size3[1], out) : dcolumncata(in2, size2[0],size2[1],in3,size3[0],size3[1],out)
+
+#define d0u82u82catu82(in1,in2,size2,in3,size3,out) (in1 == 1) ? u8rowcata(in2, size2[0], size2[1], in3, size3[0], size3[1], out) : u8columncata(in2, size2[0],size2[1],in3,size3[0],size3[1],out)
+
+#define d0u162u162catu162(in1,in2,size2,in3,size3,out) (in1 == 1) ? u16rowcata(in2, size2[0], size2[1], in3, size3[0], size3[1], out) : u16columncata(in2, size2[0],size2[1],in3,size3[0],size3[1],out)
+
+
+#define d0i82i82cati82(in1,in2,size2,in3,size3,out) (in1 == 1) ? i8rowcata(in2, size2[0], size2[1], in3, size3[0], size3[1], out) : i8columncata(in2, size2[0],size2[1],in3,size3[0],size3[1],out)
+
+#define d0i162i162cati162(in1,in2,size2,in3,size3,out) (in1 == 1) ? i16rowcata(in2, size2[0], size2[1], in3, size3[0], size3[1], out) : i16columncata(in2, size2[0],size2[1],in3,size3[0],size3[1],out)
+
+
+#define c2c2catc2(in1,size1,in2,size2,out) ccolumncata(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define z2z2catz2(in1,size1,in2,size2,out) zcolumncata(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define u82u82catu82(in1,size1,in2,size2,out) u8columncata(in1,size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define u162u162catu162(in1,size1,in2,size2,out) u16columncata(in1,size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define i82i82cati82(in1,size1,in2,size2,out) i8columncata(in1,size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define i162i162cati162(in1,size1,in2,size2,out) i16columncata(in1,size1[0], size1[1], in2, size2[0], size2[1], out)
+
+
+
+/* Differents input elements */
+#define s0c0catc2(in1,in2,out) c0c0OpRcc2(FloatComplex(in1,0),in2,out)
+
+#define d0z0catz2(in1,in2,out) z0z0OpRcz2(DoubleComplex(in1,0),in2,out)
+
+#define c0s0catc2(in1,in2,out) c0c0OpRcc2(in1,FloatComplex(in2,0),out)
+
+#define z0d0catz2(in1,in2,out) z0z0OpRcz2(in1,DoubleComplex(in2,0),out)
+
+#define s2c2catc2(in1,size1,in2,size2,out) sfilla((float*)out,size1[0],size1[1],0); \
+ c2c2OpRcc2(FloatComplexMatrix(in1,(float*)out,size1[0]*size1[1]), size1, in2, size2, out)
+
+#define d2z2catz2(in1,size1,in2,size2,out) dfilla((double*)out,size1[0],size1[1],0); \
+ z2z2OpRcz2(DoubleComplexMatrix(in1,(double*)out,size1[0]*size1[1]), size1, in2, size2, out)
+
+#define c2s2catc2(in1,size1,in2,size2,out) sfilla((float*)out,size2[0],size2[1],0); \
+ c2c2OpRcc2(in1, size1, FloatComplexMatrix(in2,(float*)out,size2[0]*size2[1]), size2, out)
+
+#define z2d2catz2(in1,size1,in2,size2,out) dfilla((double*)out,size2[0],size2[1],0); \
+ z2z2OpRcz2(in1, size1, DoubleComplexMatrix(in2,(double*)out,size2[0]*size2[1]), size2, out)
+
+/* Matrix-Scalar */
+
+/* Same type */
+
+#define s2s0cats2(in1,size,in2,out) { float temp=in2; \
+ scolumncata(in1, size[0], size[1],&temp, 1, 1, out); \
+ }
+
+#define d2d0catd2(in1,size,in2,out) { double temp=in2; \
+ dcolumncata(in1, size[0], size[1],&temp, 1, 1, out); \
+ }
+
+#define c2c0catc2(in1,size,in2,out) { floatComplex temp=in2; \
+ ccolumncata(in1, size[0], size[1], &temp, 1, 1, out); \
+ }
+
+#define z2z0catz2(in1,size,in2,out) { doubleComplex temp=in2; \
+ zcolumncata(in1, size[0], size[1], &temp, 1, 1, out); \
+ }
+
+#define u82u80catu82(in1,size,in2,out) { uint8 temp=in2; \
+ u8columncata(in1,size[0],size[1],&temp,1,1,out); \
+ }
+#define u162u160catu162(in1,size,in2,out) { uint16 temp=in2; \
+ u16columncata(in1,size[0],size[1],&temp,1,1,out); \
+ }
+#define i82i80cati82(in1,size,in2,out) { int8 temp=in2; \
+ i8columncata(in1,size[0],size[1],&temp,1,1,out); \
+ }
+#define i162i160cati162(in1,size,in2,out) { int16 temp=in2; \
+ i16columncata(in1,size[0],size[1],&temp,1,1,out); \
+ }
+
+
+/* Different type */
+#define s2c0catc2(in1,size,in2,out) { floatComplex temp=in2; \
+ sfilla((float *)out,size[0],size[1],0); \
+ scolumncata(FloatComplexMatrix(in1,(float*)out,size[0]*size[1]), size[0], size[1], &temp , 1, 1, out); \
+ }
+
+#define d2z0catz2(in1,size,in2,out) { doubleComplex temp=in2; \
+ dfilla((double *)out,size[0],size[1],0); \
+ zcolumncata(DoubleComplexMatrix(in1,(double *)out,size[0]*size[1]), size[0], size[1], &temp , 1, 1, out); \
+ }
+
+#define c2s0catc2(in1,size,in2,out) { floatComplex temp = FloatComplex(in2,0); \
+ ccolumncata(in1, size[0], size[1], &temp, 1, 1, out); \
+ }
+
+#define z2d0catz2(in1,size,in2,out) { doubleComplex temp = DoubleComplex(in2,0); \
+ zcolumncata(in1, size[0], size[1], &temp, 1, 1, out); \
+ }
+
+/* Scalar-Matrix */
+
+/* Same type */
+#define s0s2cats2(in1,in2,size,out) { \
+ float __tmp1 = in1 ;\
+ scolumncata(&__tmp1 , 1, 1, in2, size[0], size[1], out);\
+}
+#define d0d2catd2(in1,in2,size,out) {\
+ double __tmp1 = in1 ;\
+ dcolumncata(&__tmp1 , 1, 1, in2, size[0], size[1], out); \
+}
+
+#define c0c2catc2(in1,in2,size,out) { \
+ floatComplex __tmp1 = in1 ;\
+ ccolumncata(&__tmp1, 1, 1, in2, size[0], size[1], out);\
+}
+
+#define z0z2catz2(in1,in2,size,out) { \
+ doubleComplex __tmp1 = in1 ;\
+ zcolumncata(&__tmp1, 1, 1, in2, size[0], size[1], out);\
+}
+
+#define u80u82catu82(in1,in2,size,out) {\
+ uint8 __tmp1 = in1 ;\
+ u8columncata(&__tmp1,1,1,in2,size[0],size[1],out);\
+}
+
+#define u160u162catu162(in1,in2,size,out) {\
+ uint16 __tmp1 = in1 ;\
+ u16columncata(&__tmp1,1,1,in2,size[0],size[1],out);\
+}
+
+#define i80i82cati82(in1,in2,size,out) {\
+ int8 __tmp1 = in1 ;\
+ i8columncata(&__tmp1,1,1,in2,size[0],size[1],out);\
+}
+
+#define i160i162cati162(in1,in2,size,out) {\
+ int16 __tmp1 = in1 ;\
+ i16columncata(&__tmp1,1,1,in2,size[0],size[1],out);\
+}
+
+
+/* Different type */
+#define s0c2catc2(in1,in2,size,out) c0c2OpRcc2(FloatComplex(in1,0),in2,size,out)
+
+#define d0z2catz2(in1,in2,size,out) z0z2OpRcz2(DoubleComplex(in1,0),in2,size,out)
+
+#define c0s2catc2(in1,in2,size,out) sfilla((float*)out,size[0],size[1],0); \
+ c0c2OpRcc2(in1,FloatComplexMatrix(in2,(float*)out,size[0]*size[1]),size,out)
+
+#define z0d2catz2(in1,in2,size,out) dfilla((double*)out,size[0],size[1],0); \
+ z0z2OpRcz2(in1,DoubleComplexMatrix(in2,(double*)out,size[0]*size[1]),size,out)
+
+
+/* Column Cat */
+
+/* Same input elements */
+
+#define s0s0cats2(in1,in2,out) srowcats(in1,in2,out)
+
+#define d0d0catd2(in1,in2,out) drowcats(in1,in2,out)
+
+#define c0c0catc2(in1,in2,out) crowcats(in1,in2,out)
+
+#define z0z0catz2(in1,in2,out) zrowcats(in1,in2,out)
+
+#define u80u80catu82(in1,in2,out) u8rowcats(in1,in2,out)
+
+#define u160u160catu162(in1,in2,out) u16rowcats(in1,in2,out)
+
+#define i80i80cati82(in1,in2,out) i8rowcats(in1,in2,out)
+
+#define i160i160cati162(in1,in2,out) i16rowcats(in1,in2,out)
+
+#define s2s2cats2(in1,size1,in2,size2,out) srowcata(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define d2d2catd2(in1,size1,in2,size2,out) drowcata(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define c2c2catc2(in1,size1,in2,size2,out) crowcata(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define z2z2catz2(in1,size1,in2,size2,out) zrowcata(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define u82u82catu82(in1,size1,in2,size2,out) u8rowcata(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define u162u162catu162(in1,size1,in2,size2,out) u16rowcata(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define i82i82cati82(in1,size1,in2,size2,out) i8rowcata(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define i162i162cati162(in1,size1,in2,size2,out) i16rowcata(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+/* Differents input elements */
+#define s0c0catc2(in1,in2,out) c0c0OpCcc2(FloatComplex(in1,0),in2,out)
+
+#define d0z0catz2(in1,in2,out) z0z0OpCcz2(DoubleComplex(in1,0),in2,out)
+
+#define c0s0catc2(in1,in2,out) c0c0OpCcc2(in1,FloatComplex(in2,0),out)
+
+#define z0d0catz2(in1,in2,out) z0z0OpCcz2(in1,DoubleComplex(in2,0),out)
+
+#define s2c2catc2(in1,size1,in2,size2,out) sfilla((float*)out,size1[0],size1[1],0); \
+ c2c2OpCcc2(FloatComplexMatrix(in1,(float*)out,size1[0]*size1[1]), size1, in2, size2, out)
+
+#define d2z2catz2(in1,size1,in2,size2,out) dfilla((double*)out,size1[0],size1[1],0); \
+ z2z2OpCcz2(DoubleComplexMatrix(in1,(double*)out,size1[0]*size1[1]), size1, in2, size2, out)
+
+#define c2s2catc2(in1,size1,in2,size2,out) sfilla((float*)out,size2[0],size2[1],0); \
+ c2c2OpCcc2(in1, size1, FloatComplexMatrix(in2,(float*)out,size2[0]*size2[1]), size2, out)
+
+#define z2d2catz2(in1,size1,in2,size2,out) dfilla((double*)out,size2[0],size2[1],0); \
+ z2z2OpCcz2(in1, size1, DoubleComplexMatrix(in2,(double*)out,size2[0]*size2[1]), size2, out)
+
+/* Matrix-Scalar */
+
+/* Same type */
+
+#define s2s0cats2(in1,size,in2,out) { float temp=in2; \
+ srowcata(in1, size[0], size[1],&temp, 1, 1, out); \
+ }
+
+#define d2d0catd2(in1,size,in2,out) { double temp=in2; \
+ drowcata(in1, size[0], size[1],&temp, 1, 1, out); \
+ }
+
+#define c2c0catc2(in1,size,in2,out) { floatComplex temp = in2; \
+ crowcata(in1, size[0], size[1],&temp, 1, 1, out);\
+ }
+
+#define z2z0catz2(in1,size,in2,out) { doubleComplex temp =in2; \
+ zrowcata(in1, size[0], size[1],&temp, 1, 1, out);\
+ }
+
+#define u82u80catu82(in1,size,in2,out) { uint8 temp=in2; \
+ u8rowcata(in1, size[0], size[1],&temp, 1,1,out);\
+ }
+#define u162u160catu162(in1,size,in2,out) { uint16 temp=in2; \
+ u16rowcata(in1, size[0], size[1],&temp, 1,1,out);\
+ }
+
+#define i82i80cati82(in1,size,in2,out) { int8 temp=in2; \
+ i8rowcata(in1, size[0], size[1],&temp, 1,1,out);\
+ }
+#define i162i160cati162(in1,size,in2,out) { int16 temp=in2; \
+ i16rowcata(in1, size[0], size[1],&temp, 1,1,out);\
+ }
+
+
+
+/* Different type */
+#define s2c0catc2(in1,size,in2,out) sfilla((float *)out,size[0],size[1],0); \
+ c2c0OpCcc2(FloatComplexMatrix(in1,(float*)out,size[0]*size[1]),size,in2,out)
+
+#define d2z0catz2(in1,size,in2,out) dfilla((double *)out,size[0],size[1],0); \
+ z2z0OpCcz2(DoubleComplexMatrix(in1,(double *)out,size[0]*size[1]),size,in2,out)
+
+#define c2s0catc2(in1,size,in2,out) { floatComplex temp = FloatComplex(in2, 0); c2c0OpCcc2(in1, size, temp, out)}
+
+#define z2d0catz2(in1,size,in2,out) { doubleComplex temp = DoubleComplex(in2, 0); z2z0OpCcz2(in1, size, temp, out)}
+
+
+/* Scalar-Matrix */
+
+/* Same type */
+#define s0s2cats2(in1,in2,size,out) { \
+ float __tmp1 = in1 ;\
+ srowcata(&__tmp1, 1, 1, in2, size[0], size[1], out);\
+}
+
+#define d0d2catd2(in1,in2,size,out) { \
+ double __tmp1 = in1 ;\
+ drowcata(&__tmp1, 1, 1, in2, size[0], size[1], out);\
+}
+
+#define c0c2catc2(in1,in2,size,out) { \
+ floatComplex __tmp1 = in1 ;\
+ crowcata(&__tmp1, 1, 1, in2, size[0], size[1], out);\
+}
+
+#define z0z2catz2(in1,in2,size,out) { \
+ doubleComplex __tmp1 = in1 ;\
+ zrowcata(&__tmp1, 1, 1, in2, size[0], size[1], out);\
+}
+
+#define u80u82catu82(in1,in2,size,out) { \
+ uint8 __tmp1 = in1;\
+ u8rowcata(&__tmp1, 1,1, in2, size[0], size[1], out);\
+}
+
+#define u160u162catu162(in1,in2,size,out) { \
+ uint16 __tmp1 = in1;\
+ u16rowcata(&__tmp1, 1,1, in2, size[0], size[1], out);\
+}
+
+#define i80i82cati82(in1,in2,size,out) { \
+ int8 __tmp1 = in1;\
+ i8rowcata(&__tmp1, 1,1, in2, size[0], size[1], out);\
+}
+
+#define i160i162cati162(in1,in2,size,out) { \
+ int16 __tmp1 = in1;\
+ i16rowcata(&__tmp1, 1,1, in2, size[0], size[1], out);\
+}
+
+
+/* Different type */
+#define s0c2catc2(in1,in2,size,out) c0c2OpCcc2(FloatComplex(in1,0),in2,size,out)
+
+#define d0z2catz2(in1,in2,size,out) z0z2OpCcz2(DoubleComplex(in1,0),in2,size,out)
+
+#define c0s2catc2(in1,in2,size,out) sfilla((float*)out,size[0],size[1],0); \
+ c0c2OpCcc2(in1,FloatComplexMatrix(in2,(float*)out,size[0]*size[1]),size,out)
+
+#define z0d2catz2(in1,in2,size,out) dfilla((double*)out,size[0],size[1],0); \
+ z0z2OpCcz2(in1,DoubleComplexMatrix(in2,(double*)out,size[0]*size[1]),size,out)
+
+
+#endif /* !__INT_CAT__H */
+
diff --git a/src/c/matrixOperations/interfaces/int_cross.h b/src/c/matrixOperations/interfaces/int_cross.h
new file mode 100644
index 00000000..8f4e7824
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_cross.h
@@ -0,0 +1,35 @@
+ /* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Brijesh Gupta C R
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_CROSS_H__
+#define __INT_CROSS_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+#define d2d2crossd2(in1,size1,in2,size2,out) dcrossa(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+#define z2z2crossz2(in1,size1,in2,size2,out) zcrossa(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+#define c2c2crossc2(in1,size1,in2,size2,out) ccrossa(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+#define s2s2crosss2(in1,size1,in2,size2,out) scrossa(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+#define u82u82crossu82(in1,size1,in2,size2,out) u8crossa(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+#define i82i82crossi82(in1,size1,in2,size2,out) i8crossa(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+#define u162u162crossu162(in1,size1,in2,size2,out) u16crossa(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+#define i162i162crossi162(in1,size1,in2,size2,out) i16crossa(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_CROSS_H__*/
diff --git a/src/c/matrixOperations/interfaces/int_cumprod.h b/src/c/matrixOperations/interfaces/int_cumprod.h
new file mode 100644
index 00000000..5ba3cc7a
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_cumprod.h
@@ -0,0 +1,54 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Siddhesh Wani
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __INT_CUMPROD_H__
+#define __INT_CUMPROD_H__
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d0cumprodd0(in) in
+#define s0cumprods0(in) in
+#define u80cumprodu80(in) in
+#define u160cumprodu160(in) in
+#define i80cumprodi80(in) in
+#define i160cumprodi160(in) in
+
+#define d2cumprodd2(in1, size1, out) dcumproda(in1, size1[0], size1[1], out)
+#define s2cumprods2(in1, size1, out) scumproda(in1, size1[0], size1[1], out)
+#define u82cumprodu82(in1, size1, out) u8cumproda(in1, size1[0], size1[1], out)
+#define u162cumprodu162(in1, size1, out) u16cumproda(in1, size1[0], size1[1], out)
+#define i82cumprodi82(in1, size1, out) i8cumproda(in1, size1[0], size1[1], out)
+#define i162cumprodi162(in1, size1, out) i16cumproda(in1, size1[0], size1[1], out)
+
+#define d2g2cumprodd2(in1, size1, in2, size2, out) (in2[0]=='r') ? \
+ drowcumproda(in1,size1[0],size1[1],out) : dcolumncumproda(in1,size1[0],size1[1],out)
+#define s2g2cumprods2(in1, size1, in2, size2, out) (in2[0]=='r') ? \
+ srowcumproda(in1,size1[0],size1[1],out) : scolumncumproda(in1,size1[0],size1[1],out)
+#define u82g2cumprodu82(in1, size1, in2, size2, out) (in2[0]=='r') ? \
+ u8rowcumproda(in1,size1[0],size1[1],out) : u8columncumproda(in1,size1[0],size1[1],out)
+#define i82g2cumprodi82(in1, size1, in2, size2, out) (in2[0]=='r') ? \
+ i8rowcumproda(in1,size1[0],size1[1],out) : i8columncumproda(in1,size1[0],size1[1],out)
+#define u162g2cumprodu162(in1, size1, in2, size2, out) (in2[0]=='r') ? \
+ u16rowcumproda(in1,size1[0],size1[1],out) : u16columncumproda(in1,size1[0],size1[1],out)
+#define i162g2cumprodi162(in1, size1, in2, size2, out) (in2[0]=='r') ? \
+ i16rowcumproda(in1,size1[0],size1[1],out) : i16columncumproda(in1,size1[0],size1[1],out)
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_CUMPROD_H__*/
diff --git a/src/c/matrixOperations/interfaces/int_cumsum.h b/src/c/matrixOperations/interfaces/int_cumsum.h
new file mode 100644
index 00000000..0eda0ac9
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_cumsum.h
@@ -0,0 +1,54 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Siddhesh Wani
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __INT_CUMSUM_H__
+#define __INT_CUMSUM_H__
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d0cumsumd0(in) in
+#define s0cumsums0(in) in
+#define u80cumsumu80(in) in
+#define u160cumsumu160(in) in
+#define i80cumsumi80(in) in
+#define i160cumsumi160(in) in
+
+#define d2cumsumd2(in1, size1, out) dcumsuma(in1, size1[0], size1[1], out)
+#define s2cumsums2(in1, size1, out) scumsuma(in1, size1[0], size1[1], out)
+#define u82cumsumu82(in1, size1, out) u8cumsuma(in1, size1[0], size1[1], out)
+#define u162cumsumu162(in1, size1, out) u16cumsuma(in1, size1[0], size1[1], out)
+#define i82cumsumi82(in1, size1, out) i8cumsuma(in1, size1[0], size1[1], out)
+#define i162cumsumi162(in1, size1, out) i16cumsuma(in1, size1[0], size1[1], out)
+
+#define d2g2cumsumd2(in1, size1, in2, size2, out) (in2[0]=='r') ? \
+ drowcumsuma(in1,size1[0],size1[1],out) : dcolumncumsuma(in1,size1[0],size1[1],out)
+#define s2g2cumsums2(in1, size1, in2, size2, out) (in2[0]=='r') ? \
+ srowcumsuma(in1,size1[0],size1[1],out) : scolumncumsuma(in1,size1[0],size1[1],out)
+#define u82g2cumsumu82(in1, size1, in2, size2, out) (in2[0]=='r') ? \
+ u8rowcumsuma(in1,size1[0],size1[1],out) : u8columncumsuma(in1,size1[0],size1[1],out)
+#define i82g2cumsumi82(in1, size1, in2, size2, out) (in2[0]=='r') ? \
+ i8rowcumsuma(in1,size1[0],size1[1],out) : i8columncumsuma(in1,size1[0],size1[1],out)
+#define u162g2cumsumu162(in1, size1, in2, size2, out) (in2[0]=='r') ? \
+ u16rowcumsuma(in1,size1[0],size1[1],out) : u16columncumsuma(in1,size1[0],size1[1],out)
+#define i162g2cumsumi162(in1, size1, in2, size2, out) (in2[0]=='r') ? \
+ i16rowcumsuma(in1,size1[0],size1[1],out) : i16columncumsuma(in1,size1[0],size1[1],out)
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_CUMSUM_H__*/
diff --git a/src/c/matrixOperations/interfaces/int_diag.h b/src/c/matrixOperations/interfaces/int_diag.h
new file mode 100644
index 00000000..339831b1
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_diag.h
@@ -0,0 +1,85 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Mushir
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __INT_DIAG_H__
+#define __INT_DIAG_H__
+
+
+
+#define d0diagd0(in1) ddiags(in1)
+
+#define d0d0diagd0(in1,in2) ddiags(in1)
+
+#define d0d0diagd2(in1,in2,out) ddiaga(in1,1,in2,out)
+
+#define d2diagd2(in1,size,out) if(size[0] != size[1]) { (size[0]==1) ? ddiagins(in1,size[1],out) : ddiagins(in1,size[0],out); } else {ddiagexa(in1,size[0],size[1],0,out) ;}
+
+#define d2d0diagd2(in1,size,in2,out) if((size[0] != 1) && (size[1] != 1) ) { ddiagexa(in1,size[0],size[1],in2,out); } else { if(in2 != 0) {ddiagina(in1,size[0],size[1],in2,out);} else { (size[0] == 1) ? ddiagins(in1,size[1],out) : ddiagins(in1,size[0],out); };}
+
+#define d2d0diagd0(in1,size,in2) ddiagexs(in1,size[0],size[1],in2)
+
+
+
+#define u80diagu80(in1) u8diags(in1)
+
+#define u80d0diagu80(in1,in2) u8diags(in1)
+
+#define u80d0diagu82(in1,in2,out) u8diaga(in1,1,in2,out)
+
+#define u82diagu82(in1,size,out) if(size[0] != size[1]) { (size[0]==1) ? u8diagins(in1,size[1],out) : u8diagins(in1,size[0],out); } else {u8diagexa(in1,size[0],size[1],0,out) ;}
+
+#define u82d0diagu82(in1,size,in2,out) if((size[0] != 1) && (size[1] != 1) ) { u8diagexa(in1,size[0],size[1],in2,out); } else { if(in2 != 0) {u8diagina(in1,size[0],size[1],in2,out);} else { (size[0] == 1) ? u8diagins(in1,size[1],out) : u8diagins(in1,size[0],out); };}
+
+#define u82d0diagu80(in1,size,in2) u8diagexs(in1,size[0],size[1],in2)
+
+#define u160diagu160(in1) u16diags(in1)
+
+#define u160d0diagu160(in1,in2) u16diags(in1)
+
+#define u160d0diagu162(in1,in2,out) u16diaga(in1,1,in2,out)
+
+#define u162diagu162(in1,size,out) if(size[0] != size[1]) { (size[0]==1) ? u16diagins(in1,size[1],out) : u16diagins(in1,size[0],out); } else {u16diagexa(in1,size[0],size[1],0,out) ;}
+
+#define u162d0diagu162(in1,size,in2,out) if((size[0] != 1) && (size[1] != 1) ) { u16diagexa(in1,size[0],size[1],in2,out); } else { if(in2 != 0) {u16diagina(in1,size[0],size[1],in2,out);} else { (size[0] == 1) ? u16diagins(in1,size[1],out) : u16diagins(in1,size[0],out); };}
+
+#define u162d0diagu160(in1,size,in2) u16diagexs(in1,size[0],size[1],in2)
+
+
+
+#define i80diagi80(in1) i8diags(in1)
+
+#define i80d0diagi80(in1,in2) i8diags(in1)
+
+#define i80d0diagi82(in1,in2,out) i8diaga(in1,1,in2,out)
+
+#define i82diagi82(in1,size,out) if(size[0] != size[1]) { (size[0]==1) ? i8diagins(in1,size[1],out) : i8diagins(in1,size[0],out); } else {i8diagexa(in1,size[0],size[1],0,out) ;}
+
+#define i82d0diagi82(in1,size,in2,out) if((size[0] != 1) && (size[1] != 1) ) { i8diagexa(in1,size[0],size[1],in2,out); } else { if(in2 != 0) {i8diagina(in1,size[0],size[1],in2,out);} else { (size[0] == 1) ? i8diagins(in1,size[1],out) : i8diagins(in1,size[0],out); };}
+
+#define i82d0diagi80(in1,size,in2) i8diagexs(in1,size[0],size[1],in2)
+
+#define i160diagi160(in1) i16diags(in1)
+
+#define i160d0diagi160(in1,in2) i16diags(in1)
+
+#define i160d0diagi162(in1,in2,out) i16diaga(in1,1,in2,out)
+
+
+#define i162diagi162(in1,size,out) if(size[0] != size[1]) { (size[0]==1) ? i16diagins(in1,size[1],out) : i16diagins(in1,size[0],out); } else {i16diagexa(in1,size[0],size[1],0,out) ;}
+
+#define i162d0diagi162(in1,size,in2,out) if((size[0] != 1) && (size[1] != 1) ) { i16diagexa(in1,size[0],size[1],in2,out); } else { if(in2 != 0) {i16diagina(in1,size[0],size[1],in2,out);} else { (size[0] == 1) ? i16diagins(in1,size[1],out) : i16diagins(in1,size[0],out); };}
+
+#define i162d0diagi160(in1,size,in2) i16diagexs(in1,size[0],size[1],in2)
+
+
+
+#endif /* !__INT_DIAG_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_eye.h b/src/c/matrixOperations/interfaces/int_eye.h
index 81ed7fdd..1e10eb83 100644
--- a/src/c/matrixOperations/interfaces/int_eye.h
+++ b/src/c/matrixOperations/interfaces/int_eye.h
@@ -20,7 +20,13 @@
#define eyed0() 1
+#define eyeu80() (uint8)1
+#define eyei80() (int8)1
+
+#define eyeu160() (uint16)1
+
+#define eyei160() (int16)1
#define s0eyes0(in) seyes(in)
@@ -30,16 +36,37 @@
#define z0eyez0(in) zeyes(in)
+#define u80eyeu80(in) u8eyes(in)
+
+#define i80eyei80(in) i8eyes(in)
+
+#define u160eyeu160(in) u16eyes(in)
+
+#define i160eyei160(in) i16eyes(in)
#define s0s0eyes0(in1,in2) 1.0f
#define d0d0eyed0(in,in2) 1
+#define u80u80eyeu80(in1,in2) (uint8)1
+
+#define i80i80eyei80(in1,in2) (int8)1
+
+#define u160u160eyeu160(in1,in2) (uint16)1
+
+#define i160i160eyei160(in1,in2) (int16)1
#define s0s0eyes2(in1,in2,out) seyea(out, in1, in2)
#define d0d0eyed2(in1,in2,out) deyea(out, in1, in2)
+#define u80u80eyeu82(in1,in2,out) u8eyea(out, in1, in2)
+
+#define i80i80eyei82(in1,in2,out) i8eyea(out, in1, in2)
+
+#define u160u160eyeu162(in1,in2,out) u16eyea(out, in1, in2)
+
+#define i160i160eyei162(in1,in2,out) i16eyea(out, in1, in2)
#define s2eyes2(in,size,out) seyea(out, size[0], size[1])
@@ -49,5 +76,13 @@
#define z2eyez2(in,size,out) zeyea(out, size[0], size[1])
+#define u82eyeu82(in,size,out) u8eyea(out, size[0], size[1])
+
+#define i82eyei82(in,size,out) i8eyea(out, size[0], size[1])
+
+#define u162eyeu162(in,size,out) u16eyea(out, size[0], size[1])
+
+#define i162eyei162(in,size,out) i16eyea(out, size[0], size[1])
+
#endif /* !__INT_EYE_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_flipdim.h b/src/c/matrixOperations/interfaces/int_flipdim.h
new file mode 100644
index 00000000..0c27181f
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_flipdim.h
@@ -0,0 +1,109 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Siddhesh Wani
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __INT_FLIPDIM_H__
+#define __INT_FLIPDIM_H__
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d0d0flipdimd0(in1, in2) in1
+#define s0s0flipdims0(in1, in2) in1
+#define u80u80flipdimu80(in1, in2) in1
+#define i80i80flipdimi80(in1, in2) in1
+#define u160u160flipdimu160(in1, in2) in1
+#define i160i160flipdimi160(in1, in2) in1
+#define u80d0flipdimu80(in1, in2) in1
+#define i80d0flipdimi80(in1, in2) in1
+#define u160d0flipdimu160(in1, in2) in1
+#define i160d0flipdimi160(in1, in2) in1
+
+#define d0d0d0flipdimd0(in1, in2, in3) in1
+#define s0s0s0flipdims0(in1, in2, in3) in1
+#define u80u80u80flipdimu80(in1, in2, in3) in1
+#define i80i80i80flipdimi80(in1, in2, in3) in1
+#define u160u160u160flipdimu160(in1, in2, in3) in1
+#define i160i160i160flipdimi160(in1, in2, in3) in1
+#define u80d0d0flipdimu80(in1, in2, in3) in1
+#define i80d0d0flipdimi80(in1, in2, in3) in1
+#define u160d0d0flipdimu160(in1, in2, in3) in1
+#define i160d0d0flipdimi160(in1, in2, in3) in1
+
+
+#define d2d0flipdimd2(in1, size1, in2, out) dflipdima (in1, size1[0], size1[1], \
+ in2, 1, out);
+
+#define s2s0flipdims2(in1, size1, in2, out) sflipdima (in1, size1[0], size1[1], \
+ in2, 1, out);
+
+#define u82u80flipdimu82(in1, size1, in2, out) u8flipdima (in1, size1[0], size1[1], \
+ in2, 1, out);
+
+#define i82i80flipdimi82(in1, size1, in2, out) i8flipdima (in1, size1[0], size1[1], \
+ in2, 1, out);
+
+#define u162u160flipdimu162(in1, size1, in2, out) u16flipdima (in1, size1[0], size1[1], \
+ in2, 1, out);
+
+#define i162i160flipdimi162(in1, size1, in2, out) i16flipdima (in1, size1[0], size1[1], \
+ in2, 1, out);
+
+#define u82d0flipdimu82(in1, size1, in2, out) u8flipdima (in1, size1[0], size1[1], \
+ in2, 1, out);
+
+#define i82d0flipdimi82(in1, size1, in2, out) i8flipdima (in1, size1[0], size1[1], \
+ in2, 1, out);
+
+#define u162d0flipdimu162(in1, size1, in2, out) u16flipdima (in1, size1[0], size1[1], \
+ in2, 1, out);
+
+#define i162d0flipdimi162(in1, size1, in2, out) i16flipdima (in1, size1[0], size1[1], \
+ in2, 1, out);
+
+#define d2d0d0flipdimd2(in1, size1, in2, in3, out) dflipdima(in1, size1[0], size1[1], \
+ in2, in3, out);
+
+#define s2s0s0flipdims2(in1, size1, in2, in3, out) sflipdima(in1, size1[0], size1[1], \
+ in2, in3, out);
+
+#define u82u80u80flipdimu82(in1, size1, in2, in3, out) u8flipdima(in1, size1[0], size1[1], \
+ in2, in3, out);
+
+#define i82i80i80flipdimi82(in1, size1, in2, in3, out) i8flipdima(in1, size1[0], size1[1], \
+ in2, in3, out);
+
+#define u162u160u160flipdimu162(in1, size1, in2, in3, out) u16flipdima(in1, size1[0], size1[1], \
+ in2, in3, out);
+
+#define i162i160i160flipdimi162(in1, size1, in2, in3, out) i16flipdima(in1, size1[0], size1[1], \
+ in2, in3, out);
+
+#define u82d0d0flipdimu82(in1, size1, in2, in3, out) u8flipdima(in1, size1[0], size1[1], \
+ in2, in3, out);
+
+#define i82d0d0flipdimi82(in1, size1, in2, in3, out) i8flipdima(in1, size1[0], size1[1], \
+ in2, in3, out);
+
+#define u162d0d0flipdimu162(in1, size1, in2, in3, out) u16flipdima(in1, size1[0], size1[1], \
+ in2, in3, out);
+
+#define i162d0d0flipdimi162(in1, size1, in2, in3, out) i16flipdima(in1, size1[0], size1[1], \
+ in2, in3, out);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_FLIPDIM_H__*/
diff --git a/src/c/matrixOperations/interfaces/int_invert.h b/src/c/matrixOperations/interfaces/int_invert.h
index d31481b6..285a0f4a 100644
--- a/src/c/matrixOperations/interfaces/int_invert.h
+++ b/src/c/matrixOperations/interfaces/int_invert.h
@@ -23,6 +23,14 @@
#define z0invz0(in) zrdivs(DoubleComplex(1,0),in)
+#define u80invs0(in) 1.0f/(float)in
+
+#define i80invs0(in) 1.0f/(float)in
+
+#define u160invs0(in) 1.0f/(float)in
+
+#define i160invs0(in) 1.0f/(float)in
+
#define s2invs2(in,size,out) sinverma(in, out, size[0])
#define d2invd2(in,size,out) dinverma(in, out, size[0])
@@ -31,4 +39,12 @@
#define z2invz2(in,size,out) zinverma(in, out, size[0])
+#define u82invs2(in,size,out) u8inverma(in, out, size[0])
+
+#define i82invs2(in,size,out) i8inverma(in, out, size[0])
+
+#define u162invs2(in,size,out) u16inverma(in, out, size[0])
+
+#define i162invs2(in,size,out) i16inverma(in, out, size[0])
+
#endif /* !__INT_INV_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_kron.h b/src/c/matrixOperations/interfaces/int_kron.h
new file mode 100644
index 00000000..a6fbaab1
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_kron.h
@@ -0,0 +1,43 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Siddhesh Wani
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __INT_KRON_H__
+#define __INT_KRON_H__
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d0d0krond0(in1, in2) in1*in2
+#define s0s0krons0(in1, in2) in1*in2
+
+#define d0d2krond2(in1, in2, size2, out) {int i; \
+ for(i=0;i < size2[0]*size2[1];i++) out[i] = in2[i]*in1;}
+#define s0s2krons2(in1, in2, size2, out) {int i; \
+ for(i=0;i < size2[0]*size2[1];i++) out[i] = in2[i]*in1;}
+
+#define d2d0krond2(in1, size1, in2, out) {int i; \
+ for(i=0;i < size1[0]*size1[1];i++) out[i] = in1[i]*in2;}
+#define s2s0krons2(in1, in2, size2, out) {int i; \
+ for(i=0;i < size2[0]*size2[1];i++) out[i] = in2[i]*in1;}
+
+#define d2d2krond2(in1, size1, in2, size2, out) dkrona(in1, size1[0], size1[1], \
+ in2, size2[0], size2[1], out);
+#define s2s2krons2(in1, size1, in2, size2, out) skrona(in1, size1[0], size1[1], \
+ in2, size2[0], size2[1], out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_KRON_H__*/
diff --git a/src/c/matrixOperations/interfaces/int_matrix.h b/src/c/matrixOperations/interfaces/int_matrix.h
new file mode 100644
index 00000000..5935f4a3
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_matrix.h
@@ -0,0 +1,49 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __INT_MATRIX_H__
+#define __INT_MATRIX_H__
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2d0d0matrixd2(in1, size, in2, in3, out ) dmatrixa(in1, size[0], size[1], in2, in3, out)
+#define d2s0s0matrixd2(in1, size, in2, in3, out ) dmatrixa(in1, size[0], size[1], in2, in3, out)
+//#define d2u160u160matrixd2(in1, size, in2, in3, out ) dmatrixa(in1, size[0], size[1], in2, in3, out)
+//#define d2u80u80matrixd2(in1, size, in2, in3, out ) dmatrixa(in1, size[0], size[1], in2, in3, out)
+
+#define s2d0d0matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+#define s2s0s0matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+//#define s2u160u160matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+//#define s2u80u80matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+
+#define u162d0d0matrixu162(in1, size, in2, in3, out ) u16matrixa(in1, size[0], size[1], in2, in3, out)
+#define u162s0s0matrixu162(in1, size, in2, in3, out ) u16matrixa(in1, size[0], size[1], in2, in3, out)
+//#define s2u160u160matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+//#define s2u80u80matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+
+#define z2d0d0matrixz2(in1, size, in2, in3, out ) zmatrixa(in1, size[0], size[1], in2, in3, out)
+#define z2s0s0matrixz2(in1, size, in2, in3, out ) zmatrixa(in1, size[0], size[1], in2, in3, out)
+//#define s2u160u160matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+//#define s2u80u80matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+
+
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_MATRIX_H__*/
diff --git a/src/c/matrixOperations/interfaces/int_ndgrid.h b/src/c/matrixOperations/interfaces/int_ndgrid.h
new file mode 100644
index 00000000..b7fd0a65
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_ndgrid.h
@@ -0,0 +1,28 @@
+ /* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Brijesh Gupta C R
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_NDGRID_H__
+#define __INT_NDGRID_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2d2ndgridd2d2(in1,size1,in2,size2,out1,out2) dndgrida(in1,size1[0]*size1[1],in2,size2[0]*size2[1],out1,out2)
+#define s2s2ndgrids2s2(in1,size1,in2,size2,out1,out2) sndgrida(in1,size1[0]*size1[1],in2,size2[0]*size2[1],out1,out2)
+#define z2z2ndgridz2z2(in1,size1,in2,size2,out1,out2) zndgrida(in1,size1[0]*size1[1],in2,size2[0]*size2[1],out1,out2)
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_NDGRID_H__*/
diff --git a/src/c/matrixOperations/interfaces/int_nnz.h b/src/c/matrixOperations/interfaces/int_nnz.h
new file mode 100644
index 00000000..0ef39536
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_nnz.h
@@ -0,0 +1,35 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __INT_NNZ_H__
+#define __INT_NNZ_H__
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2nnzu160(in1, size) dnnza(in1, size[0], size[1])
+#define d0nnzu160(in) dnnzs(in)
+
+#define s2nnzu160(in1, size) snnza(in1, size[0], size[1])
+#define s0nnzu160(in) snnzs(in)
+
+#define z2nnzu160(in1, size) znnza(in1, size[0], size[1])
+#define z0nnzu160(in) znnzs(in)
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_NNZ_H__*/
diff --git a/src/c/matrixOperations/interfaces/int_norm.h b/src/c/matrixOperations/interfaces/int_norm.h
new file mode 100644
index 00000000..a42a6754
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_norm.h
@@ -0,0 +1,53 @@
+ /* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Siddhesh Wani
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_NORM_H__
+#define __INT_NORM_H__
+
+#include "statMax.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d0normd0(in) in
+#define s0norms0(in) in
+
+#define d2normd0(in,size,out) ((size[0] == 1) || (size[1]==1))? \
+ dnormv(in, size[0]*size[1], 2): \
+ dnorma(in, size[0], size[1], 2)
+
+#define s2norms0(in,size,out) ((size[0] == 1) || (size[1]==1))? \
+ snormv(in, size[0]*size[1], 2): \
+ snorma(in, size[0], size[1], 2)
+
+#define d2d0normd0(in,size,norm) ((size[0] == 1) || (size[1]==1))? \
+ dnormv(in,size[0]*size[1],norm) : \
+ dnorma(in,size[0],size[1],norm)
+
+#define s2s0norms0(in,size,norm) ((size[0] == 1) || (size[1]==1))? \
+ snormv(in,size[0]*size[1],norm) : \
+ snorma(in,size[0],size[1],norm)
+
+#define d2g2normd0(in,size,norm,normsize) ((size[0] == 1) || (size[1]==1))? \
+ (norm[0]=='i') ? dmaxa(in,size[0]*size[1]) : dnormv(in,size[0]*size[1],2) : \
+ (norm[0]=='i') ? dnorma(in,size[0],size[1],3) : dnorma(in,size[0],size[1],4)
+
+#define s2g2norms0(in,size,norm,normsize) ((size[0] == 1) || (size[1]==1))? \
+ (norm[0]=='i') ? smaxa(in,size[0]*size[1]) : snormv(in,size[0]*size[1],2) : \
+ (norm[0]=='i') ? snorma(in,size[0],size[1],3) : snorma(in,size[0],size[1],4)
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_NORM_H__*/
diff --git a/src/c/matrixOperations/interfaces/int_ones.h b/src/c/matrixOperations/interfaces/int_ones.h
index 0259b4c6..e266ee52 100644
--- a/src/c/matrixOperations/interfaces/int_ones.h
+++ b/src/c/matrixOperations/interfaces/int_ones.h
@@ -20,7 +20,13 @@
#define onesd0() 1
+#define onesu80() (uint8)1
+#define onesi80() (int8)1
+
+#define onesu160() (uint16)1
+
+#define onesi160() (int16)1
#define s0oness0(in) soness(in)
@@ -30,16 +36,37 @@
#define z0onesz0(in) zoness(in)
+#define u80onesu80(in) u8oness(in)
+
+#define i80onesi80(in) i8oness(in)
+
+#define u160onesu160(in) u16oness(in)
+
+#define i160onesi160(in) i16oness(in)
#define s0s0oness0(in1,in2) 1.0f
#define d0d0onesd0(in,in2) 1
+#define u80u80onesu80(in1,in2) (uint8)1
+
+#define i80i80onesi80(in1,in2) (int8)1
+
+#define u160u160onesu160(in1,in2) (uint16)1
+
+#define i160i160onesi160(in1,in2) (int16)1
#define s0s0oness2(in1,in2,out) sonesa(out, in1, in2)
#define d0d0onesd2(in1,in2,out) donesa(out, in1, in2)
+#define u80u80onesu82(in1,in2,out) u8onesa(out, in1, in2)
+
+#define i80i80onesi82(in1,in2,out) i8onesa(out, in1, in2)
+
+#define u160u160onesu162(in1,in2,out) u16onesa(out, in1, in2)
+
+#define i160i160onesi162(in1,in2,out) i16onesa(out, in1, in2)
#define s2oness2(in,size,out) sonesa(out, size[0], size[1])
@@ -49,5 +76,12 @@
#define z2onesz2(in,size,out) zonesa(out, size[0], size[1])
+#define u82onesu82(in,size,out) u8onesa(out, size[0], size[1])
+
+#define i82onesi82(in,size,out) i8onesa(out, size[0], size[1])
+
+#define u162onesu162(in,size,out) u16onesa(out, size[0], size[1])
+
+#define i162onesi162(in,size,out) i16onesa(out, size[0], size[1])
#endif /* !__INT_ONES_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_permute.h b/src/c/matrixOperations/interfaces/int_permute.h
new file mode 100644
index 00000000..66049aca
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_permute.h
@@ -0,0 +1,28 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Siddhesh Wani
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __INT_PERMUTE_H__
+#define __INT_PERMUTE_H__
+
+
+#ifdef __cplusplus
+#extern "C" {
+#endif
+
+#define d2d2permuted2(in1, size1, in2, size2, out) (if(in2[0]==1)?in1: \
+ dtransposea(in1, size1[0],size1[1],out))
+
+#ifdef __cplusplus
+#} /* extern "C" */
+#endif
+
+#endif /*__INT_FLIPDIM_H__*/
diff --git a/src/c/matrixOperations/interfaces/int_pertrans.h b/src/c/matrixOperations/interfaces/int_pertrans.h
new file mode 100644
index 00000000..8aa8ec5e
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_pertrans.h
@@ -0,0 +1,34 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __INT_PERTRANS_H__
+#define __INT_PERTRANS_H__
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2pertransd2(in1, size, out) dpertransa(in1, size[0], size[1], out)
+#define d0pertransd0(in1) dpertranss(in1)
+
+#define s2pertranss2(in1, size, out) spertransa(in1, size[0], size[1], out)
+#define s0pertranss0(in1) spertranss(in1)
+
+#define z2pertransz2(in1, size, out) zpertransa(in1, size[0], size[1], out)
+#define z0pertransz0(in1) zpertranss(in1)
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_PERTRANS_H__*/
diff --git a/src/c/matrixOperations/interfaces/int_toeplitz.h b/src/c/matrixOperations/interfaces/int_toeplitz.h
new file mode 100644
index 00000000..b602e9a8
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_toeplitz.h
@@ -0,0 +1,50 @@
+ /* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Brijesh Gupta C R
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_TOEPLITZ_H__
+#define __INT_TOEPLITZ_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2d2toeplitzd2(in1,size1,in2,size2,out) dtoeplitza(in1,size1[1],in2,size2[1],out)
+#define d2toeplitzd2(in1,size1,out) dtoeplitza(in1,size1[1],in1,size1[1],out)
+
+#define u82u82toeplitzu82(in1,size1,in2,size2,out) u8toeplitza(in1,size1[1],in2,size2[1],out)
+#define u82toeplitzu82(in1,size1,out) u8toeplitza(in1,size1[1],in1,size1[1],out)
+
+#define u162u162toeplitzu162(in1,size1,in2,size2,out) u16toeplitza(in1,size1[1],in2,size2[1],out)
+#define u162toeplitzu162(in1,size1,out) u16toeplitza(in1,size1[1],in1,size1[1],out)
+
+#define g2g2toeplitzg2(in1,size1,in2,size2,out) gtoeplitza(in1,size1[1],in2,size2[1],out)
+#define g2toeplitzg2(in1,size1,out) gtoeplitza(in1,size1[1],in1,size1[1],out)
+
+#define z2z2toeplitzz2(in1,size1,in2,size2,out) ztoeplitza(in1,size1[1],in2,size2[1],out)
+#define z2toeplitzz2(in1,size1,out) ztoeplitza(in1,size1[1],in1,size1[1],out)
+
+#define s2s2toeplitzs2(in1,size1,in2,size2,out) stoeplitza(in1,size1[1],in2,size2[1],out)
+#define s2toeplitzs2(in1,size1,out) stoeplitza(in1,size1[1],in1,size1[1],out)
+
+#define c2c2toeplitzc2(in1,size1,in2,size2,out) ctoeplitza(in1,size1[1],in2,size2[1],out)
+#define c2toeplitzc2(in1,size1,out) ctoeplitza(in1,size1[1],in1,size1[1],out)
+
+#define i82i82toeplitzi82(in1,size1,in2,size2,out) i8toeplitza(in1,size1[1],in2,size2[1],out)
+#define i82toeplitzi82(in1,size1,out) i8toeplitza(in1,size1[1],in1,size1[1],out)
+
+#define i162i162toeplitzi162(in1,size1,in2,size2,out) i16toeplitza(in1,size1[1],in2,size2[1],out)
+#define i162toeplitzi162(in1,size1,out) i16toeplitza(in1,size1[1],in1,size1[1],out)
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_TOEPLITZ_H__*/
diff --git a/src/c/matrixOperations/interfaces/int_trace.h b/src/c/matrixOperations/interfaces/int_trace.h
index 8bfea860..58c42991 100644
--- a/src/c/matrixOperations/interfaces/int_trace.h
+++ b/src/c/matrixOperations/interfaces/int_trace.h
@@ -21,7 +21,13 @@
#define c0tracec0(in) in
-#define z0tracez0(in) in
+#define u80traceu80(in) (uint8)in
+
+#define u160traceu160(in) (uint16)in
+
+#define i80tracei80(in) (int8)in
+
+#define i160tracei160(in) (int16)in
#define s2traces0(in,size) stracea(in, size[0])
@@ -31,4 +37,12 @@
#define z2tracez0(in,size) ztracea(in, size[0])
+#define u82traceu80(in,size) u8tracea(in, size[0])
+
+#define u162traceu160(in,size) u16tracea(in, size[0])
+
+#define i82tracei80(in,size) i8tracea(in, size[0])
+
+#define i162tracei160(in,size) i16trace(in,size[0])
+
#endif /* !__INT_TRACE_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_transpose.h b/src/c/matrixOperations/interfaces/int_transpose.h
index 250d565f..3fd328f6 100644
--- a/src/c/matrixOperations/interfaces/int_transpose.h
+++ b/src/c/matrixOperations/interfaces/int_transpose.h
@@ -23,6 +23,14 @@
#define z0transposez0(in) in
+#define u80transposeu80(in) (uint8)in
+
+#define u160transposeu160(in) (uint16)in
+
+#define i80transposei80(in) (int8)in
+
+#define i160transposei160(in) (int16)in
+
#define s2transposes2(in,size,out) stransposea(in, size[0], size[1], out)
#define d2transposed2(in,size,out) dtransposea(in, size[0], size[1], out)
@@ -31,4 +39,13 @@
#define z2transposez2(in,size,out) ztransposea(in, size[0], size[1], out)
+
+#define u82transposeu82(in,size,out) u8transposea(in, size[0], size[1], out)
+
+#define u162transposeu162(in,size,out) u16transposea(in, size[0], size[1], out)
+
+#define i82transposei82(in,size,out) i8transposea(in, size[0], size[1], out)
+
+#define i162transposei162(in,size,out) i16transposea(in, size[0], size[1], out)
+
#endif /* !__INT_TRANSPOSE_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_tril.h b/src/c/matrixOperations/interfaces/int_tril.h
new file mode 100644
index 00000000..6d694519
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_tril.h
@@ -0,0 +1,62 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Siddhesh Wani
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __INT_TRIL_H__
+#define __INT_TRIL_H__
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d0trild0(in) in
+#define s0trils0(in) in
+#define u80trilu80(in) in
+#define u160trilu160(in) in
+#define i80trili80(in) in
+#define i160trili160(in) in
+
+#define d0d0trild0(in1, in2) (in2 == 0 ? in1 : 0)
+#define s0s0trils0(in1, in2) (in2 == 0 ? in1 : 0)
+#define u80u80trilu80(in1, in2) (in2 == 0 ? in1 : 0)
+#define i80i80trili80(in1, in2) (in2 == 0 ? in1 : 0)
+#define u160u160trilu160(in1, in2) (in2 == 0 ? in1 : 0)
+#define i160i160trili160(in1, in2) (in2 == 0 ? in1 : 0)
+#define u80d0trilu80(in1, in2) (in2 == 0 ? in1 : 0)
+#define i80d0trili80(in1, in2) (in2 == 0 ? in1 : 0)
+#define u160d0trilu160(in1, in2) (in2 == 0 ? in1 : 0)
+#define i160d0trili160(in1, in2) (in2 == 0 ? in1 : 0)
+
+#define d2trild2(in, size, out) dtrila(in, size[0], size[1], 0, out);
+#define s2trils2(in, size, out) strila(in, size[0], size[1], 0, out);
+#define u82trilu82(in, size, out) u8trila(in, size[0], size[1], 0, out);
+#define u162trilu162(in, size, out) u16trila(in, size[0], size[1], 0, out);
+#define i82trili82(in, size, out) i8trila(in, size[0], size[1], 0, out);
+#define i162trili162(in, size, out) i16trila(in, size[0], size[1], 0, out);
+
+#define d2d0trild2(in1, size1, in2, out) dtrila(in1, size1[0], size1[1], in2, out);
+#define s2s0trils2(in1, size1, in2, out) strila(in1, size1[0], size1[1], in2, out);
+#define u82u80trilu82(in1, size1, in2, out) u8trila(in1, size1[0], size1[1], (double)in2, out);
+#define i82i80trili82(in1, size1, in2, out) i8trila(in1, size1[0], size1[1], (double)in2, out);
+#define u162u160trilu162(in1, size1, in2, out) u16trila(in1, size1[0], size1[1], (double)in2, out);
+#define i162i160trili162(in1, size1, in2, out) i16trila(in1, size1[0], size1[1], (double)in2, out);
+#define u82d0trilu82(in1, size1, in2, out) u8trila(in1, size1[0], size1[1], in2, out);
+#define i82d0trili82(in1, size1, in2, out) i8trila(in1, size1[0], size1[1], in2, out);
+#define u162d0trilu162(in1, size1, in2, out) u16trila(in1, size1[0], size1[1], in2, out);
+#define i162d0trili162(in1, size1, in2, out) i16trila(in1, size1[0], size1[1], in2, out);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_TRIL_H__*/
diff --git a/src/c/matrixOperations/interfaces/int_triu.h b/src/c/matrixOperations/interfaces/int_triu.h
new file mode 100644
index 00000000..1aef3115
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_triu.h
@@ -0,0 +1,62 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Siddhesh Wani
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __INT_TRIU_H__
+#define __INT_TRIU_H__
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d0triud0(in) in
+#define s0trius0(in) in
+#define u80triuu80(in) in
+#define u160triuu160(in) in
+#define i80triui80(in) in
+#define i160triui160(in) in
+
+#define d0d0triud0(in1, in2) (in2 == 0 ? in1 : 0)
+#define s0s0trius0(in1, in2) (in2 == 0 ? in1 : 0)
+#define u80u80triuu80(in1, in2) (in2 == 0 ? in1 : 0)
+#define i80i80triui80(in1, in2) (in2 == 0 ? in1 : 0)
+#define u160u160triuu160(in1, in2) (in2 == 0 ? in1 : 0)
+#define i160i160triui160(in1, in2) (in2 == 0 ? in1 : 0)
+#define u80d0triuu80(in1, in2) (in2 == 0 ? in1 : 0)
+#define i80d0triui80(in1, in2) (in2 == 0 ? in1 : 0)
+#define u160d0triuu160(in1, in2) (in2 == 0 ? in1 : 0)
+#define i160d0triui160(in1, in2) (in2 == 0 ? in1 : 0)
+
+#define d2triud2(in, size, out) dtriua(in, size[0], size[1], 0, out);
+#define s2trius2(in, size, out) striua(in, size[0], size[1], 0, out);
+#define u82triuu82(in, size, out) u8triua(in, size[0], size[1], 0, out);
+#define u162triuu162(in, size, out) u16triua(in, size[0], size[1], 0, out);
+#define i82triui82(in, size, out) i8triua(in, size[0], size[1], 0, out);
+#define i162triui162(in, size, out) i16triua(in, size[0], size[1], 0, out);
+
+#define d2d0triud2(in1, size1, in2, out) dtriua(in1, size1[0], size1[1], in2, out);
+#define s2s0trius2(in1, size1, in2, out) striua(in1, size1[0], size1[1], in2, out);
+#define u82u80triuu82(in1, size1, in2, out) u8triua(in1, size1[0], size1[1], (double)in2, out);
+#define i82i80triui82(in1, size1, in2, out) i8triua(in1, size1[0], size1[1], (double)in2, out);
+#define u162u160triuu162(in1, size1, in2, out) u16triua(in1, size1[0], size1[1], (double)in2, out);
+#define i162i160triui162(in1, size1, in2, out) i16triua(in1, size1[0], size1[1], (double)in2, out);
+#define u82d0triuu82(in1, size1, in2, out) u8triua(in1, size1[0], size1[1], in2, out);
+#define i82d0triui82(in1, size1, in2, out) i8triua(in1, size1[0], size1[1], in2, out);
+#define u162d0triuu162(in1, size1, in2, out) u16triua(in1, size1[0], size1[1], in2, out);
+#define i162d0triui162(in1, size1, in2, out) i16triua(in1, size1[0], size1[1], in2, out);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_TRIU_H__*/
diff --git a/src/c/matrixOperations/interfaces/int_vmagn.h b/src/c/matrixOperations/interfaces/int_vmagn.h
index 8a51755e..a8647aa2 100644
--- a/src/c/matrixOperations/interfaces/int_vmagn.h
+++ b/src/c/matrixOperations/interfaces/int_vmagn.h
@@ -24,6 +24,14 @@
#define z0vmagnz0(in) zmagns(in)
+#define u80vmagnu80(in) u8magns(in)
+
+#define u160vmagnu160(in) u16magns(in)
+
+#define i80vmagni80(in) i8magns(in)
+
+#define i160vmagni160(in) i16magns(in)
+
#define s2vmagns2(in,size) smagna(in, size[0], size[1])
#define d2vmagnd2(in,size) dmagna(in, size[0], size[1])
@@ -32,4 +40,12 @@
#define z2vmagnz2(in,size) zmagna(in, size[0], size[1])
+#define u82vmagnu82(in,size) u8magna(in, size[0], size[1])
+
+#define u162vmagnu162(in,size) u16magna(in, size[0], size[1])
+
+#define i82vmagni82(in,size) i8magna(in, size[0], size[1])
+
+#define i162vmagni162(in,size) i16magna(in, size[0], size[1])
+
#endif /* !__INT_VMAGN_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_zeros.h b/src/c/matrixOperations/interfaces/int_zeros.h
index 4bc32138..ac7e020e 100644
--- a/src/c/matrixOperations/interfaces/int_zeros.h
+++ b/src/c/matrixOperations/interfaces/int_zeros.h
@@ -21,7 +21,13 @@
#define zerosd0() 0
+#define zerosu80() (uint8)0
+#define zerosi80() (int8)0
+
+#define zerosu160() (uint16)0
+
+#define zerosi160() (int16)0
#define s0zeross0(in) szeross(in)
@@ -31,16 +37,37 @@
#define z0zerosz0(in) zzeross(in)
+#define u80zerosu80(in) u8zeross(in)
+
+#define i80zerosi80(in) i8zeross(in)
+
+#define u160zerosu160(in) u16zeross(in)
+
+#define i160zerosi160(in) i16zeross(in)
#define s0s0zeross0(in1,in2) 0.0f
-#define d0d0zerosd0(in,in2) 0
+#define d0d0zerosd0(in1,in2) 0
+
+#define u80u80zerosu80(in1,in2) (uint8)0
+
+#define i80i80zerosi80(in1,in2) (int8)0
+
+#define u160u160zerosu160(in1,in2) (uint16)0
+#define i160i160zerosi160(in1,in2) (int16)0
#define s0s0zeross2(in1,in2,out) szerosa(out, in1, in2)
#define d0d0zerosd2(in1,in2,out) dzerosa(out, in1, in2)
+#define u80u80zerosu82(in1,in2,out) u8zerosa(out, in1, in2)
+
+#define i80i80zerosi82(in1,in2,out) i8zerosa(out, in1, in2)
+
+#define u160u160zerosu162(in1,in2,out) u16zerosa(out, in1, in2)
+
+#define i160i160zerosi162(in1,in2,out) i16zerosa(out, in1, in2)
#define s2zeross2(in,size,out) szerosa(out, size[0], size[1])
@@ -50,5 +77,13 @@
#define z2zerosz2(in,size,out) zzerosa(out, size[0], size[1])
+#define u82zerosu82(in,size,out) u8zerosa(out, size[0], size[1])
+
+#define i82zerosi82(in,size,out) i8zerosa(out, size[0], size[1])
+
+#define u162zerosu162(in,size,out) u16zerosa(out, size[0], size[1])
+
+#define i162zerosi162(in,size,out) i16zerosa(out, size[0], size[1])
+
#define d0d0d0zerosd3(in1, in2, in3, out) dzerosh(out, in1, in2, in3);
#endif /* !__INT_ZEROS_H__ */
diff --git a/src/c/matrixOperations/interfaces/interface.sh b/src/c/matrixOperations/interfaces/interface.sh
index 8c7f073b..8c7f073b 100755..100644
--- a/src/c/matrixOperations/interfaces/interface.sh
+++ b/src/c/matrixOperations/interfaces/interface.sh