summaryrefslogtreecommitdiff
path: root/src/matrixOperations/interfaces
diff options
context:
space:
mode:
Diffstat (limited to 'src/matrixOperations/interfaces')
-rw-r--r--src/matrixOperations/interfaces/int_OpCc.h49
-rw-r--r--src/matrixOperations/interfaces/int_OpRc.h98
2 files changed, 87 insertions, 60 deletions
diff --git a/src/matrixOperations/interfaces/int_OpCc.h b/src/matrixOperations/interfaces/int_OpCc.h
index bca639dc..48ff3907 100644
--- a/src/matrixOperations/interfaces/int_OpCc.h
+++ b/src/matrixOperations/interfaces/int_OpCc.h
@@ -35,13 +35,13 @@
#define z0z0OpCcz2(in1,in2,out) zrowcats(in1,in2,out)
-#define s2s2OpCcs2(in1,size1,in2,size2,out) srowcata(in1, size1[0], size2[1], in2, size1[0], size2[1], 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], size2[1], in2, size1[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], size2[1], in2, size1[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], size2[1], in2, size1[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)
@@ -52,35 +52,46 @@
#define z0d0OpCcz2(in1,in2,out) z0z0OpCcz2(in1,DoubleComplex(in2,0),out)
-#define s2c2OpCcc2(in1,size1,in2,size2,out) sfilla((float*)out,size[0],size[1],0); c2c2OpCcc2(FloatComplexMatrix(in1,(float*)out,size1[0]*size1[1]), size1, in2, size2, 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,size[0],size[1],0); z2z2OpCcz2(DoubleComplexMatrix(in1,(double*)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,size[0],size[1],0); c2c2OpCcc2(in1, size1, FloatComplexMatrix(in2,(float*)out,size1[0]*size1[1]), 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,size[0],size[1],0); z2z2OpCcz2(in1, size1, DoubleComplexMatrix(in2,(double*)out,size1[0]*size1[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) srowcats(in2,0,(float *)out_tmp);srowcata(in1, size[0], size[1],(float *) out_tmp, 1, 1, out);
+#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) drowcats(in2,0,(double *)out_tmp);drowcata(in1, size[0], size[1],(double *) out_tmp, 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) crowcats(in2,FloatComplex(0,0),(floatComplex *)out_tmp);crowcata(in1, size[0], size[1], (floatComplex *)out_tmp, 1, 1, out);
+#define c2c0OpCcc2(in1,size,in2,out) crowcata(in1, size[0], size[1], &in2, 1, 1, out);
-#define z2z0OpCcz2(in1,size,in2,out) zrowcats(in2,DoubleComplex(0,0),(doubleComplex *)out_tmp);zrowcata(in1, size[0], size[1], (doubleComplex *)out_tmp, 1, 1, out);
+#define z2z0OpCcz2(in1,size,in2,out) zrowcata(in1, size[0], size[1], &in2, 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 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 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) c2c0OpCcc2(in1, size, FloatComplex(in2,0), out)
+#define c2s0OpCcc2(in1,size,in2,out) { floatComplex temp = FloatComplex(in2, 0); c2c0OpCcc2(in1, size, temp, out)}
-#define z2d0OpCcz2(in1,size,in2,out) z2z0OpCcz2(in1, size, DoubleComplex(in2,0), out)
+#define z2d0OpCcz2(in1,size,in2,out) { doubleComplex temp = DoubleComplex(in2, 0); z2z0OpCcz2(in1, size, temp, out)}
+
/* Scalar-Matrix */
@@ -98,8 +109,10 @@
#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 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)
+#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/matrixOperations/interfaces/int_OpRc.h b/src/matrixOperations/interfaces/int_OpRc.h
index ae9803d1..dc614694 100644
--- a/src/matrixOperations/interfaces/int_OpRc.h
+++ b/src/matrixOperations/interfaces/int_OpRc.h
@@ -15,93 +15,107 @@
#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.
+ /__!_ \
+
+*/
-/* Row Cat */
-
-/* Scalar-Scalar */
+/* Column Cat */
/* Same input elements */
-#define s0s0OpRcs2(in1,in2,out) srowcats(in1,in2,out)
+#define s0s0OpRcs2(in1,in2,out) scolumncats(in1,in2,out)
-#define d0d0OpRcd2(in1,in2,out) drowcats(in1,in2,out)
+#define d0d0OpRcd2(in1,in2,out) dcolumncats(in1,in2,out)
-#define c0c0OpRcc2(in1,in2,out) crowcats(in1,in2,out)
+#define c0c0OpRcc2(in1,in2,out) ccolumncats(in1,in2,out)
-#define z0z0OpRcz2(in1,in2,out) zrowcats(in1,in2,out)
+#define z0z0OpRcz2(in1,in2,out) zcolumncats(in1,in2,out)
-#define s2s2OpRcs2(in1,size1,in2,size2,out) srowcata(in1, size1[0], size2[1], in2, size1[0], size2[1], 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) drowcata(in1, size1[0], size2[1], in2, size1[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) crowcata(in1, size1[0], size2[1], in2, size1[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) zrowcata(in1, size1[0], size2[1], in2, size1[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) crowcats(FloatComplex(in1,0),in2,out)
+#define s0c0OpRcc2(in1,in2,out) c0c0OpRcc2(FloatComplex(in1,0),in2,out)
-#define d0z0OpRcz2(in1,in2,out) zrowcats(DoubleComplex(in1,0),in2,out)
+#define d0z0OpRcz2(in1,in2,out) z0z0OpRcz2(DoubleComplex(in1,0),in2,out)
-#define c0s0OpRcc2(in1,in2,out) crowcats(in1,FloatComplex(in2,0),out)
+#define c0s0OpRcc2(in1,in2,out) c0c0OpRcc2(in1,FloatComplex(in2,0),out)
-#define z0d0OpRcz2(in1,in2,out) zrowcats(in1,DoubleComplex(in2,0),out)
+#define z0d0OpRcz2(in1,in2,out) z0z0OpRcz2(in1,DoubleComplex(in2,0),out)
-#define s2c2OpRcc2(in1,size1,in2,size2,out) crowcata(FloatComplexMatrix(in1,0,size1[0]*size1[1]), size1[0], size2[1], in2, size1[0], size2[1], 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) zrowcata(DoubleComplexMatrix(in1,0,size1[0]*size1[1]), size1[0], size2[1], in2, size1[0], size2[1], 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) crowcata(in1, size1[0], size2[1], FloatComplexMatrix(in2,0,size2[0]*size2[1]), size1[0], size2[1], 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) zrowcata(in1, size1[0], size2[1], DoubleComplexMatrix(in2,0,size2[0]*size2[1]), size1[0], size2[1], 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 */
-double out_tmp[2];
-#define s2s0OpRcs2(in1,size,in2,out) srowcata(in1, size[0], size[1], in2, 1, 1, out);
-#define d2d0OpRcd2(in1,size,in2,out) dcolumncats(in2,0,out_tmp); dcolumncata(in1, size[0], size[1], out_tmp, 1, 1, out);
+#define s2s0OpRcs2(in1,size,in2,out) { float temp=in2; \
+ scolumncata(in1, size[0], size[1],&temp, 1, 1, out); \
+ }
-#define c2c0OpRcc2(in1,size,in2,out) crowcata(in1, size[0], size[1], in2, 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) ccolumncata(in1, size[0], size[1], &in2, 1, 1, out);
-#define z2z0OpRcz2(in1,size,in2,out) zrowcata(in1, size[0], size[1], in2, 1, 1, out);
+#define z2z0OpRcz2(in1,size,in2,out) zcolumncata(in1, size[0], size[1], &in2, 1, 1, out);
/* Different type */
-#define s2c0OpRcc2(in1,size,in2,out) crowcata(FloatComplexMatrix(in1,0,size[0]*size[1]), size[0], size[1], in2, 1, 1, out);
-
-#define d2z0OpRcz2(in1,size,in2,out) zrowcata(DoubleComplexMatrix(in1,0,size[0]*size[1]), size[0], size[1], in2, 1, 1, out);
-
-#define c2s0OpRcc2(in1,size,in2,out) crowcata(in1, size[0], size[1], FloatComplex(in2,0), 1, 1, out);
-
-#define z2d0OpRcz2(in1,size,in2,out) zrowcata(in1, size[0], size[1], DoubleComplex(in2,0), 1, 1, out);
-
+#define s2c0OpRcc2(in1,size,in2,out) sfilla((float *)out,size[0],size[1],0); \
+ c2c0OpRcc2(FloatComplexMatrix(in1,(float*)out,size[0]*size[1]),size,in2,out)
+#define d2z0OpRcz2(in1,size,in2,out) dfilla((double *)out,size[0],size[1],0); \
+ z2z0OpRcz2(DoubleComplexMatrix(in1,(double *)out,size[0]*size[1]),size,in2,out)
+#define c2s0OpRcc2(in1,size,in2,out) { floatComplex temp = FloatComplex(in2,0); \
+ c2c0OpRcc2(in1, size, temp, out) \
+ }
+#define z2d0OpRcz2(in1,size,in2,out) { doubleComplex temp = DoubleComplex(in2,0); \
+ z2z0OpRcz2(in1, size, temp, out) \
+ }
/* Scalar-Matrix */
/* Same type */
-#define s0s2OpRcs2(in1,in2,size,out) srowcata(in1, 1, 1, in2, size[0], size[1], out);
+#define s0s2OpRcs2(in1,in2,size,out) scolumncata(in1, 1, 1, in2, size[0], size[1], out);
-#define d0d2OpRcd2(in1,in2,size,out) drowcata(in1, 1, 1, in2, size[0], size[1], out);
+#define d0d2OpRcd2(in1,in2,size,out) dcolumncata(in1, 1, 1, in2, size[0], size[1], out);
-#define c0c2OpRcc2(in1,in2,size,out) crowcata(in1, 1, 1, in2, size[0], size[1], out);
+#define c0c2OpRcc2(in1,in2,size,out) ccolumncata(in1, 1, 1, in2, size[0], size[1], out);
-#define z0z2OpRcz2(in1,in2,size,out) zrowcata(in1, 1, 1, in2, size[0], size[1], out);
+#define z0z2OpRcz2(in1,in2,size,out) zcolumncata(in1, 1, 1, in2, size[0], size[1], out);
/* Different type */
-#define s0c2OpRcc2(in1,in2,size,out) crowcata(FloatComplex(in1,0), 1, 1, in2, size[0], size[1], out);
-
-#define d0z2OpRcz2(in1,in2,size,out) zrowcata(DoubleComplex(in1,0), 1, 1, in2, size[0], size[1], out);
+#define s0c2OpRcc2(in1,in2,size,out) c0c2OpRcc2(FloatComplex(in1,0),in2,size,out)
-#define c0s2OpRcc2(in1,in2,size,out) crowcata(in1, 1, 1, FloatComplexMatrix(in2,0,size[0]*size[1]), size[0], size[1], out);
+#define d0z2OpRcz2(in1,in2,size,out) z0z2OpRcz2(DoubleComplex(in1,0),in2,size,out)
-#define z0d2OpRcz2(in1,in2,size,out) zrowcata(in1, 1, 1, DoubleComplexMatrix(in2,0,size[0]*size[1]), size[0], size[1], 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__ */