File Coverage

lib/PDL/Slices-pp-_clump_int.c
Criterion Covered Total %
statement 84 116 72.4
branch 129 370 34.8
condition n/a
subroutine n/a
pod n/a
total 213 486 43.8


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/Slices.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_Slices
21             extern Core* PDL; /* Structure hold core C functions */
22              
23             #line 1846 "lib/PDL/PP.pm"
24             typedef struct pdl_params__clump_int {
25             #line 26 "lib/PDL/Slices-pp-_clump_int.c"
26             PDL_Indx n;
27             } pdl_params__clump_int;
28              
29              
30             #line 1857 "lib/PDL/PP.pm"
31             pdl_error pdl__clump_int_redodims(pdl_trans *__privtrans) {
32             pdl_error PDL_err = {0, NULL, 0};
33             #line 34 "lib/PDL/Slices-pp-_clump_int.c"
34 11860           pdl_params__clump_int *__params = __privtrans->params; (void)__params;
35 11860           pdl *__it = __privtrans->pdls[1]; (void) __it;
36 11860 50         PDL->hdr_childcopy(__privtrans); __privtrans->dims_redone = 1;
37              
38             #line 1388 "lib/PDL/Slices.pd"
39             /* truncate overly long clumps to just clump existing dimensions */
40             if(__params->n > __privtrans->pdls[0]->ndims)
41             __params->n = __privtrans->pdls[0]->ndims;
42             if(__params->n < -1)
43             __params->n = __privtrans->pdls[0]->ndims + __params->n + 1;
44             PDL_Indx nrem = (__params->n == -1 ? __privtrans->pdls[0]->broadcastids[0] : __params->n);
45             PDL_RETERROR(PDL_err, PDL->reallocdims(__it,__privtrans->pdls[0]->ndims - nrem + 1));;
46             PDL_Indx i, d1=1;
47             for(i=0; i
48             d1 *= __privtrans->pdls[0]->dims[i];
49             }
50             __privtrans->pdls[1]->dims[0] = d1;
51             for(; i<__privtrans->pdls[0]->ndims; i++) {
52             __privtrans->pdls[1]->dims[i-nrem+1] = __privtrans->pdls[0]->dims[i];
53             }
54             PDL_RETERROR(PDL_err, PDL->setdims_careful(__it));;
55            
56             #line 384 "lib/PDL/PP.pm"
57             {int __ind; PDL_RETERROR(PDL_err, PDL->reallocbroadcastids(__privtrans->pdls[1], __privtrans->pdls[0]->nbroadcastids));
58             for(__ind=0; __ind<__privtrans->pdls[0]->nbroadcastids; __ind++)
59             __privtrans->pdls[1]->broadcastids[__ind] = __privtrans->pdls[0]->broadcastids[__ind] + (1-nrem);
60             }
61             #line 62 "lib/PDL/Slices-pp-_clump_int.c"
62             ;
63             #line 64 "lib/PDL/Slices-pp-_clump_int.c"
64 11860           return PDL_err;
65             }
66              
67              
68             #line 1857 "lib/PDL/PP.pm"
69             pdl_error pdl__clump_int_readdata(pdl_trans *__privtrans) {
70             pdl_error PDL_err = {0, NULL, 0};
71             #line 72 "lib/PDL/Slices-pp-_clump_int.c"
72 11872           pdl_params__clump_int *__params = __privtrans->params; (void)__params;
73 11872           pdl *__it = __privtrans->pdls[1]; (void) __it;
74             #ifndef PDL_DECLARE_PARAMS__clump_int_1
75             #define PDL_DECLARE_PARAMS__clump_int_1(PDL_TYPE_OP,PDL_PPSYM_OP) \
76             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, PARENT, (__privtrans->pdls[0]), 1, PDL_PPSYM_OP) \
77             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, CHILD, (__privtrans->pdls[1]), 1, PDL_PPSYM_OP)
78             #endif
79             #define PDL_IF_BAD(t,f) f
80 11872           switch (__privtrans->__datatype) { /* Start generic switch */
81 4261           case PDL_SB: {
82 4261 50         PDL_DECLARE_PARAMS__clump_int_1(PDL_SByte,A)
    50          
    50          
    50          
    50          
    50          
83             {
84             #line 1407 "lib/PDL/Slices.pd"
85             PDL_Indx i;
86             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
87             do { PDL_IF_BAD(if (PDL_ISBAD2(PARENT_datap[i],PARENT_badval,A,PARENT_badval_isnan) ) { CHILD_datap[i]=CHILD_badval; } else,) { CHILD_datap[i] = PARENT_datap[i]; } } while (0);
88             }
89             #line 90 "lib/PDL/Slices-pp-_clump_int.c"
90             }
91 4261           } break;
92 2095           case PDL_B: {
93 2095 50         PDL_DECLARE_PARAMS__clump_int_1(PDL_Byte,B)
    50          
    50          
    50          
    50          
    50          
94             {
95             #line 1407 "lib/PDL/Slices.pd"
96             PDL_Indx i;
97             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
98             do { PDL_IF_BAD(if (PDL_ISBAD2(PARENT_datap[i],PARENT_badval,B,PARENT_badval_isnan) ) { CHILD_datap[i]=CHILD_badval; } else,) { CHILD_datap[i] = PARENT_datap[i]; } } while (0);
99             }
100             #line 101 "lib/PDL/Slices-pp-_clump_int.c"
101             }
102 2095           } break;
103 59           case PDL_S: {
104 59 50         PDL_DECLARE_PARAMS__clump_int_1(PDL_Short,S)
    50          
    50          
    50          
    50          
    50          
105             {
106             #line 1407 "lib/PDL/Slices.pd"
107             PDL_Indx i;
108             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
109             do { PDL_IF_BAD(if (PDL_ISBAD2(PARENT_datap[i],PARENT_badval,S,PARENT_badval_isnan) ) { CHILD_datap[i]=CHILD_badval; } else,) { CHILD_datap[i] = PARENT_datap[i]; } } while (0);
110             }
111             #line 112 "lib/PDL/Slices-pp-_clump_int.c"
112             }
113 59           } break;
114 93           case PDL_US: {
115 93 50         PDL_DECLARE_PARAMS__clump_int_1(PDL_Ushort,U)
    50          
    50          
    50          
    50          
    50          
116             {
117             #line 1407 "lib/PDL/Slices.pd"
118             PDL_Indx i;
119             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
120             do { PDL_IF_BAD(if (PDL_ISBAD2(PARENT_datap[i],PARENT_badval,U,PARENT_badval_isnan) ) { CHILD_datap[i]=CHILD_badval; } else,) { CHILD_datap[i] = PARENT_datap[i]; } } while (0);
121             }
122             #line 123 "lib/PDL/Slices-pp-_clump_int.c"
123             }
124 93           } break;
125 2481           case PDL_L: {
126 2481 50         PDL_DECLARE_PARAMS__clump_int_1(PDL_Long,L)
    50          
    50          
    50          
    50          
    50          
127             {
128             #line 1407 "lib/PDL/Slices.pd"
129             PDL_Indx i;
130             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
131             do { PDL_IF_BAD(if (PDL_ISBAD2(PARENT_datap[i],PARENT_badval,L,PARENT_badval_isnan) ) { CHILD_datap[i]=CHILD_badval; } else,) { CHILD_datap[i] = PARENT_datap[i]; } } while (0);
132             }
133             #line 134 "lib/PDL/Slices-pp-_clump_int.c"
134             }
135 2481           } break;
136 2           case PDL_UL: {
137 2 50         PDL_DECLARE_PARAMS__clump_int_1(PDL_ULong,K)
    50          
    50          
    50          
    50          
    50          
138             {
139             #line 1407 "lib/PDL/Slices.pd"
140             PDL_Indx i;
141             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
142             do { PDL_IF_BAD(if (PDL_ISBAD2(PARENT_datap[i],PARENT_badval,K,PARENT_badval_isnan) ) { CHILD_datap[i]=CHILD_badval; } else,) { CHILD_datap[i] = PARENT_datap[i]; } } while (0);
143             }
144             #line 145 "lib/PDL/Slices-pp-_clump_int.c"
145             }
146 2           } break;
147 847           case PDL_IND: {
148 847 50         PDL_DECLARE_PARAMS__clump_int_1(PDL_Indx,N)
    50          
    50          
    50          
    50          
    50          
149             {
150             #line 1407 "lib/PDL/Slices.pd"
151             PDL_Indx i;
152             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
153             do { PDL_IF_BAD(if (PDL_ISBAD2(PARENT_datap[i],PARENT_badval,N,PARENT_badval_isnan) ) { CHILD_datap[i]=CHILD_badval; } else,) { CHILD_datap[i] = PARENT_datap[i]; } } while (0);
154             }
155             #line 156 "lib/PDL/Slices-pp-_clump_int.c"
156             }
157 847           } break;
158 4           case PDL_ULL: {
159 4 50         PDL_DECLARE_PARAMS__clump_int_1(PDL_ULongLong,P)
    50          
    50          
    50          
    50          
    50          
160             {
161             #line 1407 "lib/PDL/Slices.pd"
162             PDL_Indx i;
163             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
164             do { PDL_IF_BAD(if (PDL_ISBAD2(PARENT_datap[i],PARENT_badval,P,PARENT_badval_isnan) ) { CHILD_datap[i]=CHILD_badval; } else,) { CHILD_datap[i] = PARENT_datap[i]; } } while (0);
165             }
166             #line 167 "lib/PDL/Slices-pp-_clump_int.c"
167             }
168 4           } break;
169 166           case PDL_LL: {
170 166 50         PDL_DECLARE_PARAMS__clump_int_1(PDL_LongLong,Q)
    50          
    50          
    50          
    50          
    50          
171             {
172             #line 1407 "lib/PDL/Slices.pd"
173             PDL_Indx i;
174             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
175             do { PDL_IF_BAD(if (PDL_ISBAD2(PARENT_datap[i],PARENT_badval,Q,PARENT_badval_isnan) ) { CHILD_datap[i]=CHILD_badval; } else,) { CHILD_datap[i] = PARENT_datap[i]; } } while (0);
176             }
177             #line 178 "lib/PDL/Slices-pp-_clump_int.c"
178             }
179 166           } break;
180 29           case PDL_F: {
181 29 50         PDL_DECLARE_PARAMS__clump_int_1(PDL_Float,F)
    50          
    50          
    50          
    50          
    50          
182             {
183             #line 1407 "lib/PDL/Slices.pd"
184             PDL_Indx i;
185             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
186             do { PDL_IF_BAD(if (PDL_ISBAD2(PARENT_datap[i],PARENT_badval,F,PARENT_badval_isnan) ) { CHILD_datap[i]=CHILD_badval; } else,) { CHILD_datap[i] = PARENT_datap[i]; } } while (0);
187             }
188             #line 189 "lib/PDL/Slices-pp-_clump_int.c"
189             }
190 29           } break;
191 1785           case PDL_D: {
192 1785 50         PDL_DECLARE_PARAMS__clump_int_1(PDL_Double,D)
    100          
    50          
    50          
    100          
    50          
193             {
194             #line 1407 "lib/PDL/Slices.pd"
195             PDL_Indx i;
196             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
197             do { PDL_IF_BAD(if (PDL_ISBAD2(PARENT_datap[i],PARENT_badval,D,PARENT_badval_isnan) ) { CHILD_datap[i]=CHILD_badval; } else,) { CHILD_datap[i] = PARENT_datap[i]; } } while (0);
198             }
199             #line 200 "lib/PDL/Slices-pp-_clump_int.c"
200             }
201 1785           } break;
202 5           case PDL_LD: {
203 5 50         PDL_DECLARE_PARAMS__clump_int_1(PDL_LDouble,E)
    50          
    50          
    50          
    50          
    50          
204             {
205             #line 1407 "lib/PDL/Slices.pd"
206             PDL_Indx i;
207             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
208             do { PDL_IF_BAD(if (PDL_ISBAD2(PARENT_datap[i],PARENT_badval,E,PARENT_badval_isnan) ) { CHILD_datap[i]=CHILD_badval; } else,) { CHILD_datap[i] = PARENT_datap[i]; } } while (0);
209             }
210             #line 211 "lib/PDL/Slices-pp-_clump_int.c"
211             }
212 5           } break;
213 4           case PDL_CF: {
214 4 50         PDL_DECLARE_PARAMS__clump_int_1(PDL_CFloat,G)
    50          
    50          
    50          
    50          
    50          
215             {
216             #line 1407 "lib/PDL/Slices.pd"
217             PDL_Indx i;
218             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
219             do { PDL_IF_BAD(if (PDL_ISBAD2(PARENT_datap[i],PARENT_badval,G,PARENT_badval_isnan) ) { CHILD_datap[i]=CHILD_badval; } else,) { CHILD_datap[i] = PARENT_datap[i]; } } while (0);
220             }
221             #line 222 "lib/PDL/Slices-pp-_clump_int.c"
222             }
223 4           } break;
224 37           case PDL_CD: {
225 37 50         PDL_DECLARE_PARAMS__clump_int_1(PDL_CDouble,C)
    50          
    50          
    50          
    50          
    50          
226             {
227             #line 1407 "lib/PDL/Slices.pd"
228             PDL_Indx i;
229             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
230             do { PDL_IF_BAD(if (PDL_ISBAD2(PARENT_datap[i],PARENT_badval,C,PARENT_badval_isnan) ) { CHILD_datap[i]=CHILD_badval; } else,) { CHILD_datap[i] = PARENT_datap[i]; } } while (0);
231             }
232             #line 233 "lib/PDL/Slices-pp-_clump_int.c"
233             }
234 37           } break;
235 4           case PDL_CLD: {
236 4 50         PDL_DECLARE_PARAMS__clump_int_1(PDL_CLDouble,H)
    50          
    50          
    50          
    50          
    50          
237             {
238             #line 1407 "lib/PDL/Slices.pd"
239             PDL_Indx i;
240             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
241             do { PDL_IF_BAD(if (PDL_ISBAD2(PARENT_datap[i],PARENT_badval,H,PARENT_badval_isnan) ) { CHILD_datap[i]=CHILD_badval; } else,) { CHILD_datap[i] = PARENT_datap[i]; } } while (0);
242             }
243             #line 244 "lib/PDL/Slices-pp-_clump_int.c"
244             }
245 4           } break;
246 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in _clump_int: unhandled datatype(%d), only handles (ABSULKNPQFDEGCH)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
247             }
248             #undef PDL_IF_BAD
249 11872           return PDL_err;
250             }
251              
252              
253             #line 1857 "lib/PDL/PP.pm"
254             pdl_error pdl__clump_int_writebackdata(pdl_trans *__privtrans) {
255             pdl_error PDL_err = {0, NULL, 0};
256             #line 257 "lib/PDL/Slices-pp-_clump_int.c"
257 217           pdl_params__clump_int *__params = __privtrans->params; (void)__params;
258 217           pdl *__it = __privtrans->pdls[1]; (void) __it;
259             #ifndef PDL_DECLARE_PARAMS__clump_int_1
260             #define PDL_DECLARE_PARAMS__clump_int_1(PDL_TYPE_OP,PDL_PPSYM_OP) \
261             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, PARENT, (__privtrans->pdls[0]), 1, PDL_PPSYM_OP) \
262             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, CHILD, (__privtrans->pdls[1]), 1, PDL_PPSYM_OP)
263             #endif
264             #define PDL_IF_BAD(t,f) f
265 217           switch (__privtrans->__datatype) { /* Start generic switch */
266 0           case PDL_SB: {
267 0 0         PDL_DECLARE_PARAMS__clump_int_1(PDL_SByte,A)
    0          
    0          
    0          
    0          
    0          
268             {
269             #line 1407 "lib/PDL/Slices.pd"
270             PDL_Indx i;
271             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
272             do { PDL_IF_BAD(if( PDL_ISBAD2(CHILD_datap[i],CHILD_badval,A,CHILD_badval_isnan) ) { PARENT_datap[i]=PARENT_badval; } else,) { PARENT_datap[i] = CHILD_datap[i]; } } while (0);
273             }
274             #line 275 "lib/PDL/Slices-pp-_clump_int.c"
275             }
276 0           } break;
277 5           case PDL_B: {
278 5 50         PDL_DECLARE_PARAMS__clump_int_1(PDL_Byte,B)
    50          
    50          
    50          
    50          
    50          
279             {
280             #line 1407 "lib/PDL/Slices.pd"
281             PDL_Indx i;
282             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
283             do { PDL_IF_BAD(if( PDL_ISBAD2(CHILD_datap[i],CHILD_badval,B,CHILD_badval_isnan) ) { PARENT_datap[i]=PARENT_badval; } else,) { PARENT_datap[i] = CHILD_datap[i]; } } while (0);
284             }
285             #line 286 "lib/PDL/Slices-pp-_clump_int.c"
286             }
287 5           } break;
288 0           case PDL_S: {
289 0 0         PDL_DECLARE_PARAMS__clump_int_1(PDL_Short,S)
    0          
    0          
    0          
    0          
    0          
290             {
291             #line 1407 "lib/PDL/Slices.pd"
292             PDL_Indx i;
293             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
294             do { PDL_IF_BAD(if( PDL_ISBAD2(CHILD_datap[i],CHILD_badval,S,CHILD_badval_isnan) ) { PARENT_datap[i]=PARENT_badval; } else,) { PARENT_datap[i] = CHILD_datap[i]; } } while (0);
295             }
296             #line 297 "lib/PDL/Slices-pp-_clump_int.c"
297             }
298 0           } break;
299 6           case PDL_US: {
300 6 50         PDL_DECLARE_PARAMS__clump_int_1(PDL_Ushort,U)
    50          
    50          
    50          
    50          
    50          
301             {
302             #line 1407 "lib/PDL/Slices.pd"
303             PDL_Indx i;
304             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
305             do { PDL_IF_BAD(if( PDL_ISBAD2(CHILD_datap[i],CHILD_badval,U,CHILD_badval_isnan) ) { PARENT_datap[i]=PARENT_badval; } else,) { PARENT_datap[i] = CHILD_datap[i]; } } while (0);
306             }
307             #line 308 "lib/PDL/Slices-pp-_clump_int.c"
308             }
309 6           } break;
310 13           case PDL_L: {
311 13 50         PDL_DECLARE_PARAMS__clump_int_1(PDL_Long,L)
    50          
    50          
    50          
    50          
    50          
312             {
313             #line 1407 "lib/PDL/Slices.pd"
314             PDL_Indx i;
315             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
316             do { PDL_IF_BAD(if( PDL_ISBAD2(CHILD_datap[i],CHILD_badval,L,CHILD_badval_isnan) ) { PARENT_datap[i]=PARENT_badval; } else,) { PARENT_datap[i] = CHILD_datap[i]; } } while (0);
317             }
318             #line 319 "lib/PDL/Slices-pp-_clump_int.c"
319             }
320 13           } break;
321 0           case PDL_UL: {
322 0 0         PDL_DECLARE_PARAMS__clump_int_1(PDL_ULong,K)
    0          
    0          
    0          
    0          
    0          
323             {
324             #line 1407 "lib/PDL/Slices.pd"
325             PDL_Indx i;
326             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
327             do { PDL_IF_BAD(if( PDL_ISBAD2(CHILD_datap[i],CHILD_badval,K,CHILD_badval_isnan) ) { PARENT_datap[i]=PARENT_badval; } else,) { PARENT_datap[i] = CHILD_datap[i]; } } while (0);
328             }
329             #line 330 "lib/PDL/Slices-pp-_clump_int.c"
330             }
331 0           } break;
332 0           case PDL_IND: {
333 0 0         PDL_DECLARE_PARAMS__clump_int_1(PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
334             {
335             #line 1407 "lib/PDL/Slices.pd"
336             PDL_Indx i;
337             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
338             do { PDL_IF_BAD(if( PDL_ISBAD2(CHILD_datap[i],CHILD_badval,N,CHILD_badval_isnan) ) { PARENT_datap[i]=PARENT_badval; } else,) { PARENT_datap[i] = CHILD_datap[i]; } } while (0);
339             }
340             #line 341 "lib/PDL/Slices-pp-_clump_int.c"
341             }
342 0           } break;
343 0           case PDL_ULL: {
344 0 0         PDL_DECLARE_PARAMS__clump_int_1(PDL_ULongLong,P)
    0          
    0          
    0          
    0          
    0          
345             {
346             #line 1407 "lib/PDL/Slices.pd"
347             PDL_Indx i;
348             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
349             do { PDL_IF_BAD(if( PDL_ISBAD2(CHILD_datap[i],CHILD_badval,P,CHILD_badval_isnan) ) { PARENT_datap[i]=PARENT_badval; } else,) { PARENT_datap[i] = CHILD_datap[i]; } } while (0);
350             }
351             #line 352 "lib/PDL/Slices-pp-_clump_int.c"
352             }
353 0           } break;
354 0           case PDL_LL: {
355 0 0         PDL_DECLARE_PARAMS__clump_int_1(PDL_LongLong,Q)
    0          
    0          
    0          
    0          
    0          
356             {
357             #line 1407 "lib/PDL/Slices.pd"
358             PDL_Indx i;
359             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
360             do { PDL_IF_BAD(if( PDL_ISBAD2(CHILD_datap[i],CHILD_badval,Q,CHILD_badval_isnan) ) { PARENT_datap[i]=PARENT_badval; } else,) { PARENT_datap[i] = CHILD_datap[i]; } } while (0);
361             }
362             #line 363 "lib/PDL/Slices-pp-_clump_int.c"
363             }
364 0           } break;
365 0           case PDL_F: {
366 0 0         PDL_DECLARE_PARAMS__clump_int_1(PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
367             {
368             #line 1407 "lib/PDL/Slices.pd"
369             PDL_Indx i;
370             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
371             do { PDL_IF_BAD(if( PDL_ISBAD2(CHILD_datap[i],CHILD_badval,F,CHILD_badval_isnan) ) { PARENT_datap[i]=PARENT_badval; } else,) { PARENT_datap[i] = CHILD_datap[i]; } } while (0);
372             }
373             #line 374 "lib/PDL/Slices-pp-_clump_int.c"
374             }
375 0           } break;
376 192           case PDL_D: {
377 192 50         PDL_DECLARE_PARAMS__clump_int_1(PDL_Double,D)
    100          
    50          
    50          
    100          
    50          
378             {
379             #line 1407 "lib/PDL/Slices.pd"
380             PDL_Indx i;
381             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
382             do { PDL_IF_BAD(if( PDL_ISBAD2(CHILD_datap[i],CHILD_badval,D,CHILD_badval_isnan) ) { PARENT_datap[i]=PARENT_badval; } else,) { PARENT_datap[i] = CHILD_datap[i]; } } while (0);
383             }
384             #line 385 "lib/PDL/Slices-pp-_clump_int.c"
385             }
386 192           } break;
387 0           case PDL_LD: {
388 0 0         PDL_DECLARE_PARAMS__clump_int_1(PDL_LDouble,E)
    0          
    0          
    0          
    0          
    0          
389             {
390             #line 1407 "lib/PDL/Slices.pd"
391             PDL_Indx i;
392             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
393             do { PDL_IF_BAD(if( PDL_ISBAD2(CHILD_datap[i],CHILD_badval,E,CHILD_badval_isnan) ) { PARENT_datap[i]=PARENT_badval; } else,) { PARENT_datap[i] = CHILD_datap[i]; } } while (0);
394             }
395             #line 396 "lib/PDL/Slices-pp-_clump_int.c"
396             }
397 0           } break;
398 0           case PDL_CF: {
399 0 0         PDL_DECLARE_PARAMS__clump_int_1(PDL_CFloat,G)
    0          
    0          
    0          
    0          
    0          
400             {
401             #line 1407 "lib/PDL/Slices.pd"
402             PDL_Indx i;
403             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
404             do { PDL_IF_BAD(if( PDL_ISBAD2(CHILD_datap[i],CHILD_badval,G,CHILD_badval_isnan) ) { PARENT_datap[i]=PARENT_badval; } else,) { PARENT_datap[i] = CHILD_datap[i]; } } while (0);
405             }
406             #line 407 "lib/PDL/Slices-pp-_clump_int.c"
407             }
408 0           } break;
409 1           case PDL_CD: {
410 1 50         PDL_DECLARE_PARAMS__clump_int_1(PDL_CDouble,C)
    50          
    50          
    50          
    50          
    50          
411             {
412             #line 1407 "lib/PDL/Slices.pd"
413             PDL_Indx i;
414             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
415             do { PDL_IF_BAD(if( PDL_ISBAD2(CHILD_datap[i],CHILD_badval,C,CHILD_badval_isnan) ) { PARENT_datap[i]=PARENT_badval; } else,) { PARENT_datap[i] = CHILD_datap[i]; } } while (0);
416             }
417             #line 418 "lib/PDL/Slices-pp-_clump_int.c"
418             }
419 1           } break;
420 0           case PDL_CLD: {
421 0 0         PDL_DECLARE_PARAMS__clump_int_1(PDL_CLDouble,H)
    0          
    0          
    0          
    0          
    0          
422             {
423             #line 1407 "lib/PDL/Slices.pd"
424             PDL_Indx i;
425             for(i=0; i<__privtrans->pdls[1]->nvals; i++) {
426             do { PDL_IF_BAD(if( PDL_ISBAD2(CHILD_datap[i],CHILD_badval,H,CHILD_badval_isnan) ) { PARENT_datap[i]=PARENT_badval; } else,) { PARENT_datap[i] = CHILD_datap[i]; } } while (0);
427             }
428             #line 429 "lib/PDL/Slices-pp-_clump_int.c"
429             }
430 0           } break;
431 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in _clump_int: unhandled datatype(%d), only handles (ABSULKNPQFDEGCH)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
432             }
433             #undef PDL_IF_BAD
434 217           return PDL_err;
435             }
436              
437             static pdl_datatypes pdl__clump_int_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 };
438             static PDL_Indx pdl__clump_int_vtable_realdims[] = { 0, 0 };
439             static char *pdl__clump_int_vtable_parnames[] = { "PARENT","CHILD" };
440             static short pdl__clump_int_vtable_parflags[] = {
441             PDL_PARAM_ISPHYS,
442             PDL_PARAM_ISCREAT|PDL_PARAM_ISCREATEALWAYS|PDL_PARAM_ISOUT|PDL_PARAM_ISPHYS|PDL_PARAM_ISWRITE
443             };
444             static pdl_datatypes pdl__clump_int_vtable_partypes[] = { -1, -1 };
445             static PDL_Indx pdl__clump_int_vtable_realdims_starts[] = { 0, 0 };
446             static PDL_Indx pdl__clump_int_vtable_realdims_ind_ids[] = { 0 };
447             static char *pdl__clump_int_vtable_indnames[] = { "" };
448             pdl_transvtable pdl__clump_int_vtable = {
449             0, PDL_ITRANS_TWOWAY|PDL_ITRANS_DO_DATAFLOW_ANY, pdl__clump_int_vtable_gentypes, 1, 2, NULL /*CORE21*/,
450             pdl__clump_int_vtable_realdims, pdl__clump_int_vtable_parnames,
451             pdl__clump_int_vtable_parflags, pdl__clump_int_vtable_partypes,
452             pdl__clump_int_vtable_realdims_starts, pdl__clump_int_vtable_realdims_ind_ids, 0,
453             0, pdl__clump_int_vtable_indnames,
454             pdl__clump_int_redodims, pdl__clump_int_readdata, pdl__clump_int_writebackdata,
455             NULL,
456             sizeof(pdl_params__clump_int),"PDL::Slices::_clump_int"
457             };
458              
459              
460 11906           pdl_error pdl_run__clump_int(pdl *PARENT,pdl *CHILD,PDL_Indx n) {
461 11906           pdl_error PDL_err = {0, NULL, 0};
462 11906 50         if (!PDL) return (pdl_error){PDL_EFATAL, "PDL core struct is NULL, can't continue",0};
463 11906           pdl_trans *__privtrans = PDL->create_trans(&pdl__clump_int_vtable);
464 11906 50         if (!__privtrans) return PDL->make_error_simple(PDL_EFATAL, "Couldn't create trans");
465 11906           pdl_params__clump_int *__params = __privtrans->params;
466 11906           __privtrans->pdls[0] = PARENT;
467 11906           __privtrans->pdls[1] = CHILD;
468 11906 50         PDL_RETERROR(PDL_err, PDL->type_coerce(__privtrans));
469 11906           (__params->n) = (n); /* CType.get_copy */
470 11906 50         PDL_RETERROR(PDL_err, PDL->make_trans_mutual(__privtrans));
471 11906           return PDL_err;
472             }