File Coverage

lib/PDL/Image2D-pp-max2d_ind.c
Criterion Covered Total %
statement 56 355 15.7
branch 87 1578 5.5
condition n/a
subroutine n/a
pod n/a
total 143 1933 7.4


line stmt bran cond sub pod time code
1              
2             #line 453 "lib/PDL/PP.pm"
3             /*
4             * THIS FILE WAS GENERATED BY PDL::PP from lib/PDL/Image2D.pd! Do not modify!
5             */
6              
7             #define PDL_FREE_CODE(trans, destroy, comp_free_code, ntpriv_free_code) \
8             if (destroy) { \
9             comp_free_code \
10             } \
11             if ((trans)->dims_redone) { \
12             ntpriv_free_code \
13             }
14              
15             #include "EXTERN.h"
16             #include "perl.h"
17             #include "XSUB.h"
18             #include "pdl.h"
19             #include "pdlcore.h"
20             #define PDL PDL_Image2D
21             extern Core* PDL; /* Structure hold core C functions */
22             #line 23 "lib/PDL/Image2D-pp-max2d_ind.c"
23              
24             /* Fast Modulus with proper negative behaviour */
25              
26             #define REALMOD(a,b) {while ((a)>=(b)) (a) -= (b); while ((a)<0) (a) += (b);}
27              
28             #define X(symbol, ctype, ppsym, ...) \
29             ctype quick_select_ ## ppsym(ctype arr[], int n);
30             PDL_TYPELIST_REAL(X)
31             #undef X
32             #define EZ(x) ez ? 0 : (x)
33              
34             #line 1857 "lib/PDL/PP.pm"
35             pdl_error pdl_max2d_ind_readdata(pdl_trans *__privtrans) {
36             pdl_error PDL_err = {0, NULL, 0};
37             #line 38 "lib/PDL/Image2D-pp-max2d_ind.c"
38 2           register PDL_Indx __m_size = __privtrans->ind_sizes[0];
39 2           register PDL_Indx __n_size = __privtrans->ind_sizes[1];
40 2 50         if (!__privtrans->broadcast.incs) return PDL->make_error(PDL_EUSERERROR, "Error in max2d_ind:" "broadcast.incs NULL");
41             /* broadcastloop declarations */
42             int __brcloopval;
43             register PDL_Indx __tind0,__tind1; /* counters along dim */
44 2           register PDL_Indx __tnpdls = __privtrans->broadcast.npdls;
45             /* dims here are how many steps along those dims */
46 2           register PDL_Indx __tinc0_a = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,0);
47 2           register PDL_Indx __tinc0_val = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,0);
48 2           register PDL_Indx __tinc0_x = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,2,0);
49 2           register PDL_Indx __tinc0_y = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,3,0);
50 2           register PDL_Indx __tinc1_a = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,1);
51 2           register PDL_Indx __tinc1_val = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,1);
52 2           register PDL_Indx __tinc1_x = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,2,1);
53 2           register PDL_Indx __tinc1_y = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,3,1);
54             #define PDL_BROADCASTLOOP_START_max2d_ind_readdata PDL_BROADCASTLOOP_START( \
55             readdata, \
56             __privtrans->broadcast, \
57             __privtrans->vtable, \
58             a_datap += __offsp[0]; \
59             val_datap += __offsp[1]; \
60             x_datap += __offsp[2]; \
61             y_datap += __offsp[3]; \
62             , \
63             ( ,a_datap += __tinc1_a - __tinc0_a * __tdims0 \
64             ,val_datap += __tinc1_val - __tinc0_val * __tdims0 \
65             ,x_datap += __tinc1_x - __tinc0_x * __tdims0 \
66             ,y_datap += __tinc1_y - __tinc0_y * __tdims0 \
67             ), \
68             ( ,a_datap += __tinc0_a \
69             ,val_datap += __tinc0_val \
70             ,x_datap += __tinc0_x \
71             ,y_datap += __tinc0_y \
72             ) \
73             )
74             #define PDL_BROADCASTLOOP_END_max2d_ind_readdata PDL_BROADCASTLOOP_END( \
75             __privtrans->broadcast, \
76             a_datap -= __tinc1_a * __tdims1 + __offsp[0]; \
77             val_datap -= __tinc1_val * __tdims1 + __offsp[1]; \
78             x_datap -= __tinc1_x * __tdims1 + __offsp[2]; \
79             y_datap -= __tinc1_y * __tdims1 + __offsp[3]; \
80             )
81 2           register PDL_Indx __inc_a_m = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,0,0)]; (void)__inc_a_m;register PDL_Indx __inc_a_n = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,0,1)]; (void)__inc_a_n;
82             #ifndef PDL_DECLARE_PARAMS_max2d_ind_1
83             #define PDL_DECLARE_PARAMS_max2d_ind_1(PDL_TYPE_OP,PDL_PPSYM_OP,PDL_TYPE_PARAM_x,PDL_PPSYM_PARAM_x,PDL_TYPE_PARAM_y,PDL_PPSYM_PARAM_y) \
84             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, a, (__privtrans->pdls[0]), 1, PDL_PPSYM_OP) \
85             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, val, (__privtrans->pdls[1]), 1, PDL_PPSYM_OP) \
86             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_PARAM_x, x, (__privtrans->pdls[2]), 1, PDL_PPSYM_PARAM_x) \
87             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_PARAM_y, y, (__privtrans->pdls[3]), 1, PDL_PPSYM_PARAM_y)
88             #endif
89 2 100         if ( __privtrans->bvalflag ) { /* ** do 'bad' Code ** */
90             #define PDL_BAD_CODE
91             #define PDL_IF_BAD(t,f) t
92 1           switch (__privtrans->__datatype) { /* Start generic switch */
93 0           case PDL_SB: {
94 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_SByte,A,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
95 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
96 0           PDL_LDouble cur = 0;
97 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
98 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
99 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,A,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
    0          
    0          
100 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
101             }} /* Close m */}} /* Close n */
102 0 0         PDL_IF_BAD(if ( curind1 < 0 ) {
103             (val_datap)[0]=val_badval;
104             (x_datap)[0]=x_badval;
105             (y_datap)[0]=y_badval;
106             } else,) {
107 0           (val_datap)[0] = cur;
108 0           (x_datap)[0] = curind1;
109 0           (y_datap)[0] = curind2;
110             }
111 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
112 0           } break;
113 0           case PDL_B: {
114 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_Byte,B,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
115 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
116 0           PDL_LDouble cur = 0;
117 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
118 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
119 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,B,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
    0          
    0          
120 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
121             }} /* Close m */}} /* Close n */
122 0 0         PDL_IF_BAD(if ( curind1 < 0 ) {
123             (val_datap)[0]=val_badval;
124             (x_datap)[0]=x_badval;
125             (y_datap)[0]=y_badval;
126             } else,) {
127 0           (val_datap)[0] = cur;
128 0           (x_datap)[0] = curind1;
129 0           (y_datap)[0] = curind2;
130             }
131 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
132 0           } break;
133 0           case PDL_S: {
134 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_Short,S,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
135 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
136 0           PDL_LDouble cur = 0;
137 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
138 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
139 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,S,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
    0          
    0          
140 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
141             }} /* Close m */}} /* Close n */
142 0 0         PDL_IF_BAD(if ( curind1 < 0 ) {
143             (val_datap)[0]=val_badval;
144             (x_datap)[0]=x_badval;
145             (y_datap)[0]=y_badval;
146             } else,) {
147 0           (val_datap)[0] = cur;
148 0           (x_datap)[0] = curind1;
149 0           (y_datap)[0] = curind2;
150             }
151 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
152 0           } break;
153 0           case PDL_US: {
154 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_Ushort,U,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
155 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
156 0           PDL_LDouble cur = 0;
157 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
158 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
159 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,U,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
    0          
    0          
160 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
161             }} /* Close m */}} /* Close n */
162 0 0         PDL_IF_BAD(if ( curind1 < 0 ) {
163             (val_datap)[0]=val_badval;
164             (x_datap)[0]=x_badval;
165             (y_datap)[0]=y_badval;
166             } else,) {
167 0           (val_datap)[0] = cur;
168 0           (x_datap)[0] = curind1;
169 0           (y_datap)[0] = curind2;
170             }
171 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
172 0           } break;
173 0           case PDL_L: {
174 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_Long,L,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
175 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
176 0           PDL_LDouble cur = 0;
177 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
178 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
179 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,L,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
    0          
    0          
180 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
181             }} /* Close m */}} /* Close n */
182 0 0         PDL_IF_BAD(if ( curind1 < 0 ) {
183             (val_datap)[0]=val_badval;
184             (x_datap)[0]=x_badval;
185             (y_datap)[0]=y_badval;
186             } else,) {
187 0           (val_datap)[0] = cur;
188 0           (x_datap)[0] = curind1;
189 0           (y_datap)[0] = curind2;
190             }
191 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
192 0           } break;
193 0           case PDL_UL: {
194 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_ULong,K,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
195 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
196 0           PDL_LDouble cur = 0;
197 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
198 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
199 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,K,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
    0          
    0          
200 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
201             }} /* Close m */}} /* Close n */
202 0 0         PDL_IF_BAD(if ( curind1 < 0 ) {
203             (val_datap)[0]=val_badval;
204             (x_datap)[0]=x_badval;
205             (y_datap)[0]=y_badval;
206             } else,) {
207 0           (val_datap)[0] = cur;
208 0           (x_datap)[0] = curind1;
209 0           (y_datap)[0] = curind2;
210             }
211 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
212 0           } break;
213 0           case PDL_IND: {
214 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_Indx,N,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
215 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
216 0           PDL_LDouble cur = 0;
217 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
218 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
219 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,N,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
    0          
    0          
220 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
221             }} /* Close m */}} /* Close n */
222 0 0         PDL_IF_BAD(if ( curind1 < 0 ) {
223             (val_datap)[0]=val_badval;
224             (x_datap)[0]=x_badval;
225             (y_datap)[0]=y_badval;
226             } else,) {
227 0           (val_datap)[0] = cur;
228 0           (x_datap)[0] = curind1;
229 0           (y_datap)[0] = curind2;
230             }
231 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
232 0           } break;
233 0           case PDL_ULL: {
234 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_ULongLong,P,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
235 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
236 0           PDL_LDouble cur = 0;
237 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
238 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
239 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,P,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
    0          
    0          
240 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
241             }} /* Close m */}} /* Close n */
242 0 0         PDL_IF_BAD(if ( curind1 < 0 ) {
243             (val_datap)[0]=val_badval;
244             (x_datap)[0]=x_badval;
245             (y_datap)[0]=y_badval;
246             } else,) {
247 0           (val_datap)[0] = cur;
248 0           (x_datap)[0] = curind1;
249 0           (y_datap)[0] = curind2;
250             }
251 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
252 0           } break;
253 0           case PDL_LL: {
254 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_LongLong,Q,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
255 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
256 0           PDL_LDouble cur = 0;
257 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
258 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
259 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,Q,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
    0          
    0          
260 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
261             }} /* Close m */}} /* Close n */
262 0 0         PDL_IF_BAD(if ( curind1 < 0 ) {
263             (val_datap)[0]=val_badval;
264             (x_datap)[0]=x_badval;
265             (y_datap)[0]=y_badval;
266             } else,) {
267 0           (val_datap)[0] = cur;
268 0           (x_datap)[0] = curind1;
269 0           (y_datap)[0] = curind2;
270             }
271 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
272 0           } break;
273 0           case PDL_F: {
274 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_Float,F,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
275 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
276 0           PDL_LDouble cur = 0;
277 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
278 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
279 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,F,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
    0          
    0          
    0          
280 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
281             }} /* Close m */}} /* Close n */
282 0 0         PDL_IF_BAD(if ( curind1 < 0 ) {
283             (val_datap)[0]=val_badval;
284             (x_datap)[0]=x_badval;
285             (y_datap)[0]=y_badval;
286             } else,) {
287 0           (val_datap)[0] = cur;
288 0           (x_datap)[0] = curind1;
289 0           (y_datap)[0] = curind2;
290             }
291 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
292 0           } break;
293 1           case PDL_D: {
294 1 50         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_Double,D,PDL_Long,L,PDL_Long,L)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
295 4 50         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    50          
    50          
    50          
    50          
    100          
    100          
296 1           PDL_LDouble cur = 0;
297 1           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
298 31 100         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    100          
299 25 50         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,D,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    100          
    100          
    100          
    100          
    50          
300 5           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
301             }} /* Close m */}} /* Close n */
302 1 50         PDL_IF_BAD(if ( curind1 < 0 ) {
303             (val_datap)[0]=val_badval;
304             (x_datap)[0]=x_badval;
305             (y_datap)[0]=y_badval;
306             } else,) {
307 1           (val_datap)[0] = cur;
308 1           (x_datap)[0] = curind1;
309 1           (y_datap)[0] = curind2;
310             }
311 1 50         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    50          
312 1           } break;
313 0           case PDL_LD: {
314 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_LDouble,E,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
315 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
316 0           PDL_LDouble cur = 0;
317 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
318 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
319 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,E,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
    0          
    0          
    0          
320 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
321             }} /* Close m */}} /* Close n */
322 0 0         PDL_IF_BAD(if ( curind1 < 0 ) {
323             (val_datap)[0]=val_badval;
324             (x_datap)[0]=x_badval;
325             (y_datap)[0]=y_badval;
326             } else,) {
327 0           (val_datap)[0] = cur;
328 0           (x_datap)[0] = curind1;
329 0           (y_datap)[0] = curind2;
330             }
331 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
332 0           } break;
333 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in max2d_ind: unhandled datatype(%d), only handles (ABSULKNPQFDE)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
334             }
335             #undef PDL_BAD_CODE
336             #undef PDL_IF_BAD
337             } else { /* ** else do 'good' Code ** */
338             #define PDL_IF_BAD(t,f) f
339 1           switch (__privtrans->__datatype) { /* Start generic switch */
340 0           case PDL_SB: {
341 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_SByte,A,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
342 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
343 0           PDL_LDouble cur = 0;
344 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
345 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
346 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,A,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
347 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
348             }} /* Close m */}} /* Close n */
349             PDL_IF_BAD(if ( curind1 < 0 ) {
350             (val_datap)[0]=val_badval;
351             (x_datap)[0]=x_badval;
352             (y_datap)[0]=y_badval;
353             } else,) {
354 0           (val_datap)[0] = cur;
355 0           (x_datap)[0] = curind1;
356 0           (y_datap)[0] = curind2;
357             }
358 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
359 0           } break;
360 0           case PDL_B: {
361 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_Byte,B,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
362 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
363 0           PDL_LDouble cur = 0;
364 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
365 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
366 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,B,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
367 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
368             }} /* Close m */}} /* Close n */
369             PDL_IF_BAD(if ( curind1 < 0 ) {
370             (val_datap)[0]=val_badval;
371             (x_datap)[0]=x_badval;
372             (y_datap)[0]=y_badval;
373             } else,) {
374 0           (val_datap)[0] = cur;
375 0           (x_datap)[0] = curind1;
376 0           (y_datap)[0] = curind2;
377             }
378 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
379 0           } break;
380 0           case PDL_S: {
381 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_Short,S,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
382 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
383 0           PDL_LDouble cur = 0;
384 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
385 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
386 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,S,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
387 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
388             }} /* Close m */}} /* Close n */
389             PDL_IF_BAD(if ( curind1 < 0 ) {
390             (val_datap)[0]=val_badval;
391             (x_datap)[0]=x_badval;
392             (y_datap)[0]=y_badval;
393             } else,) {
394 0           (val_datap)[0] = cur;
395 0           (x_datap)[0] = curind1;
396 0           (y_datap)[0] = curind2;
397             }
398 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
399 0           } break;
400 0           case PDL_US: {
401 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_Ushort,U,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
402 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
403 0           PDL_LDouble cur = 0;
404 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
405 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
406 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,U,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
407 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
408             }} /* Close m */}} /* Close n */
409             PDL_IF_BAD(if ( curind1 < 0 ) {
410             (val_datap)[0]=val_badval;
411             (x_datap)[0]=x_badval;
412             (y_datap)[0]=y_badval;
413             } else,) {
414 0           (val_datap)[0] = cur;
415 0           (x_datap)[0] = curind1;
416 0           (y_datap)[0] = curind2;
417             }
418 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
419 0           } break;
420 0           case PDL_L: {
421 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_Long,L,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
422 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
423 0           PDL_LDouble cur = 0;
424 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
425 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
426 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,L,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
427 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
428             }} /* Close m */}} /* Close n */
429             PDL_IF_BAD(if ( curind1 < 0 ) {
430             (val_datap)[0]=val_badval;
431             (x_datap)[0]=x_badval;
432             (y_datap)[0]=y_badval;
433             } else,) {
434 0           (val_datap)[0] = cur;
435 0           (x_datap)[0] = curind1;
436 0           (y_datap)[0] = curind2;
437             }
438 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
439 0           } break;
440 0           case PDL_UL: {
441 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_ULong,K,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
442 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
443 0           PDL_LDouble cur = 0;
444 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
445 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
446 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,K,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
447 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
448             }} /* Close m */}} /* Close n */
449             PDL_IF_BAD(if ( curind1 < 0 ) {
450             (val_datap)[0]=val_badval;
451             (x_datap)[0]=x_badval;
452             (y_datap)[0]=y_badval;
453             } else,) {
454 0           (val_datap)[0] = cur;
455 0           (x_datap)[0] = curind1;
456 0           (y_datap)[0] = curind2;
457             }
458 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
459 0           } break;
460 0           case PDL_IND: {
461 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_Indx,N,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
462 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
463 0           PDL_LDouble cur = 0;
464 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
465 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
466 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,N,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
467 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
468             }} /* Close m */}} /* Close n */
469             PDL_IF_BAD(if ( curind1 < 0 ) {
470             (val_datap)[0]=val_badval;
471             (x_datap)[0]=x_badval;
472             (y_datap)[0]=y_badval;
473             } else,) {
474 0           (val_datap)[0] = cur;
475 0           (x_datap)[0] = curind1;
476 0           (y_datap)[0] = curind2;
477             }
478 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
479 0           } break;
480 0           case PDL_ULL: {
481 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_ULongLong,P,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
482 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
483 0           PDL_LDouble cur = 0;
484 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
485 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
486 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,P,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
487 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
488             }} /* Close m */}} /* Close n */
489             PDL_IF_BAD(if ( curind1 < 0 ) {
490             (val_datap)[0]=val_badval;
491             (x_datap)[0]=x_badval;
492             (y_datap)[0]=y_badval;
493             } else,) {
494 0           (val_datap)[0] = cur;
495 0           (x_datap)[0] = curind1;
496 0           (y_datap)[0] = curind2;
497             }
498 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
499 0           } break;
500 0           case PDL_LL: {
501 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_LongLong,Q,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
502 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
503 0           PDL_LDouble cur = 0;
504 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
505 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
506 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,Q,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
507 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
508             }} /* Close m */}} /* Close n */
509             PDL_IF_BAD(if ( curind1 < 0 ) {
510             (val_datap)[0]=val_badval;
511             (x_datap)[0]=x_badval;
512             (y_datap)[0]=y_badval;
513             } else,) {
514 0           (val_datap)[0] = cur;
515 0           (x_datap)[0] = curind1;
516 0           (y_datap)[0] = curind2;
517             }
518 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
519 0           } break;
520 0           case PDL_F: {
521 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_Float,F,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
522 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
523 0           PDL_LDouble cur = 0;
524 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
525 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
526 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,F,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
527 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
528             }} /* Close m */}} /* Close n */
529             PDL_IF_BAD(if ( curind1 < 0 ) {
530             (val_datap)[0]=val_badval;
531             (x_datap)[0]=x_badval;
532             (y_datap)[0]=y_badval;
533             } else,) {
534 0           (val_datap)[0] = cur;
535 0           (x_datap)[0] = curind1;
536 0           (y_datap)[0] = curind2;
537             }
538 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
539 0           } break;
540 1           case PDL_D: {
541 1 50         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_Double,D,PDL_Long,L,PDL_Long,L)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
542 4 50         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    50          
    50          
    50          
    50          
    100          
    100          
543 1           PDL_LDouble cur = 0;
544 1           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
545 31 100         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    100          
546 25 100         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,D,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    100          
    100          
    50          
547 5           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
548             }} /* Close m */}} /* Close n */
549             PDL_IF_BAD(if ( curind1 < 0 ) {
550             (val_datap)[0]=val_badval;
551             (x_datap)[0]=x_badval;
552             (y_datap)[0]=y_badval;
553             } else,) {
554 1           (val_datap)[0] = cur;
555 1           (x_datap)[0] = curind1;
556 1           (y_datap)[0] = curind2;
557             }
558 1 50         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    50          
559 1           } break;
560 0           case PDL_LD: {
561 0 0         PDL_DECLARE_PARAMS_max2d_ind_1(PDL_LDouble,E,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
562 0 0         PDL_BROADCASTLOOP_START_max2d_ind_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
563 0           PDL_LDouble cur = 0;
564 0           PDL_Indx curind1 = PDL_IF_BAD(-1,0), curind2 = PDL_IF_BAD(-1,0);
565 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {{/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
    0          
566 0 0         if (!(PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))],a_badval,E,a_badval_isnan) &&,) ( (!n && !m) || (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))] > cur || isnan(cur)))) continue;
    0          
    0          
    0          
567 0           cur = (a_datap)[0+(__inc_a_m*(m))+(__inc_a_n*(n))]; curind1 = m; curind2 = n;
568             }} /* Close m */}} /* Close n */
569             PDL_IF_BAD(if ( curind1 < 0 ) {
570             (val_datap)[0]=val_badval;
571             (x_datap)[0]=x_badval;
572             (y_datap)[0]=y_badval;
573             } else,) {
574 0           (val_datap)[0] = cur;
575 0           (x_datap)[0] = curind1;
576 0           (y_datap)[0] = curind2;
577             }
578 0 0         }PDL_BROADCASTLOOP_END_max2d_ind_readdata
    0          
579 0           } break;
580 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in max2d_ind: unhandled datatype(%d), only handles (ABSULKNPQFDE)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
581             }
582             #undef PDL_IF_BAD
583             }
584 2           return PDL_err;
585             }
586              
587             static pdl_datatypes pdl_max2d_ind_vtable_gentypes[] = { PDL_SB, PDL_B, PDL_S, PDL_US, PDL_L, PDL_UL, PDL_IND, PDL_ULL, PDL_LL, PDL_F, PDL_D, PDL_LD, -1 };
588             static PDL_Indx pdl_max2d_ind_vtable_realdims[] = { 2, 0, 0, 0 };
589             static char *pdl_max2d_ind_vtable_parnames[] = { "a","val","x","y" };
590             static short pdl_max2d_ind_vtable_parflags[] = {
591             0,
592             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISWRITE,
593             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISTYPED|PDL_PARAM_ISWRITE,
594             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISTYPED|PDL_PARAM_ISWRITE
595             };
596             static pdl_datatypes pdl_max2d_ind_vtable_partypes[] = { -1, -1, PDL_L, PDL_L };
597             static PDL_Indx pdl_max2d_ind_vtable_realdims_starts[] = { 0, 2, 2, 2 };
598             static PDL_Indx pdl_max2d_ind_vtable_realdims_ind_ids[] = { 0, 1 };
599             static char *pdl_max2d_ind_vtable_indnames[] = { "m","n" };
600             pdl_transvtable pdl_max2d_ind_vtable = {
601             PDL_TRANS_DO_BROADCAST|PDL_TRANS_BADPROCESS, 0, pdl_max2d_ind_vtable_gentypes, 1, 4, NULL /*CORE21*/,
602             pdl_max2d_ind_vtable_realdims, pdl_max2d_ind_vtable_parnames,
603             pdl_max2d_ind_vtable_parflags, pdl_max2d_ind_vtable_partypes,
604             pdl_max2d_ind_vtable_realdims_starts, pdl_max2d_ind_vtable_realdims_ind_ids, 2,
605             2, pdl_max2d_ind_vtable_indnames,
606             NULL, pdl_max2d_ind_readdata, NULL,
607             NULL,
608             0,"PDL::Image2D::max2d_ind"
609             };
610              
611              
612 2           pdl_error pdl_run_max2d_ind(pdl *a,pdl *val,pdl *x,pdl *y) {
613 2           pdl_error PDL_err = {0, NULL, 0};
614 2 50         if (!PDL) return (pdl_error){PDL_EFATAL, "PDL core struct is NULL, can't continue",0};
615 2           pdl_trans *__privtrans = PDL->create_trans(&pdl_max2d_ind_vtable);
616 2 50         if (!__privtrans) return PDL->make_error_simple(PDL_EFATAL, "Couldn't create trans");
617 2           __privtrans->pdls[0] = a;
618 2           __privtrans->pdls[1] = val;
619 2           __privtrans->pdls[2] = x;
620 2           __privtrans->pdls[3] = y;
621 2 50         PDL_RETERROR(PDL_err, PDL->type_coerce(__privtrans));
622 2 50         PDL_RETERROR(PDL_err, PDL->make_trans_mutual(__privtrans));
623 2           return PDL_err;
624             }