diff options
author | torset | 2009-01-28 13:25:36 +0000 |
---|---|---|
committer | torset | 2009-01-28 13:25:36 +0000 |
commit | 343dc58409dcc9d52d931f9ea2e4e541cfc0db4b (patch) | |
tree | f827aea908217bc391d9955d61f0b196fcb31ce4 /src/operations/interface | |
parent | 0ac678f101949aa88e9b32792273b8cc4dd3311f (diff) | |
download | scilab2c-343dc58409dcc9d52d931f9ea2e4e541cfc0db4b.tar.gz scilab2c-343dc58409dcc9d52d931f9ea2e4e541cfc0db4b.tar.bz2 scilab2c-343dc58409dcc9d52d931f9ea2e4e541cfc0db4b.zip |
Update interfaces
Diffstat (limited to 'src/operations/interface')
-rw-r--r-- | src/operations/interface/int_OpBackSlash.h | 70 | ||||
-rw-r--r-- | src/operations/interface/int_OpDotBackSlash.h | 50 | ||||
-rw-r--r-- | src/operations/interface/int_OpDotSlash.h | 83 | ||||
-rw-r--r-- | src/operations/interface/int_OpDotStar.h | 60 | ||||
-rw-r--r-- | src/operations/interface/int_OpMinus.h | 103 | ||||
-rw-r--r-- | src/operations/interface/int_OpPlus.h | 115 | ||||
-rw-r--r-- | src/operations/interface/int_OpSlash.h | 137 | ||||
-rw-r--r-- | src/operations/interface/int_OpStar.h | 104 |
8 files changed, 406 insertions, 316 deletions
diff --git a/src/operations/interface/int_OpBackSlash.h b/src/operations/interface/int_OpBackSlash.h index 8f000b63..217aaa34 100644 --- a/src/operations/interface/int_OpBackSlash.h +++ b/src/operations/interface/int_OpBackSlash.h @@ -36,40 +36,76 @@ /* Scalar \ Matrix */ -#define s0s2OpBackSlashs2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= sldivs(in1,in2[i]); +#define s0s2OpBackSlashs2(in1,in2,size,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= sldivs(in1,in2[i]);} -#define d0d2OpBackSlashd2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= dldivs(in1,in2[i]); +#define d0d2OpBackSlashd2(in1,in2,size,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= dldivs(in1,in2[i]);} + +#define c0c2OpBackSlashc2(in1,in2,size,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(in1,in2[i]);} -#define c0c2OpBackSlashc2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(in1,in2[i]); +#define z0z2OpBackSlashz2(in1,in2,size,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(in1,in2[i]);} -#define z0z2OpBackSlashz2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(in1,in2[i]); +#define s0c2OpBackSlashc2(in1,in2,size,out) c0c2OpBackSlashc2(FloatComplex(in1,0),in2,size,out) -#define s0c2OpBackSlashc2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(FloatComplex(in1,0),in2[i]); +#define d0z2OpBackSlashz2(in1,in2,size,out) z0z2OpBackSlashz2(DoubleCompelex(in1,0),in2,size,out) -#define d0z2OpBackSlashz2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(DoubleComplex(in1,0),in2[i]); +#define c0s2OpBackSlashc2(in1,in2,size,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(in1,FloatComplex(in2[i],0));} -#define c0s2OpBackSlashc2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(in1,FloatComplex(in2[i],0)); - -#define z0d2OpBackSlashz2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(in1,DoubleComplex(in2[i],0)); +#define z0d2OpBackSlashz2(in1,in2,size,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(in1,DoubleComplex(in2[i],0));} /* Matrix \ Scalar */ -#define s2s0OpBackSlashs2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= sldivs(in1[i],in2); +#define s2s0OpBackSlashs2(in1,size,in2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= sldivs(in1[i],in2);} + +#define d2d0OpBackSlashd2(in1,size,in2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= dldivs(in1[i],in2);} + +#define c2c0OpBackSlashc2(in1,size,in2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(in1[i],in2);} + +#define z2z0OpBackSlashz2(in1,size,in2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(in1[i],in2);} + +#define s2c0OpBackSlashc2(in1,size,in2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(FloatComplex(in1[i],0),in2);} + +#define d2z0OpBackSlashz2(in1,size,in2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(DoubleComplex(in1[i],0),in2);} + +#define c2s0OpBackSlashc2(in1,size,in2,out) c2c0OpBackSlashc2(in1,size,FloatComplex(in2,0),out) + +#define z2d0OpBackSlashz2(in1,size,in2,out) z2z0OpBackSlashz2(in1,size,DoubleComplex(in2,0),out) + + + +/* Matrix \ Matrix */ + +#define s2s2OpBackSlashs2(in1,size1,in2,size2,out) sldivma(in1,size1[0],size1[1],in2,size2[0],size2[1],out) -#define d2d0OpBackSlashd2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= dldivs(in1[i],in2); +#define d2d2OpBackSlashd2(in1,size1,in2,size2,out) dldivma(in1,size1[0],size1[1],in2,size2[0],size2[1],out) -#define c2c0OpBackSlashc2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(in1[i],in2); +#define c2c2OpBackSlashc2(in1,size1,in2,size2,out) cldivma(in1,size1[0],size1[1],in2,size2[0],size2[1],out) -#define z2z0OpBackSlashz2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(in1[i],in2); +#define z2z2OpBackSlashz2(in1,size1,in2,size2,out) zldivma(in1,size1[0],size1[1],in2,size2[0],size2[1],out) -#define s2c0OpBackSlashc2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(FloatComplex(in1[i],0),in2); +#define c2s2OpBackSlashc2(in1,size1,in2,size2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(in1[i],FloatComplex(in2[i],0));} -#define d2z0OpBackSlashz2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(DoubleComplex(in1[i],0),in2); +#define s2c2OpBackSlashc2(in1,size1,in2,size2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(FloatComplex(in1[i],0),in2[i]);} -#define c2s0OpBackSlashc2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(in1[i],FloatComplex(in2,0)); +#define z2d2OpBackSlashc2(in1,size1,in2,size2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(in1[i],DoubleComplex(in2[i],0));} -#define z2d0OpBackSlashz2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(in1[i],DoubleComplex(in2,0)); +#define d2z2OpBackSlashc2(in1,size1,in2,size2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(DoubleComplex(in1[i],0),in2[i]);} diff --git a/src/operations/interface/int_OpDotBackSlash.h b/src/operations/interface/int_OpDotBackSlash.h index 31e3420b..5ccd70ef 100644 --- a/src/operations/interface/int_OpDotBackSlash.h +++ b/src/operations/interface/int_OpDotBackSlash.h @@ -34,42 +34,54 @@ #define z0d0OpDotBackSlashz0(in1,in2) zldivs(in1,DoubleComplex(in2,0)) -/* Scalar .\ Matrix */ +/* Scalar \ Matrix */ -#define s0s2OpDotBackSlashs2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= sldivs(in1,in2[i]); +#define s0s2OpDotBackSlashs2(in1,in2,size,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= sldivs(in1,in2[i]);} -#define d0d2OpDotBackSlashd2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= dldivs(in1,in2[i]); +#define d0d2OpDotBackSlashd2(in1,in2,size,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= dldivs(in1,in2[i]);} + +#define c0c2OpDotBackSlashc2(in1,in2,size,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(in1,in2[i]);} -#define c0c2OpDotBackSlashc2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(in1,in2[i]); +#define z0z2OpDotBackSlashz2(in1,in2,size,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(in1,in2[i]);} -#define z0z2OpDotBackSlashz2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(in1,in2[i]); +#define s0c2OpDotBackSlashc2(in1,in2,size,out) c0c2OpDotBackSlashc2(FloatComplex(in1,0),in2,size,out) -#define s0c2OpDotBackSlashc2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(FloatComplex(in1,0),in2[i]); +#define d0z2OpDotBackSlashz2(in1,in2,size,out) z0z2OpDotBackSlashz2(DoubleCompelex(in1,0),in2,size,out) -#define d0z2OpDotBackSlashz2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(DoubleComplex(in1,0),in2[i]); +#define c0s2OpDotBackSlashc2(in1,in2,size,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(in1,FloatComplex(in2[i],0));} -#define c0s2OpDotBackSlashc2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(in1,FloatComplex(in2[i],0)); +#define z0d2OpDotBackSlashz2(in1,in2,size,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(in1,DoubleComplex(in2[i],0));} -#define z0d2OpDotBackSlashz2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(in1,DoubleComplex(in2[i],0)); +/* Matrix \ Scalar */ -/* Matrix .\ Scalar */ +#define s2s0OpDotBackSlashs2(in1,size,in2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= sldivs(in1[i],in2);} -#define s2s0OpDotBackSlashs2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= sldivs(in1[i],in2); +#define d2d0OpDotBackSlashd2(in1,size,in2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= dldivs(in1[i],in2);} -#define d2d0OpDotBackSlashd2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= dldivs(in1[i],in2); +#define c2c0OpDotBackSlashc2(in1,size,in2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(in1[i],in2);} -#define c2c0OpDotBackSlashc2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(in1[i],in2); +#define z2z0OpDotBackSlashz2(in1,size,in2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(in1[i],in2);} -#define z2z0OpDotBackSlashz2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(in1[i],in2); +#define s2c0OpDotBackSlashc2(in1,size,in2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(FloatComplex(in1[i],0),in2);} -#define s2c0OpDotBackSlashc2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(FloatComplex(in1[i],0),in2); +#define d2z0OpDotBackSlashz2(in1,size,in2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(DoubleComplex(in1[i],0),in2);} -#define d2z0OpDotBackSlashz2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(DoubleComplex(in1[i],0),in2); +#define c2s0OpDotBackSlashc2(in1,size,in2,out) c2c0OpDotBackSlashc2(in1,size,FloatComplex(in2,0),out) -#define c2s0OpDotBackSlashc2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(in1[i],FloatComplex(in2,0)); - -#define z2d0OpDotBackSlashz2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zldivs(in1[i],DoubleComplex(in2,0)); +#define z2d0OpDotBackSlashz2(in1,size,in2,out) z2z0OpDotBackSlashz2(in1,size,DoubleComplex(in2,0),out) /* Matrix .\ Matrix */ diff --git a/src/operations/interface/int_OpDotSlash.h b/src/operations/interface/int_OpDotSlash.h index a745b77c..b45e1e8d 100644 --- a/src/operations/interface/int_OpDotSlash.h +++ b/src/operations/interface/int_OpDotSlash.h @@ -34,43 +34,75 @@ #define z0d0OpDotSlashz0(in1,in2) zrdivs(in1,DoubleComplex(in2,0)) -/* Scalar ./ Matrix */ +/* Scalar / Matrix */ -#define s0s2OpDotSlashs2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= srdivs(in1,in2[i]); -#define d0d2OpDotSlashd2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= drdivs(in1,in2[i]); +#define s0s2OpDotSlashs2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=in1/in2[i];} -#define c0c2OpDotSlashc2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= crdivs(in1,in2[i]); -#define z0z2OpDotSlashz2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zrdivs(in1,in2[i]); +#define d0d2OpDotSlashd2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=in1/in2[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]);} -#define s0c2OpDotSlashc2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= crdivs(FloatComplex(in1,0),in2[i]); -#define d0z2OpDotSlashz2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zrdivs(DoubleComplex(in1,0),in2[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]);} -#define c0s2OpDotSlashc2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= crdivs(in1,FloatComplex(in2[i],0)); -#define z0d2OpDotSlashz2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zrdivs(in1,DoubleComplex(in2[i],0)); +#define s0c2OpDotSlashc2(in1,in2,size,out) c0c2OpDotSlashc2(FloatComplex(in1,0),in2,size,out) -/* Matrix ./ Scalar */ +/* On transforme d0 en z0 */ +#define d0z2OpDotSlashz2(in1,in2,size,out) z0z2OpDotSlashz2(DoubleComplex(in1,0),in2,size,out) -#define s2s0OpDotSlashs2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= srdivs(in1[i],in2); -#define d2d0OpDotSlashd2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= drdivs(in1[i],in2); -#define c2c0OpDotSlashc2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= crdivs(in1[i],in2); +#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));} -#define z2z0OpDotSlashz2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zrdivs(in1[i],in2); -#define s2c0OpDotSlashc2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= crdivs(FloatComplex(in1[i],0),in2); +#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));} -#define d2z0OpDotSlashz2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zrdivs(DoubleComplex(in1[i],0),in2); -#define c2s0OpDotSlashc2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= crdivs(in1[i],FloatComplex(in2,0)); +/* Matrix / Scalar */ -#define z2d0OpDotSlashz2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zrdivs(in1[i],DoubleComplex(in2,0)); +#define s2s0OpDotSlashs2(in1,size,in2,out) {int i=0;\ + 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;} + + +#define c2c0OpDotSlashc2(in1,size,in2,out) {int i=0;\ + 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);} + + +#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);} + + +#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);} + + +#define c2s0OpDotSlashc2(in1,size,in2,out) c2c0OpDotSlashc2(in1,size,FloatComplex(in2,0),out) + + +#define z2d0OpDotSlashz2(in1,size,in2,out) z2z0OpDotSlashz2(in1,size,DoubleComplex(in2,0),out) + + + /* Matrix ./ Matrix */ #define s2s2OpDotSlashs2(in1,size1,in2,size2,out) srdiva(in1,in2,size2[0]*size2[1],out) @@ -79,15 +111,20 @@ #define c2c2OpDotSlashc2(in1,size1,in2,size2,out) crdiva(in1,in2,size2[0]*size2[1],out) -#define c2s2OpDotSlashc2(in1,size1,in2,size2,out) crdiva(in1,FloatComplexMatrix(in2,0,size2[0]*size2[1]),size2[0]*size2[1],out) +#define z2z2OpDotSlashz2(in1,size1,in2,size2,out) zrdiva(in1,in2,size2[0]*size2[1],out) -#define s2c2OpDotSlashc2(in1,size1,in2,size2,out) crdiva(FloatComplexMatrix(in1,0,size1[0]*size1[1]),in2,size2[0]*size2[1],out) -#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;\ + for (i=0;i<size[0]*size[1];i++) out[i]=crdivs(in1[i],FloatComplex(in2[i],0));} + +#define s2c2OpDotSlashc2(in1,size1,in2,size2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=crdivs(FloatComplex(in1[i],0),in2[i]);} -#define z2d2OpDotSlashc2(in1,size1,in2,size2,out) crdiva(in1,DoubleComplexMatrix(in2,0,size2[0]*size2[1]),size2[0]*size2[1],out) +#define z2d2OpDotSlashc2(in1,size1,in2,size2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=zrdivs(in1[i],DoubleComplex(in2[i],0));} -#define d2z2OpDotSlashc2(in1,size1,in2,size2,out) crdiva(DoubleComplexMatrix(in1,0,size1[0]*size1[1]),in2,size2[0]*size2[1],out) +#define d2z2OpDotSlashc2(in1,size1,in2,size2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=zrdivs(DoubleComplex(in1[i],0),in2[i]);} diff --git a/src/operations/interface/int_OpDotStar.h b/src/operations/interface/int_OpDotStar.h index a6a21f77..bc771c74 100644 --- a/src/operations/interface/int_OpDotStar.h +++ b/src/operations/interface/int_OpDotStar.h @@ -36,40 +36,52 @@ /* Scalar .* Matrix */ -#define s0s2OpDotStars2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= smuls(in1,in2[i]); +#define s0s2OpDotStars2(in1,in2,size,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= smuls(in1,in2[i]);} -#define d0d2OpDotStard2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= dmuls(in1,in2[i]); +#define d0d2OpDotStard2(in1,in2,size,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= dmuls(in1,in2[i]);} -#define c0c2OpDotStarc2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= cmuls(in1,in2[i]); +#define c0c2OpDotStarc2(in1,in2,size,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= cmuls(in1,in2[i]);} -#define z0z2OpDotStarz2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zmuls(in1,in2[i]); +#define z0z2OpDotStarz2(in1,in2,size,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= zmuls(in1,in2[i]);} -#define s0c2OpDotStarc2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= cmuls(FloatComplex(in1,0),in2[i]); +#define s0c2OpDotStarc2(in1,in2,size,out) c0c2OpDotStarc2(FloatComplex(in1,0),in2,size,out) -#define d0z2OpDotStarz2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zmuls(DoubleComplex(in1,0),in2[i]); +#define d0z2OpDotStarz2(in1,in2,size,out) z0z2OpDotStarz2(DoubleComplex(in1,0),in2,size,out) -#define c0s2OpDotStarc2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= cmuls(in1,FloatComplex(in2[i],0)); +#define c0s2OpDotStarc2(in1,in2,size,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= cmuls(in1,FloatComplex(in2[i],0));} -#define z0d2OpDotStarz2(in1,in2,size,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zmuls(in1,DoubleComplex(in2[i],0)); +#define z0d2OpDotStarz2(in1,in2,size,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= zmuls(in1,DoubleComplex(in2[i],0));} /* Matrix .* Scalar */ -#define s2s0OpDotStars2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= smuls(in1[i],in2); +#define s2s0OpDotStars2(in1,size,in2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= smuls(in1[i],in2);} -#define d2d0OpDotStard2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= dmuls(in1[i],in2); +#define d2d0OpDotStard2(in1,size,in2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= dmuls(in1[i],in2);} -#define c2c0OpDotStarc2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= cmuls(in1[i],in2); +#define c2c0OpDotStarc2(in1,size,in2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= cmuls(in1[i],in2);} -#define z2z0OpDotStarz2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zmuls(in1[i],in2); +#define z2z0OpDotStarz2(in1,size,in2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= zmuls(in1[i],in2);} -#define s2c0OpDotStarc2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= cmuls(FloatComplex(in1[i],0),in2); +#define s2c0OpDotStarc2(in1,size,in2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= cmuls(FloatComplex(in1[i],0),in2);} -#define d2z0OpDotStarz2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zmuls(DoubleComplex(in1[i],0),in2); +#define d2z0OpDotStarz2(in1,size,in2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= zmuls(DoubleComplex(in1[i],0),in2);} -#define c2s0OpDotStarc2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= cmuls(in1[i],FloatComplex(in2,0)); +#define c2s0OpDotStarc2(in1,size,in2,out) c2c0OpDotStarc2(in1,size,FloatComplex(in2,0),out) -#define z2d0OpDotStarz2(in1,size,in2,out) for(int i=0;i<size[0]*size[1];i++) out[i]= zmuls(in1[i],DoubleComplex(in2,0)); +#define z2d0OpDotStarz2(in1,size,in2,out) z2z0OpDotStarz2(in1,size,DoubleComplex(in2,0),out) /* Matrix .* Matrix */ @@ -79,15 +91,21 @@ #define c2c2OpDotStarc2(in1,size1,in2,size2,out) cmula(in1,in2,size1[0]*size2[1],out) -#define c2s2OpDotStarc2(in1,size1,in2,size2,out) cmula(in1,FloatComplexMatrix(in2,0,size2[0]*size2[1]),size1[0]*size2[1],out) +#define z2z2OpDotStarz2(in1,size1,in2,size2,out) zmula(in1,in2,size1[0]*size2[1],out) -#define s2c2OpDotStarc2(in1,size1,in2,size2,out) cmula(FloatComplexMatrix(in1,0,size1[0]*size1[1]),in2,size1[0]*size2[1],out) -#define z2z2OpDotStarz2(in1,size1,in2,size2,out) zmula(in1,in2,size1[0]*size2[1],out) +#define c2s2OpDotStarc2(in1,size1,in2,size2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= cmuls(in1[i],FloatComplex(in2[i],0),out)} + +#define s2c2OpDotStarc2(in1,size1,in2,size2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= cmuls(FloatComplex(in1[i],0),in2[i],out)} + -#define z2d2OpDotStarc2(in1,size1,in2,size2,out) cmula(in1,DoubleComplexMatrix(in2,0,size2[0]*size2[1]),size1[0]*size2[1],out) +#define z2d2OpDotStarc2(in1,size1,in2,size2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= zmuls(in1[i],DoubleComplex(in2[i],0),out)} -#define d2z2OpDotStarc2(in1,size1,in2,size2,out) cmula(DoubleComplexMatrix(in1,0,size1[0]*size1[1]),in2,size1[0]*size2[1],out) +#define d2z2OpDotStarc2(in1,size1,in2,size2,out) {int i;\ + for(int i=0;i<size[0]*size[1];i++) out[i]= zmuls(DoubleComplex(in1[i],0),in2[i],out)} #endif /* !__INT_OPDOTSTAR_H__ */ diff --git a/src/operations/interface/int_OpMinus.h b/src/operations/interface/int_OpMinus.h index a98f52af..e63f3658 100644 --- a/src/operations/interface/int_OpMinus.h +++ b/src/operations/interface/int_OpMinus.h @@ -37,66 +37,77 @@ /* Matrix + Scalar */ -/*On transforme le scalaire en tableau et on se ramene à s2s2...s2*/ -#define s2s0OpMinuss2(in1,size,in2,out) sfilla((float*)out,size[0],size[1],in2);\ - s2s2OpMinuss2(in1,size,(float*)out,size,out) + +#define s2s0OpMinuss2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=in1[i]-in2;\ + } + + +#define d2d0OpMinusd2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=in1[i]-in2;\ + } -/*On transforme le scalaire en tableau et on se ramene à d2d2...d2*/ -#define d2d0OpMinusd2(in1,size,in2,out) dfilla((double*)out,size[0],size[1],in2);\ - d2d2OpMinusd2(in1,size,(double*)out,size,out) -/*On transforme le scalaire en tableau et on se ramene à c2c2...c2*/ -#define c2c0OpMinusc2(in1,size,in2,out) cfilla((floatComplex*)out,size[0],size[1],in2);\ - c2c2OpMinusc2(in1,size,(floatComplex*)out,size,out) +#define c2c0OpMinusc2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=cdiffs(in1[i],in2);\ + } /*On transforme le scalaire float en scalaire floatComplex pour pouvoir utiliser c2c0...c2*/ #define c2s0OpMinusc2(in1,size,in2,out) c2c0OpMinusc2(in1,size,FloatComplex(in2,0),out) -/*On transforme le tableau de float en tableau de floatComplex pour pouvoir utiliser c2c0...c2*/ -#define s2c0OpMinusc2(in1,size,in2,out) sfilla((float*)out,size[0],size[1],0);\ - c2c0OpMinusc2(FloatComplexMatrix(in1,(float*)out,size[0]*size[1]),size,in2,out) + +#define s2c0OpMinusc2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=cdiffs(FloatComplex(in1[i],0),in2);\ + } -/*On transforme le scalaire en tableau et on se ramene à z2z2...z2*/ -#define z2z0OpMinusz2(in1,size,in2,out) zfilla((doubleComplex*)out,size[0],size[1],in2);\ - z2z2OpMinusz2(in1,size,(doubleComplex*)out,size,out) + +#define z2z0OpMinusz2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=zdiffs(in1[i],in2);\ + } /*On transforme le scalaire double en scalaire doubleComplex pour pouvoir utiliser z2z0...z2*/ #define z2d0OpMinusz2(in1,size,in2,out) z2z0OpMinusz2(in1,size,DoubleComplex(in2,0),out) -/*On transforme le tableau de double en tableau de doubleComplex pour pouvoir utiliser z2z0...z2*/ -#define d2z0OpMinusz2(in1,size,in2,out) dfilla((double*)out,size[0],size[1],0);\ - z2z0OpMinusz2(DoubleComplexMatrix(in1,(double*)out,size[0]*size[1]),size,in2,out) + +#define d2z0OpMinusz2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=zdiffs(DoubleComplex(in1[i],0),in2);\ + } /* Scalar + Matrix */ -/*On transforme le scalaire en tableau et on se ramene à s2s2...s2*/ -#define s0s2OpMinuss2(in1,in2,size,out) sfilla((float*)out,size[0],size[1],in1);\ - s2s2OpMinuss2((float*)out,size,in2,size,out) + +#define s0s2OpMinuss2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=in1-in2[i];\ + } -/*On transforme le scalaire en tableau et on se ramene à d2d2...d2*/ -#define d0d2OpMinusd2(in1,in2,size,out) dfilla((double*)out,size[0],size[1],in1);\ - d2d2OpMinusd2((double*)out,size,in2,size,out) + +#define d0d2OpMinusd2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=in1-in2[i];\ + } -/*On transforme le scalaire en tableau et on se ramene à c2c2...c2*/ -#define c0c2OpMinusc2(in1,in2,size,out) cfilla((floatComplex*)out,size[0],size[1],in1);\ - c2c2OpMinusc2((floatComplex*)out,size,in2,size,out) + +#define c0c2OpMinusc2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=cdiffs(in1,in2[i]);\ + } /*On transforme le scalaire float en scalaire floatComplex pour pouvoir utiliser c0c2...c2*/ #define s0c2OpMinusc2(in1,in2,size,out) c0c2OpMinusc2(FloatComplex(in1,0),in2,size,out) -/*On transforme le tableau de float en tableau de floatComplex pour pouvoir utiliser c0c2...c2*/ -#define c0s2OpMinusc2(in1,in2,size,out) sfilla((float*)out,size[0],size[1],0);\ - c0c2OpMinusc2(in1,FloatComplexMatrix(in2,(float*)out,size[0]*size[1]),size,out) + +#define c0s2OpMinusc2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=cdiffs(in1,FloatComplex(in2[i],0));\ + } -/*On transforme le scalaire en tableau et on se ramene à z2z2...z2*/ -#define z0z2OpMinusz2(in1,in2,size,out) zfilla((doubleComplex*)out,size[0],size[1],in1);\ - z2z2OpMinusz2((doubleComplex*)out,size,in2,size,out) + +#define z0z2OpMinusz2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=zdiffs(in1,in2[i]);\ + } /*On transforme le scalaire double en scalaire doubleComplex pour pouvoir utiliser z0z2...z2*/ #define d0z2OpMinusz2(in1,in2,size,out) z0z2OpMinusz2(DoubleComplex(in1,0),in2,size,out) -/*On transforme le tableau de double en tableau de doubleComplex pour pouvoir utiliser z0z2...z2*/ + #define z0d2OpMinusz2(in1,in2,size,out) dfilla((double*)out,size[0],size[1],0);\ z0z2OpMinusz2(in1,DoubleComplexMatrix(in2,(double*)out,size[0]*size[1]),size,out) @@ -110,23 +121,23 @@ #define c2c2OpMinusc2(in1,size1,in2,size2,out) cdiffa(in1, size1[0]*size1[1], in2, size2[0]*size2[1], out) -/*On transforme le tableau de float en tableau de floatComplex pour pouvoir utiliser c2c2...c2*/ -#define s2c2OpMinusc2(in1,size1,in2,size2,out) sfilla((float*)out,size1[0],size1[1],0);\ - c2c2OpMinusc2(FloatComplexMatrix(in1,(float*)out,size1[0]*size1[1]), size1, in2, size2, out) + +#define s2c2OpMinusc2(in1,size1,in2,size2,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=cdiffs(FloatComplex(in1[i],0),in2[i]);} -/*On transforme le tableau de float en tableau de floatComplex pour pouvoir utiliser c2c2...c2*/ -#define c2s2OpMinusc2(in1,size1,in2,size2,out) sfilla((float*)out,size2[0],size2[1],0);\ - c2c2OpMinusc2(in1, size1, FloatComplexMatrix(in2,(float*)out,size2[0]*size2[1]), size2, out) + +#define c2s2OpMinusc2(in1,size1,in2,size2,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=cdiffs(in1[i],FloatComplex(in2[i],0));} #define z2z2OpMinusz2(in1,size1,in2,size2,out) zdiffa(in1, size1[0]*size1[1], in2, size2[0]*size2[1], out) -/*On transforme le tableau de double en tableau de doubleComplex pour pouvoir utiliser z2z2...z2*/ -#define d2z2OpMinusz2(in1,size1,in2,size2,out) dfilla((double*)out,size1[0],size1[1],0);\ - z2z2OpMinusz2(DoubleComplexMatrix(in1,(double*)out,size1[0]*size1[1]), size1, in2, size2, out) + +#define d2z2OpMinusz2(in1,size1,in2,size2,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=zdiffs(DoubleComplex(in1[i],0),in2[i]);} -/*On transforme le tableau de double en tableau de doubleComplex pour pouvoir utiliser z2z2...z2*/ -#define z2d2OpMinusz2(in1,size1,in2,size2,out) dfilla((double*)out,size2[0],size2[1],0);\ - z2z2OpMinusz2(in1, size1, DoubleComplexMatrix(in2,(double*)out,size2[0]*size2[1]), size2, out) + +#define z2d2OpMinusz2(in1,size1,in2,size2,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=zdiffs(in1[i],DoubleComplex(in2[i],0));} diff --git a/src/operations/interface/int_OpPlus.h b/src/operations/interface/int_OpPlus.h index 6a40563c..80cc191a 100644 --- a/src/operations/interface/int_OpPlus.h +++ b/src/operations/interface/int_OpPlus.h @@ -38,100 +38,68 @@ /* Matrix + Scalar */ -/*On transforme le scalaire en tableau et on se ramene à s2s2...s2*/ -#define s2s0OpPluss2(in1,size,in2,out) {float* temp;\ - temp=malloc((uint)(size[0]*size[1])*sizeof(float));\ - sfilla((float*)temp,size[0],size[1],in2);\ - s2s2OpPluss2(in1,size,(float*)temp,size,out);\ - free(temp);\ +#define s2s0OpPluss2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=in1[i]+in2;\ } -/*On transforme le scalaire en tableau et on se ramene à d2d2...d2*/ -#define d2d0OpPlusd2(in1,size,in2,out) {double* temp;\ - temp=malloc((uint)(size[0]*size[1])*sizeof(double));\ - dfilla((double*)out,size[0],size[1],in2);\ - d2d2OpPlusd2(in1,size,(double*)out,size,out);\ - free(temp);\ +#define d2d0OpPlusd2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=in1[i]+in2;\ } -/*On transforme le scalaire en tableau et on se ramene à c2c2...c2*/ -#define c2c0OpPlusc2(in1,size,in2,out) {floatComplex* temp;\ - temp=malloc((uint)(size[0]*size[1])*sizeof(floatComplex));\ - cfilla((floatComplex*)temp,size[0],size[1],in2);\ - c2c2OpPlusc2(in1,size,(floatComplex*)temp,size,out);\ - free(temp);\ +#define c2c0OpPlusc2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=cadds(in1[i],in2);\ } /*On transforme le scalaire float en scalaire floatComplex pour pouvoir utiliser c2c0...c2*/ #define c2s0OpPlusc2(in1,size,in2,out) c2c0OpPlusc2(in1,size,FloatComplex(in2,0),out) -/*On transforme le tableau de float en tableau de floatComplex pour pouvoir utiliser c2c0...c2*/ -#define s2c0OpPlusc2(in1,size,in2,out) sfilla((float*)out,size[0],size[1],0);\ - c2c0OpPlusc2(FloatComplexMatrix(in1,(float*)out,size[0]*size[1]),size,in2,out); +#define s2c0OpPlusc2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=cadds(FloatComplex(in1[i],0),in2);\ + } -/*On transforme le scalaire en tableau et on se ramene à z2z2...z2*/ -#define z2z0OpPlusz2(in1,size,in2,out) {doubleComplex* temp;\ - temp=malloc((uint)(size[0]*size[1])*sizeof(doubleComplex));\ - zfilla((doubleComplex*)temp,size[0],size[1],in2);\ - z2z2OpPlusz2(in1,size,(doubleComplex*)temp,size,out);\ - free(temp);\ +#define z2z0OpPlusz2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=zadds(in1[i],in2);\ } /*On transforme le scalaire double en scalaire doubleComplex pour pouvoir utiliser z2z0...z2*/ #define z2d0OpPlusz2(in1,size,in2,out) z2z0OpPlusz2(in1,size,DoubleComplex(in2,0),out) -/*On transforme le tableau de double en tableau de doubleComplex pour pouvoir utiliser z2z0...z2*/ -#define d2z0OpPlusz2(in1,size,in2,out) dfilla((double*)out,size[0],size[1],0);\ - z2z0OpPlusz2(DoubleComplexMatrix(in1,(double*)out,size[0]*size[1]),size,in2,out); +#define d2z0OpPlusz2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=zadds(DoubleComplex(in1[i],0),in2);\ + } /* Scalar + Matrix */ -/*On transforme le scalaire en tableau et on se ramene à s2s2...s2*/ -#define s0s2OpPluss2(in1,in2,size,out) {float* temp;\ - temp=malloc((uint)(size[0]*size[1])*sizeof(float));\ - sfilla((float*)temp,size[0],size[1],in1);\ - s2s2OpPluss2((float*)temp,size,in2,size,out);\ - free(temp);\ +#define s0s2OpPluss2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=in1+in2;[i]\ } -/*On transforme le scalaire en tableau et on se ramene à d2d2...d2*/ -#define d0d2OpPlusd2(in1,in2,size,out) {double* temp;\ - temp=malloc((uint)(size[0]*size[1])*sizeof(double));\ - dfilla((double*)temp,size[0],size[1],in1);\ - d2d2OpPlusd2((double*)temp,size,in2,size,out);\ - free(temp);\ +#define d0d2OpPlusd2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=in1+in2;[i]\ } -/*On transforme le scalaire en tableau et on se ramene à c2c2...c2*/ -#define c0c2OpPlusc2(in1,in2,size,out) {floatComplex* temp;\ - temp=malloc((uint)(size[0]*size[1])*sizeof(floatComplex));\ - cfilla((floatComplex*)temp,size[0],size[1],in1);\ - c2c2OpPlusc2((floatComplex*)temp,size,in2,size,out);\ - free(temp);\ +#define c0c2OpPlusc2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=cadds(in1,in2[i]);\ } /*On transforme le scalaire float en scalaire floatComplex pour pouvoir utiliser c0c2...c2*/ #define s0c2OpPlusc2(in1,in2,size,out) c0c2OpPlusc2(FloatComplex(in1,0),in2,size,out) -/*On transforme le tableau de float en tableau de floatComplex pour pouvoir utiliser c0c2...c2*/ -#define c0s2OpPlusc2(in1,in2,size,out) sfilla((float*)out,size[0],size[1],0);\ - c0c2OpPlusc2(in1,FloatComplexMatrix(in2,(float*)out,size[0]*size[1]),size,out) +#define c0s2OpPlusc2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=cadds(in1,FloatComplex(in2[i],0));\ + } -/*On transforme le scalaire en tableau et on se ramene à z2z2...z2*/ -#define z0z2OpPlusz2(in1,in2,size,out) {doubleComplex* temp;\ - temp=malloc((uint)(size[0]*size[1])*sizeof(doubleComplex));\ - zfilla((doubleComplex*)temp,size[0],size[1],in1);\ - z2z2OpPlusz2((doubleComplex*)temp,size,in2,size,out);\ - free(temp);\ +#define z0z2OpPlusz2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=zadds(in1,in2[i]);\ } /*On transforme le scalaire double en scalaire doubleComplex pour pouvoir utiliser z0z2...z2*/ #define d0z2OpPlusz2(in1,in2,size,out) z0z2OpPlusz2(DoubleComplex(in1,0),in2,size,out) -/*On transforme le tableau de double en tableau de doubleComplex pour pouvoir utiliser z0z2...z2*/ -#define z0d2OpPlusz2(in1,in2,size,out) dfilla((double*)out,size[0],size[1],0);\ - z0z2OpPlusz2(in1,DoubleComplexMatrix(in2,(double*)out,size[0]*size[1]),size,out) +#define z0d2OpPlusz2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=zadds(in1,DoubleComplex(in2[i],0));\ + } @@ -143,23 +111,26 @@ #define c2c2OpPlusc2(in1,size1,in2,size2,out) cadda(in1, size1[0]*size1[1], in2, size2[0]*size2[1], out) -/*On transforme le tableau de float en tableau de floatComplex pour pouvoir utiliser c2c2...c2*/ -#define s2c2OpPlusc2(in1,size1,in2,size2,out) sfilla((float*)out,size1[0],size1[1],0);\ - c2c2OpPlusc2(FloatComplexMatrix(in1,(float*)out,size1[0]*size1[1]), size1, in2, size2, out) + +#define s2c2OpPlusc2(in1,size1,in2,size2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=cadds(FloatComplex(in1[i],0),in2[i]);\ + } -/*On transforme le tableau de float en tableau de floatComplex pour pouvoir utiliser c2c2...c2*/ -#define c2s2OpPlusc2(in1,size1,in2,size2,out) sfilla((float*)out,size2[0],size2[1],0);\ - c2c2OpPlusc2(in1, size1, FloatComplexMatrix(in2,(float*)out,size2[0]*size2[1]), size2, out) +#define c2s2OpPlusc2(in1,size1,in2,size2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=cadds(in1[i],FloatComplex(in2[i],0));\ + } #define z2z2OpPlusz2(in1,size1,in2,size2,out) zadda(in1, size1[0]*size1[1], in2, size2[0]*size2[1], out) -/*On transforme le tableau de double en tableau de doubleComplex pour pouvoir utiliser z2z2...z2*/ -#define d2z2OpPlusz2(in1,size1,in2,size2,out) dfilla((double*)out,size1[0],size1[1],0);\ - z2z2OpPlusz2(DoubleComplexMatrix(in1,(double*)out,size1[0]*size1[1]), size1, in2, size2, out) + +#define d2z2OpPlusz2(in1,size1,in2,size2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=zadds(DoubleComplex(in1[i],0),in2[i]);\ + } -/*On transforme le tableau de double en tableau de doubleComplex pour pouvoir utiliser z2z2...z2*/ -#define z2d2OpPlusz2(in1,size1,in2,size2,out) dfilla((double*)out,size2[0],size2[1],0);\ - z2z2OpPlusz2(in1, size1, DoubleComplexMatrix(in2,(double*)out,size2[0]*size2[1]), size2, out) + +#define z2d2OpPlusz2(in1,size1,in2,size2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=zadds(in1[i],DoubleComplex(in2[i],0));\ + } diff --git a/src/operations/interface/int_OpSlash.h b/src/operations/interface/int_OpSlash.h index c21d4fe1..def50514 100644 --- a/src/operations/interface/int_OpSlash.h +++ b/src/operations/interface/int_OpSlash.h @@ -36,88 +36,69 @@ /* Scalar / Matrix */ -/* On transforme s0 en s2 pour appeler s2s2OpDotSlashs2*/ -#define s0s2OpSlashs2(in1,in2,size,out) {float* temp;\ - sfilla((float*)temp,size[0],size[1],in1);\ - s2s2OpDotSlashs2((float*)temp,size,in2,size,out);\ - } - -/* On transforme d0 en d2 */ -#define d0d2OpSlashd2(in1,in2,size,out) {double* temp;\ - dfilla((double*)temp,size[0],size[1],in1);\ - d2d2OpDotSlashd2((double*)temp,size,in2,size,out);\ - } + +#define s0s2OpSlashs2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=in1/in2[i];} + + +#define d0d2OpSlashd2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=in1/in2[i];} -/* On transforme c0 en c2 */ -#define c0c2OpSlashc2(in1,in2,size,out) {floatComplex* temp;\ - cfilla((floatComplex*)temp,size[0],size[1],in1);\ - c2c2OpDotSlashc2((floatComplex*)temp,size,in2,size,out);\ - } -/* On transforme z0 en z2 */ -#define z0z2OpSlashz2(in1,in2,size,out) {doubleComplex* temp;\ - zfilla((doubleComplex*)temp,size[0],size[1],in1);\ - z2z2OpDotSlashz2((doubleComplex*)temp,size,in2,size,out);\ - } +#define c0c2OpSlashc2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=crdivs(in1,in2[i]);} + + +#define z0z2OpSlashz2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=zrdivs(in1,in2[i]);} + + -/* On transforme s0 en c0 pour appeler c0c2OpSlashc2 */ #define s0c2OpSlashc2(in1,in2,size,out) c0c2OpSlashc2(FloatComplex(in1,0),in2,size,out) -/* On transforme d0 en z0 */ + #define d0z2OpSlashz2(in1,in2,size,out) z0z2OpSlashz2(DoubleComplex(in1,0),in2,size,out) -/* On transforme s2 en c2 */ -#define c0s2OpSlashc2(in1,in2,size,out) {sfilla((float*)out,size[0],size[1],0);\ - c0c2OpSlashc2(in1,FloatComplexMatrix(in2,(float*)out,size[0]*size[1]),size,out);\ - } -/* On transforme d2 en z2 */ -#define z0d2OpSlashz2(in1,in2,size,out) {dfilla((double*)out,size[0],size[1],0);\ - z0z2OpSlashz2(in1,DoubleComplexMatrix(in2,(double*)out,size[0]*size[1]),size,out);\ - } + +#define c0s2OpSlashc2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=crdivs(in1,FloatComplex(in2[i],0));} + + +#define z0d2OpSlashz2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=zrdivs(in1,DoubleComplex(in2[i],0));} /* Matrix / Scalar */ -/* On transforme s0 en s2 pour appeler s2s2OpDotSlashs2*/ -#define s2s0OpSlashs2(in1,size,in2,out) {float* temp;\ - sfilla((float*)temp,size[0],size[1],in2);\ - s2s2OpDotSlashs2(in1,size,(float*)temp,size,out);\ - } - -/* On transforme d0 en d2 */ -#define d2d0OpSlashd2(in1,size,in2,out) {double* temp;\ - dfilla((double*)temp,size[0],size[1],in2);\ - d2d2OpDotSlashd2(in1,size,(double*)temp,size,out);\ - } + +#define s2s0OpSlashs2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=in1[i]/in2;} + + +#define d2d0OpSlashd2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=in1[i]/in2;} -/* On transforme c0 en c2 */ -#define c2c0OpSlashc2(in1,size,in2,out) {floatComplex* temp;\ - cfilla((floatComplex*)temp,size[0],size[1],in2);\ - c2c2OpDotSlashc2(in1,size,(floatComplex*)temp,size,out);\ - } - -/* On transforme z0 en z2 */ -#define z2z0OpSlashz2(in1,size,in2,out) {doubleComplex* temp;\ - zfilla((doubleComplex*)temp,size[0],size[1],in2);\ - z2z2OpDotSlashz2(in1,size,(doubleComplex*)temp,size,out);\ - } - -/* On transforme s2 en c2 pour appeler c2c0OpSlashc2 */ -#define s2c0OpSlashc2(in1,size,in2,out) {sfilla((float*)out,size[0],size[1],0);\ - c2c0OpSlashc2(FloatComplexMatrix(in1,(float*)out,size[0]*size[1]),size,in2,out);\ - } - -/* On transforme d2 en z2 */ -#define d2z0OpSlashz2(in1,size,in2,out) {dfilla((double*)out,size[0],size[1],0);\ - z0z2OpSlashz2(DoubleComplexMatrix(in1,(double*)out,size[0]*size[1]),size,in2,out);\ - } - -/* On transforme s0 en c0 */ +#define c2c0OpSlashc2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=crdivs(in1[i],in2);} + + +#define z2z0OpSlashz2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=zrdivs(in1[i],in2);} + + +#define s2c0OpSlashc2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=crdivs(FloatComplex(in1[i],0),in2);} + + +#define d2z0OpSlashz2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=zrdivs(DoubleComplex(in1[i],0),in2);} + + #define c2s0OpSlashc2(in1,size,in2,out) c2c0OpSlashc2(in1,size,FloatComplex(in2,0),out) -/* On transforme d0 en z0 */ + #define z2d0OpSlashz2(in1,size,in2,out) z2z0OpSlashz2(in1,size,DoubleComplex(in2,0),out) @@ -132,14 +113,28 @@ #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 z2z2OpSlashz2(in1,size1,in2,size2,out) zrdivma(in1,size1[0],size1[1],in2,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) +/* FIXME: There is some malloc in the define below, maybe they can be remove */ +#define c2s2OpSlashc2(in1,size1,in2,size2,out) {float* temp;\ + temp=malloc((uint)(size2[0]*size2[1])*sizeof(float));\ + sfilla(temp,size2[0],size2[1],0);\ + c2c2OpSlashc2(in1, size1, FloatComplexMatrix(in2,temp,size2[0]*size2[1]), size2, out);} -#define z2z2OpSlashz2(in1,size1,in2,size2,out) zrdivma(in1,size1[0],size1[1],in2,size2[0],size2[1],out) +#define s2c2OpSlashc2(in1,size1,in2,size2,out) {float* temp;\ + temp=malloc((uint)(size1[0]*size1[1])*sizeof(float));\ + sfilla(temp,size1[0],size1[1],0);\ + c2c2OpSlashc2(FloatComplexMatrix(in2,temp,size1[0]*size1[1]), size1, in2, size2, out);} + +#define z2d2OpSlashc2(in1,size1,in2,size2,out) {double* temp;\ + temp=malloc((uint)(size2[0]*size2[1])*sizeof(double));\ + dfilla(temp,size2[0],size2[1],0);\ + z2z2OpSlashz2(in1, size1, DoubleComplexMatrix(in2,temp,size2[0]*size2[1]), size2, 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) {double* temp;\ + temp=malloc((uint)(size2[0]*size2[1])*sizeof(double));\ + dfilla(temp,size1[0],size1[1],0);\ + z2z2OpSlashz2(DoubleComplexMatrix(in1,temp,size1[0]*size1[1]), size1, in2, size2, 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/operations/interface/int_OpStar.h b/src/operations/interface/int_OpStar.h index 9e4c3f79..14456060 100644 --- a/src/operations/interface/int_OpStar.h +++ b/src/operations/interface/int_OpStar.h @@ -36,67 +36,64 @@ /* Scalar * Matrix */ -/* On transforme le scalaire en tableau pour ensuite pouvoir appeler la multiplication éléments par éléments */ -#define s0s2OpStars2(in1,in2,size,out) sfilla((float*)out,size[0],size[1],in1);\ - s2s2OpDotStars2((float*)out,size,in2,size,out) -/* On transforme le scalaire en tableau pour ensuite pouvoir appeler la multiplication éléments par éléments */ -#define d0d2OpStard2(in1,in2,size,out) dfilla((double*)out,size[0],size[1],in1);\ - d2d2OpDotStard2((double*)out,size,in2,size,out) +#define s0s2OpStars2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=in1/in2[i];} -/* On transforme le scalaire en tableau pour ensuite pouvoir appeler la multiplication éléments par éléments */ -#define c0c2OpStarc2(in1,in2,size,out) cfilla((floatComplex*)out,size[0],size[1],in1);\ - c2c2OpDotStarc2((floatComplex*)out,size,in2,size,out) -/* On transforme le scalaire en tableau pour ensuite pouvoir appeler la multiplication éléments par éléments */ -#define z0z2OpStarz2(in1,in2,size,out) zfilla((doubleComplex*)out,size[0],size[1],in1);\ - z2z2OpDotStarz2((doubleComplex*)out,size,in2,size,out) +#define d0d2OpStard2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=in1/in2[i];} + + +#define c0c2OpStarc2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=cmuls(in1,in2[i]);} + + +#define z0z2OpStarz2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=zmuls(in1,in2[i]);} -/* On transforme le float en floatComplex puis on appelle c0c2...c2 */ #define s0c2OpStarc2(in1,in2,size,out) c0c2OpStarc2(FloatComplex(in1,0),in2,size,out) -/* On transforme le double en doubleComplex puis on appelle z0z2...z2 */ + #define d0z2OpStarz2(in1,in2,size,out) z0z2OpStarz2(DoubleComplex(in1,0),in2,size,out) -/* on transforme le tableau de float en tableau de floatComplex pour appeler c0c2...c2*/ -#define c0s2OpStarc2(in1,in2,size,out) sfilla((float*)out,size[0],size[1],0);\ - c0c2OpStarc2(in1,FloatComplexMatrix(in2,(float*)out,size[0]*size[1]),size,out) -/* on transforme le tableau de double en tableau de doubleComplex pour appeler z0z2...z2*/ -#define z0d2OpStarz2(in1,in2,size,out) dfilla((double*)out,size[0],size[1],0);\ - z0z2OpStarz2(in1,DoubleComplexMatrix(in2,(double*)out,size[0]*size[1]),size,out) +#define c0s2OpStarc2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=cmuls(in1,FloatComplex(in2[i],0));} + +#define z0d2OpStarz2(in1,in2,size,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=zmuls(in1,DoubleComplex(in2[i],0));} /* Matrix * Scalar */ -/* On transforme le scalaire en tableau pour ensuite pouvoir appeler la multiplication éléments par éléments */ -#define s2s0OpStars2(in1,size,in2,out) sfilla((float*)out,size[0],size[1],in2);\ - s2s2OpDotStars2(in1,size,(float*)out,size,out) -/* On transforme le scalaire en tableau pour ensuite pouvoir appeler la multiplication éléments par éléments */ -#define d2d0OpStard2(in1,size,in2,out) dfilla((double*)out,size[0],size[1],in2);\ - d2d2OpDotStard2(in1,size,(double*)out,size,out) +#define s2s0OpStars2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=in1[i]/in2;} + + +#define d2d0OpStard2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=in1[i]/in2;} + + +#define c2c0OpStarc2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=cmuls(in1[i],in2);} -/* On transforme le scalaire en tableau pour ensuite pouvoir appeler la multiplication éléments par éléments */ -#define c2c0OpStarc2(in1,size,in2,out) cfilla((floatComplex*)out,size[0],size[1],in2);\ - c2c2OpDotStarc2(in1,size,(floatComplex*)out,size,out) +#define z2z0OpStarz2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=zmuls(in1[i],in2);} -/* On transforme le scalaire en tableau pour ensuite pouvoir appeler la multiplication éléments par éléments */ -#define z2z0OpStarz2(in1,size,in2,out) zfilla((doubleComplex*)out,size[0],size[1],in2);\ - z2z2OpDotStarz2(in1,size,(doubleComplex*)out,size,out) -/* On transforme le tableau de float en tableau de floatComplex puis on appelle c2c0...c2 */ -#define s2c0OpStarc2(in1,size,in2,out) sfilla((float*)out,size[0],size[1],0);\ - c2c0OpStarc2(FloatComplexMatrix(in1,(float*)out,size[0]*size[1]),size,in2,out) +#define s2c0OpStarc2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=cmuls(FloatComplex(in1[i],0),in2);} -/* On transforme le tableau de double en tableau de doubleComplex puis on appelle z2z0...z2 */ -#define d2z0OpStarz2(in1,size,in2,out) dfilla((double*)out,size[0],size[1],0);\ - z2z0OpStarz2(DoubleComplexMatrix(in1,(double*)out,size[0]*size[1]),size,in2,out) -/* on transforme le float en floatComplex pour appeler c2c0...c2*/ +#define d2z0OpStarz2(in1,size,in2,out) {int i=0;\ + for (i=0;i<size[0]*size[1];i++) out[i]=cmuls(DoubleComplex(in1[i],0),in2);} + + #define c2s0OpStarc2(in1,size,in2,out) c2c0OpStarc2(in1,size,FloatComplex(in2,0),out) -/* on transforme le double en doubleComplex pour appeler z2z0...z2*/ + #define z2d0OpStarz2(in1,size,in2,out) z2z0OpStarz2(in1,size,DoubleComplex(in2,0),out) /* Matrix * Matrix */ @@ -107,14 +104,27 @@ #define c2c2OpStarc2(in1,size1,in2,size2,out) cmulma(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) +/* FIXME: There is some malloc in the define below, maybe they can be remove */ +#define c2s2OpStarc2(in1,size1,in2,size2,out) {float* temp;\ + temp=malloc((uint)(size2[0]*size2[1])*sizeof(float));\ + sfilla(temp,size2[0],size2[1],0);\ + c2c2OpStarc2(in1, size1, FloatComplexMatrix(in2,temp,size2[0]*size2[1]), size2, out);} + +#define s2c2OpStarc2(in1,size1,in2,size2,out) {float* temp;\ + temp=malloc((uint)(size1[0]*size1[1])*sizeof(float));\ + sfilla(temp,size1[0],size1[1],0);\ + c2c2OpStarc2(FloatComplexMatrix(in2,temp,size1[0]*size1[1]), size1, in2, size2, out);} + +#define z2d2OpStarc2(in1,size1,in2,size2,out) {double* temp;\ + temp=malloc((uint)(size2[0]*size2[1])*sizeof(double));\ + dfilla(temp,size2[0],size2[1],0);\ + z2z2OpStarz2(in1, size1, DoubleComplexMatrix(in2,temp,size2[0]*size2[1]), size2, out);} + +#define d2z2OpStarc2(in1,size1,in2,size2,out) {double* temp;\ + temp=malloc((uint)(size2[0]*size2[1])*sizeof(double));\ + dfilla(temp,size1[0],size1[1],0);\ + z2z2OpStarz2(DoubleComplexMatrix(in1,temp,size1[0]*size1[1]), size1, in2, size2, out);} #endif /* !__INT_OPSTAR_H__ */ |