File Coverage

lib/PDL/Ops-pp-assgn.c
Criterion Covered Total %
statement 56 112 50.0
branch 126 540 23.3
condition n/a
subroutine n/a
pod n/a
total 182 652 27.9


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