File Coverage

lib/PDL/Ufunc-pp-maximum_n_ind.c
Criterion Covered Total %
statement 51 503 10.1
branch 45 1394 3.2
condition n/a
subroutine n/a
pod n/a
total 96 1897 5.0


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/Ufunc.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_Ufunc
21             extern Core* PDL; /* Structure hold core C functions */
22              
23             #line 1846 "lib/PDL/PP.pm"
24             typedef struct pdl_params_maximum_n_ind {
25             #line 26 "lib/PDL/Ufunc-pp-maximum_n_ind.c"
26             PDL_Indx m_size;
27             } pdl_params_maximum_n_ind;
28              
29              
30             #line 1857 "lib/PDL/PP.pm"
31             pdl_error pdl_maximum_n_ind_redodims(pdl_trans *__privtrans) {
32             pdl_error PDL_err = {0, NULL, 0};
33             #line 34 "lib/PDL/Ufunc-pp-maximum_n_ind.c"
34 1           pdl_params_maximum_n_ind *__params = __privtrans->params; (void)__params;
35 1           __privtrans->ind_sizes[0] = __params->m_size;
36             #ifndef PDL_DECLARE_PARAMS_maximum_n_ind_0
37             #define PDL_DECLARE_PARAMS_maximum_n_ind_0(PDL_TYPE_OP,PDL_PPSYM_OP,PDL_TYPE_PARAM_c,PDL_PPSYM_PARAM_c) \
38             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, a, (__privtrans->pdls[0]), 0, PDL_PPSYM_OP) \
39             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_PARAM_c, c, (__privtrans->pdls[1]), 0, PDL_PPSYM_PARAM_c)
40             #endif
41             #define PDL_IF_BAD(t,f) f
42 1           switch (__privtrans->__datatype) { /* Start generic switch */
43 0           case PDL_SB: {
44 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_0(PDL_SByte,A,PDL_Indx,N)
    0          
    0          
    0          
45 0 0         {if(__privtrans->ind_sizes[0] > __privtrans->ind_sizes[1]) return PDL->make_error(PDL_EUSERERROR, "Error in maximum_n_ind:" "m_size > n_size");}
46 0           } break;
47 0           case PDL_B: {
48 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_0(PDL_Byte,B,PDL_Indx,N)
    0          
    0          
    0          
49 0 0         {if(__privtrans->ind_sizes[0] > __privtrans->ind_sizes[1]) return PDL->make_error(PDL_EUSERERROR, "Error in maximum_n_ind:" "m_size > n_size");}
50 0           } break;
51 0           case PDL_S: {
52 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_0(PDL_Short,S,PDL_Indx,N)
    0          
    0          
    0          
53 0 0         {if(__privtrans->ind_sizes[0] > __privtrans->ind_sizes[1]) return PDL->make_error(PDL_EUSERERROR, "Error in maximum_n_ind:" "m_size > n_size");}
54 0           } break;
55 0           case PDL_US: {
56 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_0(PDL_Ushort,U,PDL_Indx,N)
    0          
    0          
    0          
57 0 0         {if(__privtrans->ind_sizes[0] > __privtrans->ind_sizes[1]) return PDL->make_error(PDL_EUSERERROR, "Error in maximum_n_ind:" "m_size > n_size");}
58 0           } break;
59 0           case PDL_L: {
60 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_0(PDL_Long,L,PDL_Indx,N)
    0          
    0          
    0          
61 0 0         {if(__privtrans->ind_sizes[0] > __privtrans->ind_sizes[1]) return PDL->make_error(PDL_EUSERERROR, "Error in maximum_n_ind:" "m_size > n_size");}
62 0           } break;
63 0           case PDL_UL: {
64 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_0(PDL_ULong,K,PDL_Indx,N)
    0          
    0          
    0          
65 0 0         {if(__privtrans->ind_sizes[0] > __privtrans->ind_sizes[1]) return PDL->make_error(PDL_EUSERERROR, "Error in maximum_n_ind:" "m_size > n_size");}
66 0           } break;
67 0           case PDL_IND: {
68 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_0(PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
69 0 0         {if(__privtrans->ind_sizes[0] > __privtrans->ind_sizes[1]) return PDL->make_error(PDL_EUSERERROR, "Error in maximum_n_ind:" "m_size > n_size");}
70 0           } break;
71 0           case PDL_ULL: {
72 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_0(PDL_ULongLong,P,PDL_Indx,N)
    0          
    0          
    0          
73 0 0         {if(__privtrans->ind_sizes[0] > __privtrans->ind_sizes[1]) return PDL->make_error(PDL_EUSERERROR, "Error in maximum_n_ind:" "m_size > n_size");}
74 0           } break;
75 0           case PDL_LL: {
76 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_0(PDL_LongLong,Q,PDL_Indx,N)
    0          
    0          
    0          
77 0 0         {if(__privtrans->ind_sizes[0] > __privtrans->ind_sizes[1]) return PDL->make_error(PDL_EUSERERROR, "Error in maximum_n_ind:" "m_size > n_size");}
78 0           } break;
79 0           case PDL_F: {
80 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_0(PDL_Float,F,PDL_Indx,N)
    0          
    0          
    0          
81 0 0         {if(__privtrans->ind_sizes[0] > __privtrans->ind_sizes[1]) return PDL->make_error(PDL_EUSERERROR, "Error in maximum_n_ind:" "m_size > n_size");}
82 0           } break;
83 1           case PDL_D: {
84 1 50         PDL_DECLARE_PARAMS_maximum_n_ind_0(PDL_Double,D,PDL_Indx,N)
    50          
    50          
    50          
85 1 50         {if(__privtrans->ind_sizes[0] > __privtrans->ind_sizes[1]) return PDL->make_error(PDL_EUSERERROR, "Error in maximum_n_ind:" "m_size > n_size");}
86 1           } break;
87 0           case PDL_LD: {
88 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_0(PDL_LDouble,E,PDL_Indx,N)
    0          
    0          
    0          
89 0 0         {if(__privtrans->ind_sizes[0] > __privtrans->ind_sizes[1]) return PDL->make_error(PDL_EUSERERROR, "Error in maximum_n_ind:" "m_size > n_size");}
90 0           } break;
91 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in maximum_n_ind: unhandled datatype(%d), only handles (ABSULKNPQFDE)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
92             }
93             #undef PDL_IF_BAD
94              
95 1 50         PDL_RETERROR(PDL_err, PDL->redodims_default(__privtrans));
96 1           return PDL_err;
97             }
98              
99              
100             #line 1857 "lib/PDL/PP.pm"
101             pdl_error pdl_maximum_n_ind_readdata(pdl_trans *__privtrans) {
102             pdl_error PDL_err = {0, NULL, 0};
103             #line 104 "lib/PDL/Ufunc-pp-maximum_n_ind.c"
104 1           pdl_params_maximum_n_ind *__params = __privtrans->params; (void)__params;
105 1           register PDL_Indx __m_size = __privtrans->ind_sizes[0];
106 1           register PDL_Indx __n_size = __privtrans->ind_sizes[1];
107 1 50         if (!__privtrans->broadcast.incs) return PDL->make_error(PDL_EUSERERROR, "Error in maximum_n_ind:" "broadcast.incs NULL");
108             /* broadcastloop declarations */
109             int __brcloopval;
110             register PDL_Indx __tind0,__tind1; /* counters along dim */
111 1           register PDL_Indx __tnpdls = __privtrans->broadcast.npdls;
112             /* dims here are how many steps along those dims */
113 1           register PDL_Indx __tinc0_a = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,0);
114 1           register PDL_Indx __tinc0_c = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,0);
115 1           register PDL_Indx __tinc1_a = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,1);
116 1           register PDL_Indx __tinc1_c = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,1);
117             #define PDL_BROADCASTLOOP_START_maximum_n_ind_readdata PDL_BROADCASTLOOP_START( \
118             readdata, \
119             __privtrans->broadcast, \
120             __privtrans->vtable, \
121             a_datap += __offsp[0]; \
122             c_datap += __offsp[1]; \
123             , \
124             ( ,a_datap += __tinc1_a - __tinc0_a * __tdims0 \
125             ,c_datap += __tinc1_c - __tinc0_c * __tdims0 \
126             ), \
127             ( ,a_datap += __tinc0_a \
128             ,c_datap += __tinc0_c \
129             ) \
130             )
131             #define PDL_BROADCASTLOOP_END_maximum_n_ind_readdata PDL_BROADCASTLOOP_END( \
132             __privtrans->broadcast, \
133             a_datap -= __tinc1_a * __tdims1 + __offsp[0]; \
134             c_datap -= __tinc1_c * __tdims1 + __offsp[1]; \
135             )
136 1           register PDL_Indx __inc_a_n = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,0,0)]; (void)__inc_a_n;
137 1           register PDL_Indx __inc_c_m = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,1,0)]; (void)__inc_c_m;
138             #ifndef PDL_DECLARE_PARAMS_maximum_n_ind_1
139             #define PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_TYPE_OP,PDL_PPSYM_OP,PDL_TYPE_PARAM_c,PDL_PPSYM_PARAM_c) \
140             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, a, (__privtrans->pdls[0]), 1, PDL_PPSYM_OP) \
141             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_PARAM_c, c, (__privtrans->pdls[1]), 1, PDL_PPSYM_PARAM_c)
142             #endif
143 1 50         if ( __privtrans->bvalflag ) { /* ** do 'bad' Code ** */
144             #define PDL_BAD_CODE
145             #define PDL_IF_BAD(t,f) t
146 0           switch (__privtrans->__datatype) { /* Start generic switch */
147 0           case PDL_SB: {
148 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_SByte,A,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
149 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_SByte cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
150 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
151 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
152 0           curind = ns;
153 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
154 0           PDL_Indx outer_m = m; int flag=0;
155 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
156 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
157             }} /* Close m=:outer_m */
158 0 0         if (!flag &&
    0          
159 0 0         PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,A,a_badval_isnan) &&,)
    0          
160 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_A(cur)))
161 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
162             }} /* Close n */
163 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
164 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
165 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
166 0           } break;
167 0           case PDL_B: {
168 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_Byte,B,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
169 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_Byte cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
170 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
171 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
172 0           curind = ns;
173 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
174 0           PDL_Indx outer_m = m; int flag=0;
175 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
176 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
177             }} /* Close m=:outer_m */
178 0 0         if (!flag &&
    0          
179 0 0         PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,B,a_badval_isnan) &&,)
    0          
180 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_B(cur)))
181 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
182             }} /* Close n */
183 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
184 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
185 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
186 0           } break;
187 0           case PDL_S: {
188 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_Short,S,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
189 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_Short cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
190 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
191 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
192 0           curind = ns;
193 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
194 0           PDL_Indx outer_m = m; int flag=0;
195 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
196 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
197             }} /* Close m=:outer_m */
198 0 0         if (!flag &&
    0          
199 0 0         PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,S,a_badval_isnan) &&,)
    0          
200 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_S(cur)))
201 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
202             }} /* Close n */
203 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
204 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
205 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
206 0           } break;
207 0           case PDL_US: {
208 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_Ushort,U,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
209 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_Ushort cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
210 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
211 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
212 0           curind = ns;
213 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
214 0           PDL_Indx outer_m = m; int flag=0;
215 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
216 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
217             }} /* Close m=:outer_m */
218 0 0         if (!flag &&
    0          
219 0 0         PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,U,a_badval_isnan) &&,)
    0          
220 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_U(cur)))
221 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
222             }} /* Close n */
223 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
224 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
225 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
226 0           } break;
227 0           case PDL_L: {
228 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_Long,L,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
229 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_Long cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
230 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
231 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
232 0           curind = ns;
233 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
234 0           PDL_Indx outer_m = m; int flag=0;
235 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
236 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
237             }} /* Close m=:outer_m */
238 0 0         if (!flag &&
    0          
239 0 0         PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,L,a_badval_isnan) &&,)
    0          
240 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_L(cur)))
241 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
242             }} /* Close n */
243 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
244 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
245 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
246 0           } break;
247 0           case PDL_UL: {
248 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_ULong,K,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
249 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_ULong cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
250 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
251 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
252 0           curind = ns;
253 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
254 0           PDL_Indx outer_m = m; int flag=0;
255 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
256 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
257             }} /* Close m=:outer_m */
258 0 0         if (!flag &&
    0          
259 0 0         PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,K,a_badval_isnan) &&,)
    0          
260 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_K(cur)))
261 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
262             }} /* Close n */
263 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
264 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
265 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
266 0           } break;
267 0           case PDL_IND: {
268 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
269 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_Indx cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
270 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
271 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
272 0           curind = ns;
273 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
274 0           PDL_Indx outer_m = m; int flag=0;
275 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
276 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
277             }} /* Close m=:outer_m */
278 0 0         if (!flag &&
    0          
279 0 0         PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,N,a_badval_isnan) &&,)
    0          
280 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_N(cur)))
281 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
282             }} /* Close n */
283 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
284 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
285 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
286 0           } break;
287 0           case PDL_ULL: {
288 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_ULongLong,P,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
289 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_ULongLong cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
290 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
291 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
292 0           curind = ns;
293 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
294 0           PDL_Indx outer_m = m; int flag=0;
295 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
296 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
297             }} /* Close m=:outer_m */
298 0 0         if (!flag &&
    0          
299 0 0         PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,P,a_badval_isnan) &&,)
    0          
300 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_P(cur)))
301 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
302             }} /* Close n */
303 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
304 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
305 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
306 0           } break;
307 0           case PDL_LL: {
308 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_LongLong,Q,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
309 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_LongLong cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
310 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
311 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
312 0           curind = ns;
313 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
314 0           PDL_Indx outer_m = m; int flag=0;
315 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
316 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
317             }} /* Close m=:outer_m */
318 0 0         if (!flag &&
    0          
319 0 0         PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,Q,a_badval_isnan) &&,)
    0          
320 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_Q(cur)))
321 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
322             }} /* Close n */
323 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
324 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
325 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
326 0           } break;
327 0           case PDL_F: {
328 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_Float,F,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
329 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_Float cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
330 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
331 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
332 0           curind = ns;
333 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
334 0           PDL_Indx outer_m = m; int flag=0;
335 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
336 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
337             }} /* Close m=:outer_m */
338 0 0         if (!flag &&
    0          
    0          
339 0 0         PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,F,a_badval_isnan) &&,)
340 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_F(cur)))
    0          
341 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
342             }} /* Close n */
343 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
344 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
345 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
346 0           } break;
347 0           case PDL_D: {
348 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_Double,D,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
349 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_Double cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
350 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
351 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
352 0           curind = ns;
353 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
354 0           PDL_Indx outer_m = m; int flag=0;
355 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
356 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
357             }} /* Close m=:outer_m */
358 0 0         if (!flag &&
    0          
    0          
359 0 0         PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,D,a_badval_isnan) &&,)
360 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_D(cur)))
    0          
361 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
362             }} /* Close n */
363 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
364 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
365 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
366 0           } break;
367 0           case PDL_LD: {
368 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_LDouble,E,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
369 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_LDouble cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
370 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
371 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
372 0           curind = ns;
373 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
374 0           PDL_Indx outer_m = m; int flag=0;
375 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
376 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
377             }} /* Close m=:outer_m */
378 0 0         if (!flag &&
    0          
    0          
379 0 0         PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,E,a_badval_isnan) &&,)
380 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_E(cur)))
    0          
381 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
382             }} /* Close n */
383 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
384 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
385 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
386 0           } break;
387 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in maximum_n_ind: unhandled datatype(%d), only handles (ABSULKNPQFDE)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
388             }
389             #undef PDL_BAD_CODE
390             #undef PDL_IF_BAD
391             } else { /* ** else do 'good' Code ** */
392             #define PDL_IF_BAD(t,f) f
393 1           switch (__privtrans->__datatype) { /* Start generic switch */
394 0           case PDL_SB: {
395 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_SByte,A,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
396 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_SByte cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
397 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
398 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
399 0           curind = ns;
400 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
401 0           PDL_Indx outer_m = m; int flag=0;
402 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
403 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
404             }} /* Close m=:outer_m */
405 0 0         if (!flag &&
    0          
406             PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,A,a_badval_isnan) &&,)
407 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_A(cur)))
408 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
409             }} /* Close n */
410 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
411 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
412 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
413 0           } break;
414 0           case PDL_B: {
415 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_Byte,B,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
416 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_Byte cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
417 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
418 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
419 0           curind = ns;
420 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
421 0           PDL_Indx outer_m = m; int flag=0;
422 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
423 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
424             }} /* Close m=:outer_m */
425 0 0         if (!flag &&
    0          
426             PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,B,a_badval_isnan) &&,)
427 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_B(cur)))
428 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
429             }} /* Close n */
430 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
431 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
432 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
433 0           } break;
434 0           case PDL_S: {
435 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_Short,S,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
436 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_Short cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
437 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
438 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
439 0           curind = ns;
440 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
441 0           PDL_Indx outer_m = m; int flag=0;
442 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
443 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
444             }} /* Close m=:outer_m */
445 0 0         if (!flag &&
    0          
446             PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,S,a_badval_isnan) &&,)
447 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_S(cur)))
448 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
449             }} /* Close n */
450 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
451 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
452 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
453 0           } break;
454 0           case PDL_US: {
455 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_Ushort,U,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
456 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_Ushort cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
457 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
458 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
459 0           curind = ns;
460 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
461 0           PDL_Indx outer_m = m; int flag=0;
462 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
463 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
464             }} /* Close m=:outer_m */
465 0 0         if (!flag &&
    0          
466             PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,U,a_badval_isnan) &&,)
467 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_U(cur)))
468 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
469             }} /* Close n */
470 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
471 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
472 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
473 0           } break;
474 0           case PDL_L: {
475 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_Long,L,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
476 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_Long cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
477 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
478 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
479 0           curind = ns;
480 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
481 0           PDL_Indx outer_m = m; int flag=0;
482 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
483 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
484             }} /* Close m=:outer_m */
485 0 0         if (!flag &&
    0          
486             PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,L,a_badval_isnan) &&,)
487 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_L(cur)))
488 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
489             }} /* Close n */
490 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
491 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
492 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
493 0           } break;
494 0           case PDL_UL: {
495 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_ULong,K,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
496 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_ULong cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
497 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
498 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
499 0           curind = ns;
500 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
501 0           PDL_Indx outer_m = m; int flag=0;
502 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
503 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
504             }} /* Close m=:outer_m */
505 0 0         if (!flag &&
    0          
506             PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,K,a_badval_isnan) &&,)
507 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_K(cur)))
508 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
509             }} /* Close n */
510 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
511 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
512 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
513 0           } break;
514 0           case PDL_IND: {
515 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
516 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_Indx cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
517 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
518 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
519 0           curind = ns;
520 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
521 0           PDL_Indx outer_m = m; int flag=0;
522 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
523 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
524             }} /* Close m=:outer_m */
525 0 0         if (!flag &&
    0          
526             PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,N,a_badval_isnan) &&,)
527 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_N(cur)))
528 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
529             }} /* Close n */
530 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
531 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
532 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
533 0           } break;
534 0           case PDL_ULL: {
535 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_ULongLong,P,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
536 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_ULongLong cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
537 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
538 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
539 0           curind = ns;
540 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
541 0           PDL_Indx outer_m = m; int flag=0;
542 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
543 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
544             }} /* Close m=:outer_m */
545 0 0         if (!flag &&
    0          
546             PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,P,a_badval_isnan) &&,)
547 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_P(cur)))
548 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
549             }} /* Close n */
550 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
551 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
552 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
553 0           } break;
554 0           case PDL_LL: {
555 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_LongLong,Q,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
556 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_LongLong cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
557 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
558 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
559 0           curind = ns;
560 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
561 0           PDL_Indx outer_m = m; int flag=0;
562 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
563 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
564             }} /* Close m=:outer_m */
565 0 0         if (!flag &&
    0          
566             PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,Q,a_badval_isnan) &&,)
567 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_Q(cur)))
568 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
569             }} /* Close n */
570 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
571 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
572 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
573 0           } break;
574 0           case PDL_F: {
575 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_Float,F,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
576 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_Float cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
577 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
578 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
579 0           curind = ns;
580 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
581 0           PDL_Indx outer_m = m; int flag=0;
582 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
583 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
584             }} /* Close m=:outer_m */
585 0 0         if (!flag &&
    0          
586             PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,F,a_badval_isnan) &&,)
587 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_F(cur)))
    0          
588 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
589             }} /* Close n */
590 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
591 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
592 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
593 0           } break;
594 1           case PDL_D: {
595 1 50         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_Double,D,PDL_Indx,N)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
596 4 50         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_Double cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    50          
    50          
    50          
    50          
    100          
    100          
597 1           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
598 4 100         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
599 3           curind = ns;
600 18 100         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
601 15           PDL_Indx outer_m = m; int flag=0;
602 26 100         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
603 14 100         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
604             }} /* Close m=:outer_m */
605 15 100         if (!flag &&
    100          
606             PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,D,a_badval_isnan) &&,)
607 9 50         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_D(cur)))
    0          
608 12           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
609             }} /* Close n */
610 3 50         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
611 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
612 1 50         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    50          
613 1           } break;
614 0           case PDL_LD: {
615 0 0         PDL_DECLARE_PARAMS_maximum_n_ind_1(PDL_LDouble,E,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
616 0 0         PDL_BROADCASTLOOP_START_maximum_n_ind_readdata {PDL_LDouble cur = 0; PDL_Indx curind; register PDL_Indx ns = __privtrans->ind_sizes[1];
    0          
    0          
    0          
    0          
    0          
    0          
617 0           __privtrans->pdls[1]->state &= ~PDL_BADVAL;
618 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
619 0           curind = ns;
620 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
621 0           PDL_Indx outer_m = m; int flag=0;
622 0 0         {/* Open m=:outer_m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=PDLMIN(outer_m, (__m_size))); for(; m<__m_stop; m+=1) {
623 0 0         if ((c_datap)[0+(__inc_c_m*(m))] == n) {flag=1; break;}
624             }} /* Close m=:outer_m */
625 0 0         if (!flag &&
    0          
626             PDL_IF_BAD(!PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,E,a_badval_isnan) &&,)
627 0 0         ((curind == ns) || (a_datap)[0+(__inc_a_n*(n))] > cur || PDL_ISNAN_E(cur)))
    0          
628 0           {cur = (a_datap)[0+(__inc_a_n*(n))]; curind = n;}
629             }} /* Close n */
630 0 0         if (curind != ns) { (c_datap)[0+(__inc_c_m*(m))] = curind; }
631 0           else { (c_datap)[0+(__inc_c_m*(m))]=c_badval; __privtrans->pdls[1]->state |= PDL_BADVAL; }
632 0 0         }} /* Close m */}PDL_BROADCASTLOOP_END_maximum_n_ind_readdata
    0          
633 0           } break;
634 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in maximum_n_ind: unhandled datatype(%d), only handles (ABSULKNPQFDE)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
635             }
636             #undef PDL_IF_BAD
637             }
638 1           return PDL_err;
639             }
640              
641             static pdl_datatypes pdl_maximum_n_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 };
642             static PDL_Indx pdl_maximum_n_ind_vtable_realdims[] = { 1, 1 };
643             static char *pdl_maximum_n_ind_vtable_parnames[] = { "a","c" };
644             static short pdl_maximum_n_ind_vtable_parflags[] = {
645             0,
646             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISTYPED|PDL_PARAM_ISWRITE
647             };
648             static pdl_datatypes pdl_maximum_n_ind_vtable_partypes[] = { -1, PDL_IND };
649             static PDL_Indx pdl_maximum_n_ind_vtable_realdims_starts[] = { 0, 1 };
650             static PDL_Indx pdl_maximum_n_ind_vtable_realdims_ind_ids[] = { 1, 0 };
651             static char *pdl_maximum_n_ind_vtable_indnames[] = { "m","n" };
652             pdl_transvtable pdl_maximum_n_ind_vtable = {
653             PDL_TRANS_DO_BROADCAST|PDL_TRANS_BADPROCESS, 0, pdl_maximum_n_ind_vtable_gentypes, 1, 2, NULL /*CORE21*/,
654             pdl_maximum_n_ind_vtable_realdims, pdl_maximum_n_ind_vtable_parnames,
655             pdl_maximum_n_ind_vtable_parflags, pdl_maximum_n_ind_vtable_partypes,
656             pdl_maximum_n_ind_vtable_realdims_starts, pdl_maximum_n_ind_vtable_realdims_ind_ids, 2,
657             2, pdl_maximum_n_ind_vtable_indnames,
658             pdl_maximum_n_ind_redodims, pdl_maximum_n_ind_readdata, NULL,
659             NULL,
660             sizeof(pdl_params_maximum_n_ind),"PDL::Ufunc::maximum_n_ind"
661             };
662              
663              
664 1           pdl_error pdl_run_maximum_n_ind(pdl *a,pdl *c,PDL_Indx m_size) {
665 1           pdl_error PDL_err = {0, NULL, 0};
666 1 50         if (!PDL) return (pdl_error){PDL_EFATAL, "PDL core struct is NULL, can't continue",0};
667 1           pdl_trans *__privtrans = PDL->create_trans(&pdl_maximum_n_ind_vtable);
668 1 50         if (!__privtrans) return PDL->make_error_simple(PDL_EFATAL, "Couldn't create trans");
669 1           pdl_params_maximum_n_ind *__params = __privtrans->params;
670 1           __privtrans->pdls[0] = a;
671 1           __privtrans->pdls[1] = c;
672 1 50         PDL_RETERROR(PDL_err, PDL->type_coerce(__privtrans));
673 1           (__params->m_size) = (m_size); /* CType.get_copy */
674 1 50         PDL_RETERROR(PDL_err, PDL->make_trans_mutual(__privtrans));
675 1           return PDL_err;
676             }