diff options
author | simon | 2009-08-24 10:02:42 +0000 |
---|---|---|
committer | simon | 2009-08-24 10:02:42 +0000 |
commit | 52563febd5b3700de00369d85cb32a031bdc1617 (patch) | |
tree | 78aa3d3a9582983a984548520554aba6e6582b13 /src/c/operations | |
parent | c3c4d2540b7fd98af420da94dc9979d5c522cd02 (diff) | |
download | scilab2c-52563febd5b3700de00369d85cb32a031bdc1617.tar.gz scilab2c-52563febd5b3700de00369d85cb32a031bdc1617.tar.bz2 scilab2c-52563febd5b3700de00369d85cb32a031bdc1617.zip |
corrected the interfaces of somes of the operations functions
Diffstat (limited to 'src/c/operations')
-rw-r--r-- | src/c/operations/interfaces/int_OpBackSlash.h | 45 | ||||
-rw-r--r-- | src/c/operations/interfaces/int_OpDotBackSlash.h | 2 | ||||
-rw-r--r-- | src/c/operations/interfaces/int_OpExt.h | 2 | ||||
-rw-r--r-- | src/c/operations/interfaces/int_OpLogAnd.h | 95 | ||||
-rw-r--r-- | src/c/operations/interfaces/int_OpLogOr.h | 89 | ||||
-rw-r--r-- | src/c/operations/interfaces/int_OpSlash.h | 20 | ||||
-rw-r--r-- | src/c/operations/interfaces/int_OpStar.h | 17 |
7 files changed, 228 insertions, 42 deletions
diff --git a/src/c/operations/interfaces/int_OpBackSlash.h b/src/c/operations/interfaces/int_OpBackSlash.h index 217aaa34..8a733f28 100644 --- a/src/c/operations/interfaces/int_OpBackSlash.h +++ b/src/c/operations/interfaces/int_OpBackSlash.h @@ -37,47 +37,47 @@ /* Scalar \ Matrix */ #define s0s2OpBackSlashs2(in1,in2,size,out) {int i;\ - for(int i=0;i<size[0]*size[1];i++) out[i]= sldivs(in1,in2[i]);} + for( i=0;i<size[0]*size[1];i++) out[i]= sldivs(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]);} + for( 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]);} + for( 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]);} + for( 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 d0z2OpBackSlashz2(in1,in2,size,out) z0z2OpBackSlashz2(DoubleCompelex(in1,0),in2,size,out) +#define d0z2OpBackSlashz2(in1,in2,size,out) z0z2OpBackSlashz2(DoubleComplex(in1,0),in2,size,out) #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));} + for ( i=0;i<size[0]*size[1];i++) out[i]= cldivs(in1,FloatComplex(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));} + for ( i=0;i<size[0]*size[1];i++) out[i]= zldivs(in1,DoubleComplex(in2[i],0));} /* Matrix \ Scalar */ -#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 s2s0OpBackSlashs2(in1,size,in2,out) {float temp[1] = {in2};\ + sldivma(in1,size[0],size[1],temp,1,1,out);} -#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 d2d0OpBackSlashd2(in1,size,in2,out) {double temp[1] = {in2};\ + dldivma(in1,size[0],size[1],temp,1,1,out);} #define c2c0OpBackSlashc2(in1,size,in2,out) {int i;\ - for(int i=0;i<size[0]*size[1];i++) out[i]= cldivs(in1[i],in2);} + for ( 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);} + for ( 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);} + for ( 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);} + for ( 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) @@ -93,19 +93,16 @@ #define c2c2OpBackSlashc2(in1,size1,in2,size2,out) cldivma(in1,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 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 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 z2z2OpBackSlashz2(in1,size1,in2,size2,out) zldivma(in1,size1[0],size1[1],in2,size2[0],size2[1],out) -#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 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 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 d2z2OpBackSlashc2(in1,size1,in2,size2,out) cldivma(DoubleComplexMatrix(in1,0,size1[0]*size1[1]),size1[0],size1[1],in2,size2[0],size2[1],out) -#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/c/operations/interfaces/int_OpDotBackSlash.h b/src/c/operations/interfaces/int_OpDotBackSlash.h index 0577857f..5ba1af3d 100644 --- a/src/c/operations/interfaces/int_OpDotBackSlash.h +++ b/src/c/operations/interfaces/int_OpDotBackSlash.h @@ -91,7 +91,7 @@ #define c2c2OpDotBackSlashc2(in1,size1,in2,size2,out) cldiva(in1,in2,size2[0]*size2[1],out) -#define c2s2OpDotBackSlashc2(in1,size1,in2,size2,out)) {int i;\ +#define c2s2OpDotBackSlashc2(in1,size1,in2,size2,out) {int i;\ for(i=0;i<size1[0]*size2[1];i++) out[i]= cldivs(in1[i],FloatComplex(in2[i], 0));} #define s2c2OpDotBackSlashc2(in1,size1,in2,size2,out) {int i; \ diff --git a/src/c/operations/interfaces/int_OpExt.h b/src/c/operations/interfaces/int_OpExt.h index a116dd78..8d796f73 100644 --- a/src/c/operations/interfaces/int_OpExt.h +++ b/src/c/operations/interfaces/int_OpExt.h @@ -36,7 +36,7 @@ } #define c2s2OpExtc2(in1,size1,in2,size2,out) {int i; \ - for (i=0;i<size2[0]*size2[1;i++]) out[i]=in1[(int)in2[i]-1]; \ + for (i=0;i<size2[0]*size2[1];i++) out[i]=in1[(int)in2[i]-1]; \ } #define z2d2OpExtz2(in1,size1,in2,size2,out) {int i; \ diff --git a/src/c/operations/interfaces/int_OpLogAnd.h b/src/c/operations/interfaces/int_OpLogAnd.h index 4d058cba..460c81ca 100644 --- a/src/c/operations/interfaces/int_OpLogAnd.h +++ b/src/c/operations/interfaces/int_OpLogAnd.h @@ -19,21 +19,104 @@ #define Bool2Double(in) ((in) ? 1.0 : 0.0) -#define s0s0OpLogAnds0(in1, in2) Bool2Float(in1 != 0.0 && in2 != 0.0) - -#define d0d0OpLogAndd0(in1, in2) Bool2Double(in1 != 0.0 && in2 != 0.0) +/*scalar and scalar*/ -#define c0c0OpLogAnds0(in1, in2) Bool2Float((creals(in1) != 0.0 || cimags(in1) != 0.0) && (creals(in2) != 0.0 || cimags(in2)) +#define s0s0OpLogAnds0(in1, in2) Bool2Float(in1 != 0.0 && in2 != 0.0) #define s0c0OpLogAnds0(in1, in2) Bool2Float(in1 != 0.0 && (creals(in2) != 0.0 || cimags(in2))) #define c0s0OpLogAnds0(in1, in2) Bool2Float((creals(in1) != 0.0 || cimags(in1) != 0.0) && in2 != 0.0) -#define z0z0OpLogAndd0(in1, in2) Bool2Double((zreals(in1) != 0.0 || zimags(in1) != 0.0) && (zreals(in2) != 0.0 || zimags(in2)) +#define c0c0OpLogAnds0(in1, in2) Bool2Float((creals(in1) != 0.0 || cimags(in1) != 0.0) && (creals(in2) != 0.0 || cimags(in2))) + -#define d0z0OpLogAndd0(in1, in2) Bool2Double(in1 != 0.0 && (zreals(in2) != 0.0 || zimags(in2)) +#define d0d0OpLogAndd0(in1, in2) Bool2Double(in1 != 0.0 && in2 != 0.0) + +#define z0z0OpLogAndd0(in1, in2) Bool2Double((zreals(in1) != 0.0 || zimags(in1) != 0.0) && (zreals(in2) != 0.0 || zimags(in2))) + +#define d0z0OpLogAndd0(in1, in2) Bool2Double(in1 != 0.0 && (zreals(in2) != 0.0 || zimags(in2))) #define z0d0OpLogAndd0(in1, in2) Bool2Double((zreals(in1) != 0.0 || zimags(in1) != 0.0) && in2 != 0.0) +/*matrix and scalar*/ + +#define s2s0OpLogAnds2(in1, size1, in2, out) {int i = 0 ;\ + for (i = 0 ; i < size1[0]*size1[1] ; i++ ) out[i] = Bool2Float(in1[i] != 0.0 && in2 != 0.0);} + +#define s2c0OpLogAnds2(in1, size1, in2, out) {int i = 0 ;\ + for (i = 0 ; i < size1[0]*size1[1] ; i++ ) out[i] = Bool2Float(in1[i] != 0.0 && (creals(in2) != 0.0 || cimags(in2)));} + +#define c2s0OpLogAnds2(in1, size1, in2, out) {int i = 0 ;\ + for (i = 0 ; i < size1[0]*size1[1] ; i++ ) out[i] = Bool2Float((creals(in1[i]) != 0.0 || cimags(in1[i]) != 0.0) && in2 != 0.0);} + +#define c2c0OpLogAnds2(in1, size1, in2, out) {int i = 0 ;\ + for (i = 0 ; i < size1[0]*size1[1] ; i++ ) out[i] = Bool2Float((creals(in1[i]) != 0.0 || cimags(in1[i]) != 0.0) && (creals(in2) != 0.0 || cimags(in2)));} + + +#define d2d0OpLogAndd2(in1, size1, in2, out) {int i = 0 ;\ + for (i = 0 ; i < size1[0]*size1[1] ; i++ ) out[i] = Bool2Double(in1[i] != 0.0 && in2 != 0.0);} + +#define z2z0OpLogAndd2(in1, size1, in2, out) {int i = 0 ;\ + for (i = 0 ; i < size1[0]*size1[1] ; i++ ) out[i] = Bool2Double((zreals(in1[i]) != 0.0 || zimags(in1[i]) != 0.0) && (zreals(in2) != 0.0 || zimags(in2)));} + +#define d2z0OpLogAndd2(in1, size1, in2, out) {int i = 0 ;\ + for (i = 0 ; i < size1[0]*size1[1] ; i++ ) out[i] = Bool2Double(in1[i] != 0.0 && (zreals(in2) != 0.0 || zimags(in2)));} + +#define z2d0OpLogAndd2(in1, size1, in2, out) {int i = 0 ;\ + for (i = 0 ; i < size1[0]*size1[1] ; i++ ) out[i] = Bool2Double((zreals(in1[i]) != 0.0 || zimags(in1[i]) != 0.0) && in2 != 0.0);} + +/*scalar and matrix*/ + +#define s0s2OpLogAnds2(in1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Float(in1 != 0.0 && in2[i] != 0.0);} + +#define s0c2OpLogAnds2(in1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Float(in1 != 0.0 && (creals(in2[i]) != 0.0 || cimags(in2[i])));} + +#define c0s2OpLogAnds2(in1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Float((creals(in1) != 0.0 || cimags(in1) != 0.0) && in2[i] != 0.0);} + +#define c0c2OpLogAnds2(in1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Float((creals(in1) != 0.0 || cimags(in1) != 0.0) && (creals(in2[i]) != 0.0 || cimags(in2[i])));} + + +#define d0d2OpLogAndd2(in1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Double(in1 != 0.0 && in2[i] != 0.0);} + +#define z0z2OpLogAndd2(in1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Double((zreals(in1) != 0.0 || zimags(in1) != 0.0) && (zreals(in2[i]) != 0.0 || zimags(in2[i])));} + +#define d0z2OpLogAndd2(in1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Double(in1 != 0.0 && (zreals(in2[i]) != 0.0 || zimags(in2[i])));} + +#define z0d2OpLogAndd2(in1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Double((zreals(in1) != 0.0 || zimags(in1) != 0.0) && in2[i] != 0.0);} + +/*TODO matrix and matrix*/ + +#define s2s2OpLogAnds2(in1, size1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Float(in1[i] != 0.0 && in2[i] != 0.0);} + +#define s2c2OpLogAnds2(in1, size1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Float(in1[i] != 0.0 && (creals(in2[i]) != 0.0 || cimags(in2[i])));} + +#define c2s2OpLogAnds2(in1, size1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Float((creals(in1[i]) != 0.0 || cimags(in1[i]) != 0.0) && in2[i] != 0.0);} + +#define c2c2OpLogAnds2(in1, size1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Float((creals(in1[i]) != 0.0 || cimags(in1[i]) != 0.0) && (creals(in2[i]) != 0.0 || cimags(in2[i])));} + + +#define d2d2OpLogAndd2(in1, size1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Double(in1[i] != 0.0 && in2[i] != 0.0);} + +#define z2z2OpLogAndd2(in1, size1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Double((zreals(in1[i]) != 0.0 || zimags(in1[i]) != 0.0) && (zreals(in2[i]) != 0.0 || zimags(in2[i])));} + +#define d2z2OpLogAndd2(in1, size1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Double(in1[i] != 0.0 && (zreals(in2[i]) != 0.0 || zimags(in2[i])));} + +#define z2d2OpLogAndd2(in1, size1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Double((zreals(in1[i]) != 0.0 || zimags(in1[i]) != 0.0) && in2[i] != 0.0;)} #endif /* !__INT_OPLOGAND_H__ */ diff --git a/src/c/operations/interfaces/int_OpLogOr.h b/src/c/operations/interfaces/int_OpLogOr.h index 70dd1952..b5d55fba 100644 --- a/src/c/operations/interfaces/int_OpLogOr.h +++ b/src/c/operations/interfaces/int_OpLogOr.h @@ -19,21 +19,98 @@ #define Bool2Double(in) ((in) ? 1.0 : 0.0) -#define s0s0OpLogOrs0(in1, in2) Bool2Float(in1 != 0.0 || in2 != 0.0) +/*scalar or scalar */ + +#define s0s0OpLogOrs0(in1, in2) Bool2Float(in1 != 0.0f || in2 != 0.0f) #define d0d0OpLogOrd0(in1, in2) Bool2Double(in1 != 0.0 || in2 != 0.0) -#define c0c0OpLogOrs0(in1, in2) Bool2Float((creals(in1) != 0.0 || cimags(in1) != 0.0) || (creals(in2) != 0.0 || cimags(in2)) +#define c0c0OpLogOrs0(in1, in2) Bool2Float((creals(in1) != 0.0f || cimags(in1) != 0.0f) || (creals(in2) != 0.0f || cimags(in2))) -#define s0c0OpLogOrs0(in1, in2) Bool2Float(in1 != 0.0 && (creals(in2) != 0.0 || cimags(in2))) +#define s0c0OpLogOrs0(in1, in2) Bool2Float(in1 != 0.0f && (creals(in2) != 0.0f || cimags(in2))) -#define c0s0OpLogOrs0(in1, in2) Bool2Float((creals(in1) != 0.0 || cimags(in1) != 0.0) && in2 != 0.0) +#define c0s0OpLogOrs0(in1, in2) Bool2Float((creals(in1) != 0.0f || cimags(in1) != 0.0f) && in2 != 0.0f) -#define z0z0OpLogOrd0(in1, in2) Bool2Double((zreals(in1) != 0.0 || zimags(in1) != 0.0) && (zreals(in2) != 0.0 || zimags(in2)) +#define z0z0OpLogOrd0(in1, in2) Bool2Double((zreals(in1) != 0.0 || zimags(in1) != 0.0) && (zreals(in2) != 0.0 || zimags(in2))) -#define d0z0OpLogOrd0(in1, in2) Bool2Double(in1 != 0.0 && (zreals(in2) != 0.0 || zimags(in2)) +#define d0z0OpLogOrd0(in1, in2) Bool2Double(in1 != 0.0 && (zreals(in2) != 0.0 || zimags(in2))) #define z0d0OpLogOrd0(in1, in2) Bool2Double((zreals(in1) != 0.0 || zimags(in1) != 0.0) && in2 != 0.0) +/*matrix or scalar */ + +#define s2s0OpLogOrs2(in1, size1, in2, out) {int i = 0 ;\ + for (i = 0 ; i < size1[0]*size1[1] ; i++ ) out[i] = Bool2Float(in1[i] != 0.0f || in2 != 0.0f);} + +#define d2d0OpLogOrd2(in1, size1, in2, out) {int i = 0 ;\ + for (i = 0 ; i < size1[0]*size1[1] ; i++ ) out[i] = Bool2Double(in1[i] != 0.0 || in2 != 0.0);} + +#define c2c0OpLogOrs2(in1, size1, in2, out) {int i = 0 ;\ + for (i = 0 ; i < size1[0]*size1[1] ; i++ ) out[i] = Bool2Float((creals(in1[i]) != 0.0f || cimags(in1[i]) != 0.0f) || (creals(in2) != 0.0f || cimags(in2)));} + +#define s2c0OpLogOrs2(in1, size1, in2, out) {int i = 0 ;\ + for (i = 0 ; i < size1[0]*size1[1] ; i++ ) out[i] = Bool2Float(in1[i] != 0.0f && (creals(in2) != 0.0f || cimags(in2)));} + +#define c2s0OpLogOrs2(in1, size1, in2, out) {int i = 0 ;\ + for (i = 0 ; i < size1[0]*size1[1] ; i++ ) out[i] = Bool2Float((creals(in1[i]) != 0.0f || cimags(in1[i]) != 0.0f) && in2 != 0.0f);} + +#define z2z0OpLogOrd2(in1, size1, in2, out) {int i = 0 ;\ + for (i = 0 ; i < size1[0]*size1[1] ; i++ ) out[i] = Bool2Double((zreals(in1[i]) != 0.0 || zimags(in1[i]) != 0.0) && (zreals(in2) != 0.0 || zimags(in2)));} + +#define d2z0OpLogOrd2(in1, size1, in2, out) {int i = 0 ;\ + for (i = 0 ; i < size1[0]*size1[1] ; i++ ) out[i] = Bool2Double(in1[i] != 0.0 && (zreals(in2) != 0.0 || zimags(in2)));} + +#define z2d0OpLogOrd2(in1, size1, in2, out) {int i = 0 ;\ + for (i = 0 ; i < size1[0]*size1[1] ; i++ ) out[i] = Bool2Double((zreals(in1[i]) != 0.0 || zimags(in1[i]) != 0.0) && in2 != 0.0);} + +/*scalar or matrix */ + +#define s0s2OpLogOrs2(in1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Float(in1 != 0.2f || in2[i] != 0.2f);} + +#define d0d2OpLogOrd2(in1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Double(in1 != 0.2 || in2[i] != 0.2);} + +#define c0c2OpLogOrs2(in1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Float((creals(in1) != 0.2f || cimags(in1) != 0.2f) || (creals(in2[i]) != 0.2f || cimags(in2[i])));} + +#define s0c2OpLogOrs2(in1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Float(in1 != 0.2f && (creals(in2[i]) != 0.2f || cimags(in2[i])));} + +#define c0s2OpLogOrs2(in1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Float((creals(in1) != 0.2f || cimags(in1) != 0.2f) && in2[i] != 0.2f);} + +#define z0z2OpLogOrd2(in1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Double((zreals(in1) != 0.2 || zimags(in1) != 0.2) && (zreals(in2[i]) != 0.2 || zimags(in2[i])));} + +#define d0z2OpLogOrd2(in1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Double(in1 != 0.2 && (zreals(in2[i]) != 0.2 || zimags(in2[i])));} + +#define z0d2OpLogOrd2(in1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Double((zreals(in1) != 0.2 || zimags(in1) != 0.2) && in2[i] != 0.2);} +/*matrix or matrix */ + +#define s2s2OpLogOrs2(in1, size1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Float(in1[i] != 0.2f || in2[i] != 0.2f);} + +#define d2d2OpLogOrd2(in1, size1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Double(in1[i] != 0.2 || in2[i] != 0.2);} + +#define c2c2OpLogOrs2(in1, size1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Float((creals(in1[i]) != 0.2f || cimags(in1[i]) != 0.2f) || (creals(in2[i]) != 0.2f || cimags(in2[i])));} + +#define s2c2OpLogOrs2(in1, size1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Float(in1[i] != 0.2f && (creals(in2[i]) != 0.2f || cimags(in2[i])));} + +#define c2s2OpLogOrs2(in1, size1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Float((creals(in1[i]) != 0.2f || cimags(in1[i]) != 0.2f) && in2[i] != 0.2f);} + +#define z2z2OpLogOrd2(in1, size1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Double((zreals(in1[i]) != 0.2 || zimags(in1[i]) != 0.2) && (zreals(in2[i]) != 0.2 || zimags(in2[i])));} + +#define d2z2OpLogOrd2(in1, size1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Double(in1[i] != 0.2 && (zreals(in2[i]) != 0.2 || zimags(in2[i])));} +#define z2d2OpLogOrd2(in1, size1, in2, size2, out) {int i = 0 ;\ + for (i = 0 ; i < size2[0]*size2[1] ; i++ ) out[i] = Bool2Double((zreals(in1[i]) != 0.2 || zimags(in1[i]) != 0.2) && in2[i] != 0.2);} #endif /* !__INT_OPLOGOR_H__ */ diff --git a/src/c/operations/interfaces/int_OpSlash.h b/src/c/operations/interfaces/int_OpSlash.h index 440b05a0..fd8dda28 100644 --- a/src/c/operations/interfaces/int_OpSlash.h +++ b/src/c/operations/interfaces/int_OpSlash.h @@ -145,4 +145,24 @@ z2z2OpSlashz2(DoubleComplexMatrix(in1,temp,size1[0]*size1[1]), size1, in2, size2, out);} +/* Vector * Vector, so there is a scalar output */ + +#define s2s2OpSlashs0(in1, size1, in2, size2) srdivv( in1, in2, size1[1]) + +#define c2s2OpSlashc0(in1, size1, in2, size2) crdivcsv(in1, in2, size1[1]) + +#define s2c2OpSlashc0(in1, size1, in2, size2) crdivscv(in1, in2, size1[1]) + +#define c2c2OpSlashc0(in1, size1, in2, size2) crdivv( in1, in2, size1[1]) + + +#define d2d2OpSlashd0(in1, size1, in2, size2) drdivv( in1, in2, size1[1]) + +#define z2d2OpSlashz0(in1, size1, in2, size2) zrdivzdv(in1, in2, size1[1]) + +#define d2z2OpSlashz0(in1, size1, in2, size2) zrdivdzv(in1, in2, size1[1]) + +#define z2z2OpSlashz0(in1, size1, in2, size2) zrdivv( in1, in2, size1[1]) + + #endif /* !__INT_OPSLASH_H__ */ diff --git a/src/c/operations/interfaces/int_OpStar.h b/src/c/operations/interfaces/int_OpStar.h index 403b6689..52ff221c 100644 --- a/src/c/operations/interfaces/int_OpStar.h +++ b/src/c/operations/interfaces/int_OpStar.h @@ -131,12 +131,21 @@ #define MAX(a, b) (a > b ? a : b) -#define s2s2OpStars0(in1, size1, in2, size2) smulv(in1, in2, MAX(MAX(size1[0], size1[1]), MAX(size2[0], size2[1]))) +#define s2s2OpStars0(in1, size1, in2, size2) smulv( in1, in2, MAX(MAX(size1[0], size1[1]), MAX(size2[0], size2[1]))) -#define d2d2OpStard0(in1, size1, in2, size2) dmulv(in1, in2, MAX(MAX(size1[0], size1[1]), MAX(size2[0], size2[1]))) +#define c2s2OpStarc0(in1, size1, in2, size2) cmulcsv(in1, in2, MAX(MAX(size1[0], size1[1]), MAX(size2[0], size2[1]))) -#define c2c2OpStarc0(in1, size1, in2, size2) cmulv(in1, in2, MAX(MAX(size1[0], size1[1]), MAX(size2[0], size2[1]))) +#define s2c2OpStarc0(in1, size1, in2, size2) cmulscv(in1, in2, MAX(MAX(size1[0], size1[1]), MAX(size2[0], size2[1]))) -#define z2z2OpStarz0(in1, size1, in2, size2) zmulv(in1, in2, MAX(MAX(size1[0], size1[1]), MAX(size2[0], size2[1]))) +#define c2c2OpStarc0(in1, size1, in2, size2) cmulv( in1, in2, MAX(MAX(size1[0], size1[1]), MAX(size2[0], size2[1]))) + + +#define d2d2OpStard0(in1, size1, in2, size2) dmulv( in1, in2, MAX(MAX(size1[0], size1[1]), MAX(size2[0], size2[1]))) + +#define z2d2OpStarz0(in1, size1, in2, size2) zmulzdv(in1, in2, MAX(MAX(size1[0], size1[1]), MAX(size2[0], size2[1]))) + +#define d2z2OpStarz0(in1, size1, in2, size2) zmuldzv(in1, in2, MAX(MAX(size1[0], size1[1]), MAX(size2[0], size2[1]))) + +#define z2z2OpStarz0(in1, size1, in2, size2) zmulv( in1, in2, MAX(MAX(size1[0], size1[1]), MAX(size2[0], size2[1]))) #endif /* !__INT_OPSTAR_H__ */ |