summaryrefslogtreecommitdiff
path: root/src/operations/interface/int_OpDotSlash.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/operations/interface/int_OpDotSlash.h')
-rw-r--r--src/operations/interface/int_OpDotSlash.h45
1 files changed, 27 insertions, 18 deletions
diff --git a/src/operations/interface/int_OpDotSlash.h b/src/operations/interface/int_OpDotSlash.h
index 87c79a81..a0f097de 100644
--- a/src/operations/interface/int_OpDotSlash.h
+++ b/src/operations/interface/int_OpDotSlash.h
@@ -38,62 +38,71 @@
#define s0s2OpDotSlashs2(in1,in2,size,out) {int i=0;\
- for (i=0;i<size[0]*size[1];i++) out[i]=in1/in2[i];}
+ sinverma(in2,out,size[0]);\
+ for (i=0;i<size[0]*size[1];i++) out[i]=in1*out[i];}
#define d0d2OpDotSlashd2(in1,in2,size,out) {int i=0;\
- for (i=0;i<size[0]*size[1];i++) out[i]=in1/in2[i];}
+ dinverma(in2,out,size[0]);\
+ for (i=0;i<size[0]*size[1];i++) out[i]=in1*out[i];}
#define c0c2OpDotSlashc2(in1,in2,size,out) {int i=0;\
- for (i=0;i<size[0]*size[1];i++) out[i]=crdivs(in1,in2[i]);}
+ cinverma(in2,out,size[0]);\
+ for (i=0;i<size[0]*size[1];i++) out[i]=cmuls(in1,out[i]);}
#define z0z2OpDotSlashz2(in1,in2,size,out) {int i=0;\
- for (i=0;i<size[0]*size[1];i++) out[i]=zrdivs(in1,in2[i]);}
+ zinverma(in2,out,size[0]);\
+ for (i=0;i<size[0]*size[1];i++) out[i]=zmuls(in1,out[i]);}
#define s0c2OpDotSlashc2(in1,in2,size,out) c0c2OpDotSlashc2(FloatComplex(in1,0),in2,size,out)
-/* On transforme d0 en z0 */
-#define d0z2OpDotSlashz2(in1,in2,size,out) z0z2OpDotSlashz2(DoubleComplex(in1,0),in2,size,out)
+#define d0z2OpDotSlashz2(in1,in2,size,out) z0z2OpDotSlashz2(DoubleComplex(in1,0),in2,size,out)
+/* FIXME: malloc */
#define c0s2OpDotSlashc2(in1,in2,size,out) {int i=0;\
- for (i=0;i<size[0]*size[1];i++) out[i]=crdivs(in1,FloatComplex(in2[i],0));}
+ float* temp = malloc((uint)(size[0]*size[1])*sizeof(float));\
+ sinverma(in2,temp,size[0]);\
+ for (i=0;i<size[0]*size[1];i++) out[i]=cmuls(in1,FloatComplex(temp[i],0));}
+/* FIXME: malloc */
#define z0d2OpDotSlashz2(in1,in2,size,out) {int i=0;\
- for (i=0;i<size[0]*size[1];i++) out[i]=zrdivs(in1,DoubleComplex(in2[i],0));}
+ double* temp = malloc((uint)(size[0]*size[1])*sizeof(double));\
+ dinverma(in2,temp,size[0]);\
+ for (i=0;i<size[0]*size[1];i++) out[i]=zmuls(in1,DoubleComplex(temp[i],0));}
/* Matrix / Scalar */
#define s2s0OpDotSlashs2(in1,size,in2,out) {int i=0;\
- for (i=0;i<size[0]*size[1];i++) out[i]=in1[i]/in2;}
+ for (i=0;i<size[0]*size[1];i++) out[i]=in1[i]/in2;}
#define d2d0OpDotSlashd2(in1,size,in2,out) {int i=0;\
- for (i=0;i<size[0]*size[1];i++) out[i]=in1[i]/in2;}
+ for (i=0;i<size[0]*size[1];i++) out[i]=in1[i]/in2;}
#define c2c0OpDotSlashc2(in1,size,in2,out) {int i=0;\
- for (i=0;i<size[0]*size[1];i++) out[i]=crdivs(in1[i],in2);}
+ for (i=0;i<size[0]*size[1];i++) out[i]=crdivs(in1[i],in2);}
#define z2z0OpDotSlashz2(in1,size,in2,out) {int i=0;\
- for (i=0;i<size[0]*size[1];i++) out[i]=zrdivs(in1[i],in2);}
+ for (i=0;i<size[0]*size[1];i++) out[i]=zrdivs(in1[i],in2);}
#define s2c0OpDotSlashc2(in1,size,in2,out) {int i=0;\
- for (i=0;i<size[0]*size[1];i++) out[i]=crdivs(FloatComplex(in1[i],0),in2);}
+ for (i=0;i<size[0]*size[1];i++) out[i]=crdivs(FloatComplex(in1[i],0),in2);}
#define d2z0OpDotSlashz2(in1,size,in2,out) {int i=0;\
- for (i=0;i<size[0]*size[1];i++) out[i]=zrdivs(DoubleComplex(in1[i],0),in2);}
+ for (i=0;i<size[0]*size[1];i++) out[i]=zrdivs(DoubleComplex(in1[i],0),in2);}
#define c2s0OpDotSlashc2(in1,size,in2,out) c2c0OpDotSlashc2(in1,size,FloatComplex(in2,0),out)
@@ -114,16 +123,16 @@
#define z2z2OpDotSlashz2(in1,size1,in2,size2,out) zrdiva(in1,in2,size2[0]*size2[1],out)
-#define c2s2OpDotSlashc2(in1,size1,in2,size2,out) {int i=0;\
+#define c2s2OpDotSlashc2(in1,size1,in2,size2,out) {int i=0;\
for (i=0;i<size1[0]*size2[1];i++) out[i]=crdivs(in1[i],FloatComplex(in2[i],0));}
-#define s2c2OpDotSlashc2(in1,size1,in2,size2,out) {int i=0;\
+#define s2c2OpDotSlashc2(in1,size1,in2,size2,out) {int i=0;\
for (i=0;i<size1[0]*size2[1];i++) out[i]=crdivs(FloatComplex(in1[i],0),in2[i]);}
-#define z2d2OpDotSlashz2(in1,size1,in2,size2,out) {int i=0;\
+#define z2d2OpDotSlashz2(in1,size1,in2,size2,out) {int i=0;\
for (i=0;i<size1[0]*size2[1];i++) out[i]=zrdivs(in1[i],DoubleComplex(in2[i],0));}
-#define d2z2OpDotSlashz2(in1,size1,in2,size2,out) {int i=0;\
+#define d2z2OpDotSlashz2(in1,size1,in2,size2,out) {int i=0;\
for (i=0;i<size1[0]*size2[1];i++) out[i]=zrdivs(DoubleComplex(in1[i],0),in2[i]);}