File Coverage

lib/PDL/Primitive-pp-which_both.c
Criterion Covered Total %
statement 43 365 11.7
branch 45 2112 2.1
condition n/a
subroutine n/a
pod n/a
total 88 2477 3.5


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/Primitive.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_Primitive
21             extern Core* PDL; /* Structure hold core C functions */
22             #line 23 "lib/PDL/Primitive-pp-which_both.c"
23             extern int pdl_srand_threads;
24             extern uint64_t *pdl_rand_state;
25             void pdl_srand(uint64_t **s, uint64_t seed, int n);
26             double pdl_drand(uint64_t *s);
27             #define PDL_MAYBE_SRAND \
28             if (pdl_srand_threads < 0) \
29             pdl_srand(&pdl_rand_state, PDL->pdl_seed(), PDL->online_cpus());
30             #define PDL_RAND_SET_OFFSET(v, thr, pdl) \
31             if (v < 0) { \
32             if (thr.mag_nthr >= 0) { \
33             int thr_no = PDL->magic_get_thread(pdl); \
34             if (thr_no < 0) return PDL->make_error_simple(PDL_EFATAL, "Invalid pdl_magic_get_thread!"); \
35             v = thr_no == 0 ? thr_no : thr_no % PDL->online_cpus(); \
36             } else { \
37             v = 0; \
38             } \
39             }
40              
41             #line 1857 "lib/PDL/PP.pm"
42             pdl_error pdl_which_both_readdata(pdl_trans *__privtrans) {
43             pdl_error PDL_err = {0, NULL, 0};
44             #line 45 "lib/PDL/Primitive-pp-which_both.c"
45 4           register PDL_Indx __n_size = __privtrans->ind_sizes[0];
46 4 50         if (!__privtrans->broadcast.incs) return PDL->make_error(PDL_EUSERERROR, "Error in which_both:" "broadcast.incs NULL");
47             /* broadcastloop declarations */
48             int __brcloopval;
49             register PDL_Indx __tind0,__tind1; /* counters along dim */
50 4           register PDL_Indx __tnpdls = __privtrans->broadcast.npdls;
51             /* dims here are how many steps along those dims */
52 4           register PDL_Indx __tinc0_mask = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,0);
53 4           register PDL_Indx __tinc0_inds = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,0);
54 4           register PDL_Indx __tinc0_notinds = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,2,0);
55 4           register PDL_Indx __tinc0_lastout = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,3,0);
56 4           register PDL_Indx __tinc0_lastoutn = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,4,0);
57 4           register PDL_Indx __tinc1_mask = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,1);
58 4           register PDL_Indx __tinc1_inds = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,1);
59 4           register PDL_Indx __tinc1_notinds = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,2,1);
60 4           register PDL_Indx __tinc1_lastout = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,3,1);
61 4           register PDL_Indx __tinc1_lastoutn = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,4,1);
62             #define PDL_BROADCASTLOOP_START_which_both_readdata PDL_BROADCASTLOOP_START( \
63             readdata, \
64             __privtrans->broadcast, \
65             __privtrans->vtable, \
66             mask_datap += __offsp[0]; \
67             inds_datap += __offsp[1]; \
68             notinds_datap += __offsp[2]; \
69             lastout_datap += __offsp[3]; \
70             lastoutn_datap += __offsp[4]; \
71             , \
72             ( ,mask_datap += __tinc1_mask - __tinc0_mask * __tdims0 \
73             ,inds_datap += __tinc1_inds - __tinc0_inds * __tdims0 \
74             ,notinds_datap += __tinc1_notinds - __tinc0_notinds * __tdims0 \
75             ,lastout_datap += __tinc1_lastout - __tinc0_lastout * __tdims0 \
76             ,lastoutn_datap += __tinc1_lastoutn - __tinc0_lastoutn * __tdims0 \
77             ), \
78             ( ,mask_datap += __tinc0_mask \
79             ,inds_datap += __tinc0_inds \
80             ,notinds_datap += __tinc0_notinds \
81             ,lastout_datap += __tinc0_lastout \
82             ,lastoutn_datap += __tinc0_lastoutn \
83             ) \
84             )
85             #define PDL_BROADCASTLOOP_END_which_both_readdata PDL_BROADCASTLOOP_END( \
86             __privtrans->broadcast, \
87             mask_datap -= __tinc1_mask * __tdims1 + __offsp[0]; \
88             inds_datap -= __tinc1_inds * __tdims1 + __offsp[1]; \
89             notinds_datap -= __tinc1_notinds * __tdims1 + __offsp[2]; \
90             lastout_datap -= __tinc1_lastout * __tdims1 + __offsp[3]; \
91             lastoutn_datap -= __tinc1_lastoutn * __tdims1 + __offsp[4]; \
92             )
93 4           register PDL_Indx __inc_inds_n = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,1,0)]; (void)__inc_inds_n;
94 4           register PDL_Indx __inc_mask_n = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,0,0)]; (void)__inc_mask_n;
95 4           register PDL_Indx __inc_notinds_n = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,2,0)]; (void)__inc_notinds_n;
96             #ifndef PDL_DECLARE_PARAMS_which_both_1
97             #define PDL_DECLARE_PARAMS_which_both_1(PDL_TYPE_OP,PDL_PPSYM_OP,PDL_TYPE_PARAM_inds,PDL_PPSYM_PARAM_inds,PDL_TYPE_PARAM_notinds,PDL_PPSYM_PARAM_notinds,PDL_TYPE_PARAM_lastout,PDL_PPSYM_PARAM_lastout,PDL_TYPE_PARAM_lastoutn,PDL_PPSYM_PARAM_lastoutn) \
98             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, mask, (__privtrans->pdls[0]), 1, PDL_PPSYM_OP) \
99             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_PARAM_inds, inds, (__privtrans->pdls[1]), 1, PDL_PPSYM_PARAM_inds) \
100             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_PARAM_notinds, notinds, (__privtrans->pdls[2]), 1, PDL_PPSYM_PARAM_notinds) \
101             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_PARAM_lastout, lastout, (__privtrans->pdls[3]), 1, PDL_PPSYM_PARAM_lastout) \
102             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_PARAM_lastoutn, lastoutn, (__privtrans->pdls[4]), 1, PDL_PPSYM_PARAM_lastoutn)
103             #endif
104 4 50         if ( __privtrans->bvalflag ) { /* ** do 'bad' Code ** */
105             #define PDL_BAD_CODE
106             #define PDL_IF_BAD(t,f) t
107 0           switch (__privtrans->__datatype) { /* Start generic switch */
108 0           case PDL_SB: {
109 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_SByte,A,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
110 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
111 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
112 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,A,mask_badval_isnan),) ) {
    0          
    0          
113 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
114 0           dm++;
115             }else {
116 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
117 0           dm2++;
118             }
119 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
120 0           } break;
121 0           case PDL_B: {
122 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_Byte,B,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
123 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
124 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
125 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,B,mask_badval_isnan),) ) {
    0          
    0          
126 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
127 0           dm++;
128             }else {
129 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
130 0           dm2++;
131             }
132 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
133 0           } break;
134 0           case PDL_S: {
135 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_Short,S,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
136 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
137 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
138 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,S,mask_badval_isnan),) ) {
    0          
    0          
139 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
140 0           dm++;
141             }else {
142 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
143 0           dm2++;
144             }
145 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
146 0           } break;
147 0           case PDL_US: {
148 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_Ushort,U,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
149 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
150 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
151 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,U,mask_badval_isnan),) ) {
    0          
    0          
152 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
153 0           dm++;
154             }else {
155 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
156 0           dm2++;
157             }
158 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
159 0           } break;
160 0           case PDL_L: {
161 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_Long,L,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
162 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
163 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
164 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,L,mask_badval_isnan),) ) {
    0          
    0          
165 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
166 0           dm++;
167             }else {
168 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
169 0           dm2++;
170             }
171 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
172 0           } break;
173 0           case PDL_UL: {
174 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_ULong,K,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
175 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
176 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
177 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,K,mask_badval_isnan),) ) {
    0          
    0          
178 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
179 0           dm++;
180             }else {
181 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
182 0           dm2++;
183             }
184 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
185 0           } break;
186 0           case PDL_IND: {
187 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
188 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
189 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
190 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,N,mask_badval_isnan),) ) {
    0          
    0          
191 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
192 0           dm++;
193             }else {
194 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
195 0           dm2++;
196             }
197 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
198 0           } break;
199 0           case PDL_ULL: {
200 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_ULongLong,P,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
201 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
202 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
203 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,P,mask_badval_isnan),) ) {
    0          
    0          
204 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
205 0           dm++;
206             }else {
207 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
208 0           dm2++;
209             }
210 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
211 0           } break;
212 0           case PDL_LL: {
213 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_LongLong,Q,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
214 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
215 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
216 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,Q,mask_badval_isnan),) ) {
    0          
    0          
217 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
218 0           dm++;
219             }else {
220 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
221 0           dm2++;
222             }
223 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
224 0           } break;
225 0           case PDL_F: {
226 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_Float,F,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
227 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
228 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
229 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,F,mask_badval_isnan),) ) {
    0          
    0          
    0          
230 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
231 0           dm++;
232             }else {
233 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
234 0           dm2++;
235             }
236 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
237 0           } break;
238 0           case PDL_D: {
239 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_Double,D,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
240 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
241 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
242 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,D,mask_badval_isnan),) ) {
    0          
    0          
    0          
243 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
244 0           dm++;
245             }else {
246 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
247 0           dm2++;
248             }
249 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
250 0           } break;
251 0           case PDL_LD: {
252 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_LDouble,E,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
253 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
254 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
255 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,E,mask_badval_isnan),) ) {
    0          
    0          
    0          
256 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
257 0           dm++;
258             }else {
259 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
260 0           dm2++;
261             }
262 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
263 0           } break;
264 0           case PDL_CF: {
265 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_CFloat,G,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
266 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
267 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
268 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,G,mask_badval_isnan),) ) {
    0          
    0          
    0          
    0          
    0          
    0          
269 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
270 0           dm++;
271             }else {
272 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
273 0           dm2++;
274             }
275 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
276 0           } break;
277 0           case PDL_CD: {
278 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_CDouble,C,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
279 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
280 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
281 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,C,mask_badval_isnan),) ) {
    0          
    0          
    0          
    0          
    0          
    0          
282 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
283 0           dm++;
284             }else {
285 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
286 0           dm2++;
287             }
288 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
289 0           } break;
290 0           case PDL_CLD: {
291 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_CLDouble,H,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
292 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
293 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
294 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,H,mask_badval_isnan),) ) {
    0          
    0          
    0          
    0          
    0          
    0          
295 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
296 0           dm++;
297             }else {
298 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
299 0           dm2++;
300             }
301 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
302 0           } break;
303 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in which_both: unhandled datatype(%d), only handles (ABSULKNPQFDEGCH)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
304             }
305             #undef PDL_BAD_CODE
306             #undef PDL_IF_BAD
307             } else { /* ** else do 'good' Code ** */
308             #define PDL_IF_BAD(t,f) f
309 4           switch (__privtrans->__datatype) { /* Start generic switch */
310 0           case PDL_SB: {
311 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_SByte,A,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
312 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
313 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
314 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,A,mask_badval_isnan),) ) {
315 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
316 0           dm++;
317             }else {
318 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
319 0           dm2++;
320             }
321 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
322 0           } break;
323 0           case PDL_B: {
324 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_Byte,B,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
325 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
326 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
327 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,B,mask_badval_isnan),) ) {
328 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
329 0           dm++;
330             }else {
331 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
332 0           dm2++;
333             }
334 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
335 0           } break;
336 0           case PDL_S: {
337 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_Short,S,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
338 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
339 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
340 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,S,mask_badval_isnan),) ) {
341 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
342 0           dm++;
343             }else {
344 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
345 0           dm2++;
346             }
347 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
348 0           } break;
349 0           case PDL_US: {
350 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_Ushort,U,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
351 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
352 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
353 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,U,mask_badval_isnan),) ) {
354 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
355 0           dm++;
356             }else {
357 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
358 0           dm2++;
359             }
360 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
361 0           } break;
362 0           case PDL_L: {
363 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_Long,L,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
364 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
365 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
366 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,L,mask_badval_isnan),) ) {
367 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
368 0           dm++;
369             }else {
370 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
371 0           dm2++;
372             }
373 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
374 0           } break;
375 0           case PDL_UL: {
376 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_ULong,K,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
377 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
378 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
379 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,K,mask_badval_isnan),) ) {
380 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
381 0           dm++;
382             }else {
383 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
384 0           dm2++;
385             }
386 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
387 0           } break;
388 0           case PDL_IND: {
389 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
390 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
391 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
392 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,N,mask_badval_isnan),) ) {
393 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
394 0           dm++;
395             }else {
396 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
397 0           dm2++;
398             }
399 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
400 0           } break;
401 0           case PDL_ULL: {
402 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_ULongLong,P,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
403 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
404 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
405 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,P,mask_badval_isnan),) ) {
406 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
407 0           dm++;
408             }else {
409 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
410 0           dm2++;
411             }
412 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
413 0           } break;
414 0           case PDL_LL: {
415 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_LongLong,Q,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
416 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
417 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
418 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,Q,mask_badval_isnan),) ) {
419 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
420 0           dm++;
421             }else {
422 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
423 0           dm2++;
424             }
425 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
426 0           } break;
427 0           case PDL_F: {
428 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_Float,F,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
429 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
430 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
431 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,F,mask_badval_isnan),) ) {
432 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
433 0           dm++;
434             }else {
435 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
436 0           dm2++;
437             }
438 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
439 0           } break;
440 4           case PDL_D: {
441 4 50         PDL_DECLARE_PARAMS_which_both_1(PDL_Double,D,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
442 16 50         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    50          
    50          
    50          
    50          
    100          
    100          
443 27 100         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
444 23 100         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,D,mask_badval_isnan),) ) {
445 14           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
446 14           dm++;
447             }else {
448 9           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
449 9           dm2++;
450             }
451 31 100         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    100          
    50          
    50          
452 4           } break;
453 0           case PDL_LD: {
454 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_LDouble,E,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
455 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
456 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
457 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,E,mask_badval_isnan),) ) {
458 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
459 0           dm++;
460             }else {
461 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
462 0           dm2++;
463             }
464 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
465 0           } break;
466 0           case PDL_CF: {
467 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_CFloat,G,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
468 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
469 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
470 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,G,mask_badval_isnan),) ) {
    0          
471 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
472 0           dm++;
473             }else {
474 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
475 0           dm2++;
476             }
477 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
478 0           } break;
479 0           case PDL_CD: {
480 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_CDouble,C,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
481 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
482 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
483 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,C,mask_badval_isnan),) ) {
    0          
484 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
485 0           dm++;
486             }else {
487 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
488 0           dm2++;
489             }
490 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
491 0           } break;
492 0           case PDL_CLD: {
493 0 0         PDL_DECLARE_PARAMS_which_both_1(PDL_CLDouble,H,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
494 0 0         PDL_BROADCASTLOOP_START_which_both_readdata {PDL_Indx dm=0; int dm2=0;
    0          
    0          
    0          
    0          
    0          
    0          
495 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
496 0 0         if ( (mask_datap)[0+(__inc_mask_n*(n))] PDL_IF_BAD(&& !PDL_ISBAD2((mask_datap)[0+(__inc_mask_n*(n))],mask_badval,H,mask_badval_isnan),) ) {
    0          
497 0           (inds_datap)[0+(__inc_inds_n*(dm))] = n;
498 0           dm++;
499             }else {
500 0           (notinds_datap)[0+(__inc_notinds_n*(dm2))]=n;
501 0           dm2++;
502             }
503 0 0         }} /* Close n */(lastout_datap)[0] = dm; (lastoutn_datap)[0] = dm2; {/* Open n=dm */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (inds_datap)[0+(__inc_inds_n*(n))] = -1; }} /* Close n=dm */ {/* Open n=dm2 */ PDL_EXPAND2(register PDL_Indx n=PDLMAX((dm2),0), __n_stop=(__n_size)); for(; n<__n_stop; n+=1) { (notinds_datap)[0+(__inc_notinds_n*(n))] = -1; }} /* Close n=dm2 */}PDL_BROADCASTLOOP_END_which_both_readdata
    0          
    0          
    0          
504 0           } break;
505 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in which_both: unhandled datatype(%d), only handles (ABSULKNPQFDEGCH)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
506             }
507             #undef PDL_IF_BAD
508             }
509 4           return PDL_err;
510             }
511              
512             static pdl_datatypes pdl_which_both_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, PDL_CF, PDL_CD, PDL_CLD, -1 };
513             static PDL_Indx pdl_which_both_vtable_realdims[] = { 1, 1, 1, 0, 0 };
514             static char *pdl_which_both_vtable_parnames[] = { "mask","inds","notinds","lastout","lastoutn" };
515             static short pdl_which_both_vtable_parflags[] = {
516             0,
517             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISTYPED|PDL_PARAM_ISWRITE,
518             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISTYPED|PDL_PARAM_ISWRITE,
519             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISTYPED|PDL_PARAM_ISWRITE,
520             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISTYPED|PDL_PARAM_ISWRITE
521             };
522             static pdl_datatypes pdl_which_both_vtable_partypes[] = { -1, PDL_IND, PDL_IND, PDL_IND, PDL_IND };
523             static PDL_Indx pdl_which_both_vtable_realdims_starts[] = { 0, 1, 2, 3, 3 };
524             static PDL_Indx pdl_which_both_vtable_realdims_ind_ids[] = { 0, 0, 0 };
525             static char *pdl_which_both_vtable_indnames[] = { "n" };
526             pdl_transvtable pdl_which_both_vtable = {
527             PDL_TRANS_DO_BROADCAST|PDL_TRANS_BADPROCESS, 0, pdl_which_both_vtable_gentypes, 1, 5, NULL /*CORE21*/,
528             pdl_which_both_vtable_realdims, pdl_which_both_vtable_parnames,
529             pdl_which_both_vtable_parflags, pdl_which_both_vtable_partypes,
530             pdl_which_both_vtable_realdims_starts, pdl_which_both_vtable_realdims_ind_ids, 3,
531             1, pdl_which_both_vtable_indnames,
532             NULL, pdl_which_both_readdata, NULL,
533             NULL,
534             0,"PDL::Primitive::which_both"
535             };
536              
537              
538 4           pdl_error pdl_run_which_both(pdl *mask,pdl *inds,pdl *notinds,pdl *lastout,pdl *lastoutn) {
539 4           pdl_error PDL_err = {0, NULL, 0};
540 4 50         if (!PDL) return (pdl_error){PDL_EFATAL, "PDL core struct is NULL, can't continue",0};
541 4           pdl_trans *__privtrans = PDL->create_trans(&pdl_which_both_vtable);
542 4 50         if (!__privtrans) return PDL->make_error_simple(PDL_EFATAL, "Couldn't create trans");
543 4           __privtrans->pdls[0] = mask;
544 4           __privtrans->pdls[1] = inds;
545 4           __privtrans->pdls[2] = notinds;
546 4           __privtrans->pdls[3] = lastout;
547 4           __privtrans->pdls[4] = lastoutn;
548 4 50         PDL_RETERROR(PDL_err, PDL->type_coerce(__privtrans));
549 4 50         PDL_RETERROR(PDL_err, PDL->make_trans_mutual(__privtrans));
550 4           return PDL_err;
551             }