diff options
Diffstat (limited to 'src/auxiliaryFunctions/interfaces/int_find.h')
-rw-r--r-- | src/auxiliaryFunctions/interfaces/int_find.h | 80 |
1 files changed, 72 insertions, 8 deletions
diff --git a/src/auxiliaryFunctions/interfaces/int_find.h b/src/auxiliaryFunctions/interfaces/int_find.h index 742ddc06..2df50986 100644 --- a/src/auxiliaryFunctions/interfaces/int_find.h +++ b/src/auxiliaryFunctions/interfaces/int_find.h @@ -15,20 +15,84 @@ #ifndef __INT_FIND_H__ #define __INT_FIND_H__ -#define s0finds0(in) (in == 0) ? -1 : in +/* 1 input, 1 output */ -#define d0findd0(in) (in == 0) ? -1 : in +#define s0finds0(in) (in == 0) ? -1 : in + +#define d0findd0(in) (in == 0) ? -1 : in -#define c0findc0(in) ((creals(in) == 0) && (cimags(in) == 0)) ? -1 : in +#define c0finds0(in) ((creals(in) == 0) && (cimags(in) == 0)) ? -1 : in -#define z0findz0(in) ((zreals(in) == 0) && (zimags(in) == 0)) ? -1 : in +#define z0findd0(in) ((zreals(in) == 0) && (zimags(in) == 0)) ? -1 : in -#define s2finds2(in,size,out) sfinda(in, size[0]*size[1]) +#define s2finds2(in,size,out) sfinda(in, size[0]*size[1]) -#define d2findd2(in,size,out) dfinda(in, size[0]*size[1]) +#define d2findd2(in,size,out) dfinda(in, size[0]*size[1]) + +#define c2finds2(in,size,out) cfinda(in, size[0]*size[1]) + +#define z2findd2(in,size,out) zfinda(in, size[0]*size[1]) + +/* 1 input, 2 outputs */ + +#define s0finds0s0(in,out1,out2) if (in==0) {out1=0;out2=0;} + +#define d0findd0d0(in,out1,out2) if (in==0) {out1=0;out2=0;} + +#define c0finds0s0(in,out1,out2) if ((creals(in)==0) && (cimags(in)==0)) {out1=0;out2=0;} + +#define z0findd0d0(in,out1,out2) if ((zreals(in)==0) && (zimags(in)==0)) {out1=0;out2=0;} + +#define s2finds2s2(in,size,out1,out2) sfind2d(in,size[0],size[1],&out1,&out2) + +#define d2findd2d2(in,size,out1,out2) dfind2d(in,size[0],size[1],&out1,&out2) + +#define c2finds2s2(in,size,out1,out2) cfind2d(in,size[0],size[1],&out1,&out2) + +#define z2finds2s2(in,size,out1,out2) zfind2d(in,size[0],size[1],&out1,&out2) + +/* 2 inputs, 1 output */ + +#define s0s0finds0(in1,in2) s0finds0(in1) + +#define d0d0findd0(in1,in2) d0findd0(in1) + +#define c0s0finds0(in1,in2) c0finds0(in1) + +#define z0d0findd0(in1,in2) z0findd0(in1) + +#define s2s0finds2(in1,size,in2,out) s2finds2(in1,size,out_tmp);for(int i=0;i<in2;i++) out[i]=out_tmp[i]; + +#define d2d0findd2(in1,size,in2,out) d2findd2(in1,size,out_tmp);for(int i=0;i<in2;i++) out[i]=out_tmp[i]; + +#define c2s0finds2(in1,size,in2,out) c2finds2(in1,size,out_tmp);for(int i=0;i<in2;i++) out[i]=out_tmp[i]; + +#define z2d0findd2(in1,size,in2,out) z2findd2(in1,size,out_tmp);for(int i=0;i<in2;i++) out[i]=out_tmp[i]; + +/* 2 inputs, 2 outputs */ + +#define s0s0finds0s0(in1,in2,out1,out2) s0finds0s0(in1,out1,out2) + +#define d0d0findd0d0(in1,in2,out1,out2) d0findd0d0(in1,out1,out2) + +#define c0s0finds0s0(in1,in2,out1,out2) c0finds0s0(in1,out1,out2) + +#define z0d0findd0d0(in1,in2,out1,out2) z0findd0d0(in1,out1,out2) + +#define s2s0finds2s2(in1,size,in2,out1,out2) s2finds2s2(in1,size,out1_tmp,out_tmp2);for(int i=0;i<in2;i++) {out1[i]=out1_tmp[i];out2[i]= out2_tmp[i];} + +#define d2d0findd2d2(in1,size,in2,out1,out2) d2findd2d2(in1,size,out1_tmp,out_tmp2);for(int i=0;i<in2;i++) {out1[i]=out1_tmp[i];out2[i]= out2_tmp[i];} + +#define c2s0finds2s2(in1,size,in2,out1,out2) c2finds2s2(in1,size,out1_tmp,out_tmp2);for(int i=0;i<in2;i++) {out1[i]=out1_tmp[i];out2[i]= out2_tmp[i];} + +#define z2d0findd2d2(in1,size,in2,out1,out2) z2findd2d2(in1,size,out1_tmp,out_tmp2);for(int i=0;i<in2;i++) {out1[i]=out1_tmp[i];out2[i]= out2_tmp[i];} -#define c2findc2(in,size,out) cfinda(in, size[0]*size[1]) -#define z2findz2(in,size,out) zfinda(in, size[0]*size[1]) #endif /* !__INT_FIND_H__ */ + +PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y'); +PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y'); + +PrintStringInfo('s2s0'+ArgSeparator+'s2s2',ClassFileName,'file','y'); +PrintStringInfo('d2d0'+ArgSeparator+'d2d2',ClassFileName,'file','y'); |