summaryrefslogtreecommitdiff
path: root/src/auxiliaryFunctions/interfaces/int_find.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/auxiliaryFunctions/interfaces/int_find.h')
-rw-r--r--src/auxiliaryFunctions/interfaces/int_find.h80
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');