File Coverage

lib/PDL/Ufunc-pp-oddpctover.c
Criterion Covered Total %
statement 36 211 17.0
branch 47 1392 3.3
condition n/a
subroutine n/a
pod n/a
total 83 1603 5.1


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