summaryrefslogtreecommitdiff
path: root/src/c/matrixOperations/interfaces
diff options
context:
space:
mode:
authorAnkit Raj2017-06-21 10:26:59 +0530
committerAnkit Raj2017-06-21 10:26:59 +0530
commit958577cac90a99124cd673fde1926781d966d91f (patch)
tree134d9fe7f5b97a647cb055bb7b4c21820a749f49 /src/c/matrixOperations/interfaces
downloadScilab2C_fossee_old-958577cac90a99124cd673fde1926781d966d91f.tar.gz
Scilab2C_fossee_old-958577cac90a99124cd673fde1926781d966d91f.tar.bz2
Scilab2C_fossee_old-958577cac90a99124cd673fde1926781d966d91f.zip
Updated Scilab2C
Diffstat (limited to 'src/c/matrixOperations/interfaces')
-rw-r--r--src/c/matrixOperations/interfaces/int_OpApex.h34
-rw-r--r--src/c/matrixOperations/interfaces/int_OpBackSlash.h37
-rw-r--r--src/c/matrixOperations/interfaces/int_OpCc.h134
-rw-r--r--src/c/matrixOperations/interfaces/int_OpDotApex.h34
-rw-r--r--src/c/matrixOperations/interfaces/int_OpRc.h139
-rw-r--r--src/c/matrixOperations/interfaces/int_OpSlash.h38
-rw-r--r--src/c/matrixOperations/interfaces/int_OpStar.h45
-rw-r--r--src/c/matrixOperations/interfaces/int_cat.h359
-rw-r--r--src/c/matrixOperations/interfaces/int_chol.h34
-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_det.h34
-rw-r--r--src/c/matrixOperations/interfaces/int_diag.h85
-rw-r--r--src/c/matrixOperations/interfaces/int_dist.h34
-rw-r--r--src/c/matrixOperations/interfaces/int_expm.h26
-rw-r--r--src/c/matrixOperations/interfaces/int_eye.h88
-rw-r--r--src/c/matrixOperations/interfaces/int_fill.h51
-rw-r--r--src/c/matrixOperations/interfaces/int_flipdim.h109
-rw-r--r--src/c/matrixOperations/interfaces/int_invert.h50
-rw-r--r--src/c/matrixOperations/interfaces/int_kron.h43
-rw-r--r--src/c/matrixOperations/interfaces/int_norm.h53
-rw-r--r--src/c/matrixOperations/interfaces/int_ones.h87
-rw-r--r--src/c/matrixOperations/interfaces/int_permute.h28
-rw-r--r--src/c/matrixOperations/interfaces/int_spec.h71
-rw-r--r--src/c/matrixOperations/interfaces/int_trace.h48
-rw-r--r--src/c/matrixOperations/interfaces/int_transpose.h51
-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_v2magn.h34
-rw-r--r--src/c/matrixOperations/interfaces/int_vmagn.h51
-rw-r--r--src/c/matrixOperations/interfaces/int_zeros.h89
-rw-r--r--src/c/matrixOperations/interfaces/interface.sh6
32 files changed, 2124 insertions, 0 deletions
diff --git a/src/c/matrixOperations/interfaces/int_OpApex.h b/src/c/matrixOperations/interfaces/int_OpApex.h
new file mode 100644
index 0000000..4915e20
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_OpApex.h
@@ -0,0 +1,34 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_OPAPEX_H__
+#define __INT_OPAPEX_H__
+
+#define s0OpApexs0(in) in
+
+#define d0OpApexd0(in) in
+
+#define c0OpApexc0(in) cconjs(in)
+
+#define z0OpApexz0(in) zconjs(in)
+
+#define s2OpApexs2(in,size,out) stransposea(in,size[0],size[1],out);
+
+#define d2OpApexd2(in,size,out) dtransposea(in,size[0],size[1],out);
+
+#define c2OpApexc2(in,size,out) ctransposea(in,size[0],size[1],out);cconja(out,size[0]*size[1],out);
+
+#define z2OpApexz2(in,size,out) ztransposea(in,size[0],size[1],out);zconja(out,size[0]*size[1],out);
+
+#endif /* !__INT_OPAPEX_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_OpBackSlash.h b/src/c/matrixOperations/interfaces/int_OpBackSlash.h
new file mode 100644
index 0000000..898c37b
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_OpBackSlash.h
@@ -0,0 +1,37 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_OPBACKSLASH_H__
+#define __INT_OPBACKSLASH_H__
+
+/* Matrix \ Matrix */
+
+#define s2s2OpBackSlashs2(in1,size1,in2,size2,out) sldivma(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+
+#define d2d2OpBackSlashd2(in1,size1,in2,size2,out) dldivma(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+
+#define c2c2OpBackSlashc2(in1,size1,in2,size2,out) cldivma(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+
+#define c2s2OpBackSlashc2(in1,size1,in2,size2,out) cldivma(in1,size1[0],size1[1],FloatComplexMatrix(in2,0,size2[0]*size2[1]),size2[0],size2[1],out)
+
+#define s2c2OpBackSlashc2(in1,size1,in2,size2,out) cldivma(FloatComplexMatrix(in1,0,size1[0]*size1[1]),size1[0],size1[1],in2,size2[0],size2[1],out)
+
+#define z2z2OpBackSlashz2(in1,size1,in2,size2,out) zldivma(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+
+#define z2d2OpBackSlashc2(in1,size1,in2,size2,out) cldivma(in1,size1[0],size1[1],DoubleComplexMatrix(in2,0,size2[0]*size2[1]),size2[0],size2[1],out)
+
+#define d2z2OpBackSlashc2(in1,size1,in2,size2,out) cldivma(DoubleComplexMatrix(in1,0,size1[0]*size1[1]),size1[0],size1[1],in2,size2[0],size2[1],out)
+
+
+#endif /* !__INT_OPBACKSLASH_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_OpCc.h b/src/c/matrixOperations/interfaces/int_OpCc.h
new file mode 100644
index 0000000..2cd3d55
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_OpCc.h
@@ -0,0 +1,134 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_OPCC_H__
+#define __INT_OPCC_H__
+
+/*
+ /!\
+ / ! \ We used rowcat because disp isn't right. In the real case, it must be columncat for Cc.
+ /__!_ \
+
+*/
+
+
+/* Column Cat */
+
+/* Same input elements */
+
+#define s0s0OpCcs2(in1,in2,out) srowcats(in1,in2,out)
+
+#define d0d0OpCcd2(in1,in2,out) drowcats(in1,in2,out)
+
+#define c0c0OpCcc2(in1,in2,out) crowcats(in1,in2,out)
+
+#define z0z0OpCcz2(in1,in2,out) zrowcats(in1,in2,out)
+
+#define s2s2OpCcs2(in1,size1,in2,size2,out) srowcata(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define d2d2OpCcd2(in1,size1,in2,size2,out) drowcata(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define c2c2OpCcc2(in1,size1,in2,size2,out) crowcata(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define z2z2OpCcz2(in1,size1,in2,size2,out) zrowcata(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+/* Differents input elements */
+#define s0c0OpCcc2(in1,in2,out) c0c0OpCcc2(FloatComplex(in1,0),in2,out)
+
+#define d0z0OpCcz2(in1,in2,out) z0z0OpCcz2(DoubleComplex(in1,0),in2,out)
+
+#define c0s0OpCcc2(in1,in2,out) c0c0OpCcc2(in1,FloatComplex(in2,0),out)
+
+#define z0d0OpCcz2(in1,in2,out) z0z0OpCcz2(in1,DoubleComplex(in2,0),out)
+
+#define s2c2OpCcc2(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 d2z2OpCcz2(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 c2s2OpCcc2(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 z2d2OpCcz2(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 s2s0OpCcs2(in1,size,in2,out) { float temp=in2; \
+ srowcata(in1, size[0], size[1],&temp, 1, 1, out); \
+ }
+
+#define d2d0OpCcd2(in1,size,in2,out) { double temp=in2; \
+ drowcata(in1, size[0], size[1],&temp, 1, 1, out); \
+ }
+
+#define c2c0OpCcc2(in1,size,in2,out) { floatComplex temp = in2; \
+ crowcata(in1, size[0], size[1],&temp, 1, 1, out);\
+ }
+
+#define z2z0OpCcz2(in1,size,in2,out) { doubleComplex temp =in2; \
+ zrowcata(in1, size[0], size[1],&temp, 1, 1, out);\
+ }
+
+
+/* Different type */
+#define s2c0OpCcc2(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 d2z0OpCcz2(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 c2s0OpCcc2(in1,size,in2,out) { floatComplex temp = FloatComplex(in2, 0); c2c0OpCcc2(in1, size, temp, out)}
+
+#define z2d0OpCcz2(in1,size,in2,out) { doubleComplex temp = DoubleComplex(in2, 0); z2z0OpCcz2(in1, size, temp, out)}
+
+
+/* Scalar-Matrix */
+
+/* Same type */
+#define s0s2OpCcs2(in1,in2,size,out) { \
+ float __tmp1 = in1 ;\
+ srowcata(&__tmp1, 1, 1, in2, size[0], size[1], out);\
+}
+
+#define d0d2OpCcd2(in1,in2,size,out) { \
+ double __tmp1 = in1 ;\
+ drowcata(&__tmp1, 1, 1, in2, size[0], size[1], out);\
+}
+
+#define c0c2OpCcc2(in1,in2,size,out) { \
+ floatComplex __tmp1 = in1 ;\
+ crowcata(&__tmp1, 1, 1, in2, size[0], size[1], out);\
+}
+
+#define z0z2OpCcz2(in1,in2,size,out) { \
+ doubleComplex __tmp1 = in1 ;\
+ zrowcata(&__tmp1, 1, 1, in2, size[0], size[1], out);\
+}
+
+/* Different type */
+#define s0c2OpCcc2(in1,in2,size,out) c0c2OpCcc2(FloatComplex(in1,0),in2,size,out)
+
+#define d0z2OpCcz2(in1,in2,size,out) z0z2OpCcz2(DoubleComplex(in1,0),in2,size,out)
+
+#define c0s2OpCcc2(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 z0d2OpCcz2(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_OPCC_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_OpDotApex.h b/src/c/matrixOperations/interfaces/int_OpDotApex.h
new file mode 100644
index 0000000..4978ca5
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_OpDotApex.h
@@ -0,0 +1,34 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_OPDOTAPEX_H__
+#define __INT_OPDOTAPEX_H__
+
+#define s0OpDotApexs0(in) in
+
+#define d0OpDotApexd0(in) in
+
+#define c0OpDotApexc0(in) in
+
+#define z0OpDotApexz0(in) in
+
+#define s2OpDotApexs2(in,size,out) stransposea(in,size[0],size[1],out);
+
+#define d2OpDotApexd2(in,size,out) dtransposea(in,size[0],size[1],out);
+
+#define c2OpDotApexc2(in,size,out) ctransposea(in,size[0],size[1],out);
+
+#define z2OpDotApexz2(in,size,out) ztransposea(in,size[0],size[1],out);
+
+#endif /* !__INT_OPDOTAPEX_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_OpRc.h b/src/c/matrixOperations/interfaces/int_OpRc.h
new file mode 100644
index 0000000..1e8f1c9
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_OpRc.h
@@ -0,0 +1,139 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_OPRC_H__
+#define __INT_OPRC_H__
+
+/*
+ /!\
+ / ! \ We used columncat because disp isn't right. In the real case, it must be rowcat for Rc.
+ /__!_ \
+
+*/
+
+
+/* Column Cat */
+
+/* Same input elements */
+
+#define s0s0OpRcs2(in1,in2,out) scolumncats(in1,in2,out)
+
+#define d0d0OpRcd2(in1,in2,out) dcolumncats(in1,in2,out)
+
+#define c0c0OpRcc2(in1,in2,out) ccolumncats(in1,in2,out)
+
+#define z0z0OpRcz2(in1,in2,out) zcolumncats(in1,in2,out)
+
+#define s2s2OpRcs2(in1,size1,in2,size2,out) scolumncata(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define d2d2OpRcd2(in1,size1,in2,size2,out) dcolumncata(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define c2c2OpRcc2(in1,size1,in2,size2,out) ccolumncata(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define z2z2OpRcz2(in1,size1,in2,size2,out) zcolumncata(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+/* Differents input elements */
+#define s0c0OpRcc2(in1,in2,out) c0c0OpRcc2(FloatComplex(in1,0),in2,out)
+
+#define d0z0OpRcz2(in1,in2,out) z0z0OpRcz2(DoubleComplex(in1,0),in2,out)
+
+#define c0s0OpRcc2(in1,in2,out) c0c0OpRcc2(in1,FloatComplex(in2,0),out)
+
+#define z0d0OpRcz2(in1,in2,out) z0z0OpRcz2(in1,DoubleComplex(in2,0),out)
+
+#define s2c2OpRcc2(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 d2z2OpRcz2(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 c2s2OpRcc2(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 z2d2OpRcz2(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 s2s0OpRcs2(in1,size,in2,out) { float temp=in2; \
+ scolumncata(in1, size[0], size[1],&temp, 1, 1, out); \
+ }
+
+#define d2d0OpRcd2(in1,size,in2,out) { double temp=in2; \
+ dcolumncata(in1, size[0], size[1],&temp, 1, 1, out); \
+ }
+
+#define c2c0OpRcc2(in1,size,in2,out) { floatComplex temp=in2; \
+ ccolumncata(in1, size[0], size[1], &temp, 1, 1, out); \
+ }
+
+#define z2z0OpRcz2(in1,size,in2,out) { doubleComplex temp=in2; \
+ zcolumncata(in1, size[0], size[1], &temp, 1, 1, out); \
+ }
+
+/* Different type */
+#define s2c0OpRcc2(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 d2z0OpRcz2(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 c2s0OpRcc2(in1,size,in2,out) { floatComplex temp = FloatComplex(in2,0); \
+ ccolumncata(in1, size[0], size[1], &temp, 1, 1, out); \
+ }
+
+#define z2d0OpRcz2(in1,size,in2,out) { doubleComplex temp = DoubleComplex(in2,0); \
+ zcolumncata(in1, size[0], size[1], &temp, 1, 1, out); \
+ }
+
+/* Scalar-Matrix */
+
+/* Same type */
+#define s0s2OpRcs2(in1,in2,size,out) { \
+ float __tmp1 = in1 ;\
+ scolumncata(&__tmp1 , 1, 1, in2, size[0], size[1], out);\
+}
+#define d0d2OpRcd2(in1,in2,size,out) {\
+ double __tmp1 = in1 ;\
+ dcolumncata(&__tmp1 , 1, 1, in2, size[0], size[1], out); \
+}
+
+#define c0c2OpRcc2(in1,in2,size,out) { \
+ floatComplex __tmp1 = in1 ;\
+ ccolumncata(&__tmp1, 1, 1, in2, size[0], size[1], out);\
+}
+
+#define z0z2OpRcz2(in1,in2,size,out) { \
+ doubleComplex __tmp1 = in1 ;\
+ zcolumncata(&__tmp1, 1, 1, in2, size[0], size[1], out);\
+}
+
+/* Different type */
+#define s0c2OpRcc2(in1,in2,size,out) c0c2OpRcc2(FloatComplex(in1,0),in2,size,out)
+
+#define d0z2OpRcz2(in1,in2,size,out) z0z2OpRcz2(DoubleComplex(in1,0),in2,size,out)
+
+#define c0s2OpRcc2(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 z0d2OpRcz2(in1,in2,size,out) dfilla((double*)out,size[0],size[1],0); \
+ z0z2OpRcz2(in1,DoubleComplexMatrix(in2,(double*)out,size[0]*size[1]),size,out)
+
+#endif /* !__INT_OPRC_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_OpSlash.h b/src/c/matrixOperations/interfaces/int_OpSlash.h
new file mode 100644
index 0000000..20930a0
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_OpSlash.h
@@ -0,0 +1,38 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_OPSLASH_H__
+#define __INT_OPSLASH_H__
+
+
+/* Matrix / Matrix */
+
+#define s2s2OpSlashs2(in1,size1,in2,size2,out) srdivma(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+
+#define d2d2OpSlashd2(in1,size1,in2,size2,out) drdivma(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+
+#define c2c2OpSlashc2(in1,size1,in2,size2,out) crdivma(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+
+#define c2s2OpSlashc2(in1,size1,in2,size2,out) crdivma(in1,size1[0],size1[1],FloatComplexMatrix(in2,0,size2[0]*size2[1]),size2[0],size2[1],out)
+
+#define s2c2OpSlashc2(in1,size1,in2,size2,out) crdivma(FloatComplexMatrix(in1,0,size1[0]*size1[1]),size1[0],size1[1],in2,size2[0],size2[1],out)
+
+#define z2z2OpSlashz2(in1,size1,in2,size2,out) zrdivma(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+
+#define z2d2OpSlashc2(in1,size1,in2,size2,out) crdivma(in1,size1[0],size1[1],DoubleComplexMatrix(in2,0,size2[0]*size2[1]),size2[0],size2[1],out)
+
+#define d2z2OpSlashc2(in1,size1,in2,size2,out) crdivma(DoubleComplexMatrix(in1,0,size1[0]*size1[1]),size1[0],size1[1],in2,size2[0],size2[1],out)
+
+
+#endif /* !__INT_OPSLASH_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_OpStar.h b/src/c/matrixOperations/interfaces/int_OpStar.h
new file mode 100644
index 0000000..f922b31
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_OpStar.h
@@ -0,0 +1,45 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_OPSTAR_H__
+#define __INT_OPSTAR_H__
+
+/* Matrix * Matrix */
+
+#define s2s2OpStars2(in1,size1,in2,size2,out) smulma(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+
+#define d2d2OpStard2(in1,size1,in2,size2,out) dmulma(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+
+#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)
+
+#define z2z2OpStarz2(in1,size1,in2,size2,out) zmulma(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+
+#define z2d2OpStarc2(in1,size1,in2,size2,out) cmulma(in1,size1[0],size1[1],DoubleComplexMatrix(in2,0,size2[0],size2[1]),size2[0],size2[1],out)
+
+#define d2z2OpStarc2(in1,size1,in2,size2,out) cmulma(DoubleComplexMatrix(in1,0,size1[0],size1[1]),size1[0],size1[1],in2,size2[0],size2[1],out)
+
+
+#endif /* !__INT_OPSTAR_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_cat.h b/src/c/matrixOperations/interfaces/int_cat.h
new file mode 100644
index 0000000..db80bec
--- /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_chol.h b/src/c/matrixOperations/interfaces/int_chol.h
new file mode 100644
index 0000000..861ad4d
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_chol.h
@@ -0,0 +1,34 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_CHOL_H__
+#define __INT_CHOL_H__
+
+#define s0chols0(in) schols(in)
+
+#define d0chold0(in) dchols(in)
+
+#define c0cholc0(in) cchols(in)
+
+#define z0cholz0(in) zchols(in)
+
+#define s2chols2(in,size,out) schola(in, size[0], out)
+
+#define d2chold2(in,size,out) dchola(in, size[0], out)
+
+#define c2cholc2(in,size,out) cchola(in, size[0], out)
+
+#define z2cholz2(in,size,out) zchola(in, size[0], out)
+
+#endif /* !__INT_CHOL_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_cumprod.h b/src/c/matrixOperations/interfaces/int_cumprod.h
new file mode 100644
index 0000000..5ba3cc7
--- /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 0000000..0eda0ac
--- /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_det.h b/src/c/matrixOperations/interfaces/int_det.h
new file mode 100644
index 0000000..f7760b1
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_det.h
@@ -0,0 +1,34 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_DETERM_H__
+#define __INT_DETERM_H__
+
+#define s0dets0(in) in
+
+#define d0detd0(in) in
+
+#define c0detc0(in) in
+
+#define z0detz0(in) in
+
+#define s2dets0(in,size) sdeterma(in, size[0])
+
+#define d2detd0(in,size) ddeterma(in, size[0])
+
+#define c2detc0(in,size) cdeterma(in, size[0])
+
+#define z2detz0(in,size) zdeterma(in, size[0])
+
+#endif /* !__INT_DETERM_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_diag.h b/src/c/matrixOperations/interfaces/int_diag.h
new file mode 100644
index 0000000..339831b
--- /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_dist.h b/src/c/matrixOperations/interfaces/int_dist.h
new file mode 100644
index 0000000..36809c7
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_dist.h
@@ -0,0 +1,34 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_DIST_H__
+#define __INT_DIST_H__
+
+#define s0s0dists0(in1,in2) sdists(in1,in2)
+
+#define d0d0distd0(in1,in2) ddists(in1,in2)
+
+#define c0c0dists0(in1,in2) cdists(in1,in2)
+
+#define z0z0distd0(in1,in2) zdists(in1,in2)
+
+#define s2s2dists0(in1,size1,in2,size2) sdista(in1, in2, size1[0], size2[1])
+
+#define d2d2distd0(in1,size1,in2,size2) ddista(in1, in2, size1[0], size2[1])
+
+#define c2c2dists0(in1,size1,in2,size2) cdista(in1, in2, size1[0], size2[1])
+
+#define z2z2distd0(in1,size1,in2,size2) zdista(in1, in2, size1[0], size2[1])
+
+#endif /* !__INT_DIST_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_expm.h b/src/c/matrixOperations/interfaces/int_expm.h
new file mode 100644
index 0000000..6e54fb3
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_expm.h
@@ -0,0 +1,26 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_EXPM_H__
+#define __INT_EXPM_H__
+
+#define s2expms2(in,size,out) sexpma(in, out, size[0])
+
+#define d2expmd2(in,size,out) dexpma(in, out, size[0])
+
+#define c2expmc2(in,size,out) cexpma(in, out, size[0])
+
+#define z2expmz2(in,size,out) zexpma(in, out, size[0])
+
+#endif /* !__INT_EXPM_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_eye.h b/src/c/matrixOperations/interfaces/int_eye.h
new file mode 100644
index 0000000..1e10eb8
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_eye.h
@@ -0,0 +1,88 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_EYE_H__
+#define __INT_EYE_H__
+
+
+#define eyes0() 1.0f
+
+#define eyed0() 1
+
+#define eyeu80() (uint8)1
+
+#define eyei80() (int8)1
+
+#define eyeu160() (uint16)1
+
+#define eyei160() (int16)1
+
+#define s0eyes0(in) seyes(in)
+
+#define d0eyed0(in) deyes(in)
+
+#define c0eyec0(in) ceyes(in)
+
+#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])
+
+#define d2eyed2(in,size,out) deyea(out, size[0], size[1])
+
+#define c2eyec2(in,size,out) ceyea(out, size[0], size[1])
+
+#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_fill.h b/src/c/matrixOperations/interfaces/int_fill.h
new file mode 100644
index 0000000..5614cb1
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_fill.h
@@ -0,0 +1,51 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_FILL_H__
+#define __INT_FILL_H__
+
+
+#define fills0(in) in;
+
+#define filld0(in) in;
+
+#define fillc0(in) in;
+
+#define fillz0(in) in;
+
+#define s0fills0(in,out) out=in;
+
+#define d0filld0(in,out) out=in;
+
+#define c0fillc0(in,out) out=in;
+
+#define z0fillz0(in,out) out=in;
+
+#define s2s0fills2(in1,size,in2,out) sfilla(out,size[0],size[1],in2);
+
+#define d2d0filld2(in1,size,in2,out) dfilla(out,size[0],size[1],in2);
+
+#define c2c0fillc2(in1,size,in2,out) cfilla(out,size[0],size[1],in2);
+
+#define z2z0fillz2(in1,size,in2,out) zfilla(out,size[0],size[1],in2);
+
+#define s0s0s0fills2(in1,in2,in3,out) sfilla(out,in1,in2,in3)
+
+#define d0d0d0filld2(in1,in2,in3,out) sfilla(out,in1,in2,in3)
+
+#define s0s0c0fillc2(in1,in2,in3,out) sfilla(out,in1,in2,in3)
+
+#define d0d0z0fillz2(in1,in2,in3,out) sfilla(out,in1,in2,in3)
+
+#endif /* !__INT_FILL_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_flipdim.h b/src/c/matrixOperations/interfaces/int_flipdim.h
new file mode 100644
index 0000000..0c27181
--- /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
new file mode 100644
index 0000000..285a0f4
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_invert.h
@@ -0,0 +1,50 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_INV_H__
+#define __INT_INV_H__
+
+#define s0invs0(in) 1.0f/in
+
+#define d0invd0(in) 1.0/in
+
+#define c0invc0(in) crdivs(FloatComplex(1,0),in)
+
+#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])
+
+#define c2invc2(in,size,out) cinverma(in, out, size[0])
+
+#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 0000000..a6fbaab
--- /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_norm.h b/src/c/matrixOperations/interfaces/int_norm.h
new file mode 100644
index 0000000..a42a675
--- /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
new file mode 100644
index 0000000..e266ee5
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_ones.h
@@ -0,0 +1,87 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_ONES_H__
+#define __INT_ONES_H__
+
+
+#define oness0() 1.0f
+
+#define onesd0() 1
+
+#define onesu80() (uint8)1
+
+#define onesi80() (int8)1
+
+#define onesu160() (uint16)1
+
+#define onesi160() (int16)1
+
+#define s0oness0(in) soness(in)
+
+#define d0onesd0(in) doness(in)
+
+#define c0onesc0(in) coness(in)
+
+#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])
+
+#define d2onesd2(in,size,out) donesa(out, size[0], size[1])
+
+#define c2onesc2(in,size,out) conesa(out, size[0], size[1])
+
+#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 0000000..66049ac
--- /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_spec.h b/src/c/matrixOperations/interfaces/int_spec.h
new file mode 100644
index 0000000..77ab55e
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_spec.h
@@ -0,0 +1,71 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_SPEC_H__
+#define __INT_SPEC_H__
+
+/* Only eigenvalues */
+
+#define s0specc0(in) FloatComplex (sspecs(in) , 0)
+
+#define d0specz0(in) DoubleComplex ( dspecs(in) , 0)
+
+#define c0specc0(in) cspecs(in)
+
+#define z0specz0(in) zspecs(in)
+
+#define s2specc2(in,size,out) {float* ZEROS;\
+ ZEROS=malloc((uint)(size[0]*size[0]*sizeof(float)));\
+ szerosa(ZEROS,size[0],size[0]);\
+ cspeca(FloatComplexMatrix(in,ZEROS,size[0]*size[0]), size[0], out);\
+ }
+
+#define d2specz2(in,size,out) {double* ZEROS;\
+ ZEROS=malloc((uint)(size[0]*size[0]*sizeof(double)));\
+ dzerosa(ZEROS,size[0],size[0]);\
+ zspeca(DoubleComplexMatrix(in,ZEROS,size[0]*size[0]), size[0] , out);\
+ }
+
+#define c2specc2(in,size,out) cspeca(in, size[0], out)
+
+#define z2specz2(in,size,out) zspeca(in, size[0], out)
+
+/* Eigenvalues and eigenvectors */
+
+#define s0specc0c0(in,out) cspec2s(FloatComplex( in,0) ,out)
+
+#define d0specz0z0(in,out) zspec2s(DoubleComplex(in,0) ,out)
+
+#define c0specc0c0(in,out) cspec2s(in,out)
+
+#define z0specz0z0(in,out) zspec2s(in,out)
+
+#define s2specc2c2(in,size,out1,out2) {float* ZEROS;\
+ ZEROS=malloc((uint)(size[0]*size[0]*sizeof(float)));\
+ szerosa(ZEROS,size[0],size[0]);\
+ cspec2a(FloatComplexMatrix(in,ZEROS,size[0]*size[0]), size[0] , out1 , out2 );\
+ }
+
+#define d2specz2z2(in,size,out1,out2) {double* ZEROS;\
+ ZEROS=malloc((uint)(size[0]*size[0]*sizeof(double)));\
+ dzerosa(ZEROS,size[0],size[0]);\
+ zspec2a(DoubleComplexMatrix(in,ZEROS,size[0]*size[0]), size[0] , out1 , out2 );\
+ }
+
+
+#define c2specc2c2(in,size,out1,out2) cspec2a(in, size[0], out2, out1)
+
+#define z2specz2z2(in,size,out1,out2) zspec2a(in, size[0], out2, out1)
+
+#endif /* !__INT_SPEC_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_trace.h b/src/c/matrixOperations/interfaces/int_trace.h
new file mode 100644
index 0000000..58c4299
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_trace.h
@@ -0,0 +1,48 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_TRACE_H__
+#define __INT_TRACE_H__
+
+#define s0traces0(in) in
+
+#define d0traced0(in) in
+
+#define c0tracec0(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])
+
+#define d2traced0(in,size) dtracea(in, size[0])
+
+#define c2tracec0(in,size) ctracea(in, size[0])
+
+#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
new file mode 100644
index 0000000..3fd328f
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_transpose.h
@@ -0,0 +1,51 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_TRANSPOSE_H__
+#define __INT_TRANSPOSE_H__
+
+#define s0transposes0(in) in
+
+#define d0transposed0(in) in
+
+#define c0transposec0(in) in
+
+#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)
+
+#define c2transposec2(in,size,out) ctransposea(in, size[0], size[1], out)
+
+#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 0000000..6d69451
--- /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 0000000..1aef311
--- /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_v2magn.h b/src/c/matrixOperations/interfaces/int_v2magn.h
new file mode 100644
index 0000000..759cecf
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_v2magn.h
@@ -0,0 +1,34 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_V2MAGN_H__
+#define __INT_V2MAGN_H__
+
+#define s0v2magns0(in) ssquMagns(in)
+
+#define d0v2magnd0(in) dsquMagns(in)
+
+#define c0v2magnc0(in) csquMagns(in)
+
+#define z0v2magnz0(in) zsquMagns(in)
+
+#define s2v2magns2(in,size) ssquMagna(in, size[0], size[1])
+
+#define d2v2magnd2(in,size) dsquMagna(in, size[0], size[1])
+
+#define c2v2magnc2(in,size) csquMagna(in, size[0], size[1])
+
+#define z2v2magnz2(in,size) zsquMagna(in, size[0], size[1])
+
+#endif /* !__INT_V2MAGN_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_vmagn.h b/src/c/matrixOperations/interfaces/int_vmagn.h
new file mode 100644
index 0000000..a8647aa
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_vmagn.h
@@ -0,0 +1,51 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_VMAGN_H__
+#define __INT_VMAGN_H__
+
+
+#define s0vmagns0(in) smagns(in)
+
+#define d0vmagnd0(in) dmagns(in)
+
+#define c0vmagnc0(in) cmagns(in)
+
+#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])
+
+#define c2vmagnc2(in,size) cmagna(in, size[0], size[1])
+
+#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
new file mode 100644
index 0000000..ac7e020
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_zeros.h
@@ -0,0 +1,89 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ * Copyright (C) 2010-2010 - DIGITEO - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_ZEROS_H__
+#define __INT_ZEROS_H__
+
+
+#define zeross0() 0.0f
+
+#define zerosd0() 0
+
+#define zerosu80() (uint8)0
+
+#define zerosi80() (int8)0
+
+#define zerosu160() (uint16)0
+
+#define zerosi160() (int16)0
+
+#define s0zeross0(in) szeross(in)
+
+#define d0zerosd0(in) dzeross(in)
+
+#define c0zerosc0(in) czeross(in)
+
+#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(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])
+
+#define d2zerosd2(in,size,out) dzerosa(out, size[0], size[1])
+
+#define c2zerosc2(in,size,out) czerosa(out, size[0], size[1])
+
+#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
new file mode 100644
index 0000000..8c7f073
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/interface.sh
@@ -0,0 +1,6 @@
+for i in $@; do
+
+./generateInterfaces.pl --function-name $i --header-file int_$i.h
+
+done
+