File Coverage

lib/PDL/Slices-pp-rld.c
Criterion Covered Total %
statement 43 109 39.4
branch 48 552 8.7
condition n/a
subroutine n/a
pod n/a
total 91 661 13.7


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_rld {
25             #line 26 "lib/PDL/Slices-pp-rld.c"
26             IV sumover_max;
27             } pdl_params_rld;
28              
29              
30             #line 1857 "lib/PDL/PP.pm"
31             pdl_error pdl_rld_redodims(pdl_trans *__privtrans) {
32             pdl_error PDL_err = {0, NULL, 0};
33             #line 34 "lib/PDL/Slices-pp-rld.c"
34 5           pdl_params_rld *__params = __privtrans->params; (void)__params;
35 5           __privtrans->ind_sizes[0] = __params->sumover_max;
36 5 50         PDL_RETERROR(PDL_err, PDL->redodims_default(__privtrans));
37 5           return PDL_err;
38             }
39              
40              
41             #line 1857 "lib/PDL/PP.pm"
42             pdl_error pdl_rld_readdata(pdl_trans *__privtrans) {
43             pdl_error PDL_err = {0, NULL, 0};
44             #line 45 "lib/PDL/Slices-pp-rld.c"
45 5           pdl_params_rld *__params = __privtrans->params; (void)__params;
46 5           register PDL_Indx __m_size = __privtrans->ind_sizes[0];
47 5           register PDL_Indx __n_size = __privtrans->ind_sizes[1];
48 5 50         if (!__privtrans->broadcast.incs) return PDL->make_error(PDL_EUSERERROR, "Error in rld:" "broadcast.incs NULL");
49             /* broadcastloop declarations */
50             int __brcloopval;
51             register PDL_Indx __tind0,__tind1; /* counters along dim */
52 5           register PDL_Indx __tnpdls = __privtrans->broadcast.npdls;
53             /* dims here are how many steps along those dims */
54 5           register PDL_Indx __tinc0_a = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,0);
55 5           register PDL_Indx __tinc0_b = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,0);
56 5           register PDL_Indx __tinc0_c = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,2,0);
57 5           register PDL_Indx __tinc1_a = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,1);
58 5           register PDL_Indx __tinc1_b = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,1);
59 5           register PDL_Indx __tinc1_c = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,2,1);
60             #define PDL_BROADCASTLOOP_START_rld_readdata PDL_BROADCASTLOOP_START( \
61             readdata, \
62             __privtrans->broadcast, \
63             __privtrans->vtable, \
64             a_datap += __offsp[0]; \
65             b_datap += __offsp[1]; \
66             c_datap += __offsp[2]; \
67             , \
68             ( ,a_datap += __tinc1_a - __tinc0_a * __tdims0 \
69             ,b_datap += __tinc1_b - __tinc0_b * __tdims0 \
70             ,c_datap += __tinc1_c - __tinc0_c * __tdims0 \
71             ), \
72             ( ,a_datap += __tinc0_a \
73             ,b_datap += __tinc0_b \
74             ,c_datap += __tinc0_c \
75             ) \
76             )
77             #define PDL_BROADCASTLOOP_END_rld_readdata PDL_BROADCASTLOOP_END( \
78             __privtrans->broadcast, \
79             a_datap -= __tinc1_a * __tdims1 + __offsp[0]; \
80             b_datap -= __tinc1_b * __tdims1 + __offsp[1]; \
81             c_datap -= __tinc1_c * __tdims1 + __offsp[2]; \
82             )
83 5           register PDL_Indx __inc_a_n = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,0,0)]; (void)__inc_a_n;
84 5           register PDL_Indx __inc_b_n = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,1,0)]; (void)__inc_b_n;
85 5           register PDL_Indx __inc_c_m = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,2,0)]; (void)__inc_c_m;
86             #ifndef PDL_DECLARE_PARAMS_rld_1
87             #define PDL_DECLARE_PARAMS_rld_1(PDL_TYPE_OP,PDL_PPSYM_OP,PDL_TYPE_PARAM_a,PDL_PPSYM_PARAM_a) \
88             PDL_DECLARE_PARAMETER(PDL_TYPE_PARAM_a, a, (__privtrans->pdls[0]), 1, PDL_PPSYM_PARAM_a) \
89             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, b, (__privtrans->pdls[1]), 1, PDL_PPSYM_OP) \
90             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, c, (__privtrans->pdls[2]), 1, PDL_PPSYM_OP)
91             #endif
92             #define PDL_IF_BAD(t,f) f
93 5           switch (__privtrans->__datatype) { /* Start generic switch */
94 0           case PDL_SB: {
95 0 0         PDL_DECLARE_PARAMS_rld_1(PDL_SByte,A,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
96 0 0         PDL_BROADCASTLOOP_START_rld_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
97             #line 1040 "lib/PDL/Slices.pd"
98             PDL_Indx j=0;
99             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
100             #line 1042 "lib/PDL/Slices.pd"
101             PDL_Indx jlim = j + (a_datap)[0+(__inc_a_n*(n))];
102             PDL_SByte bv = (b_datap)[0+(__inc_b_n*(n))];
103             {/* Open m=j:jlim */ PDL_EXPAND2(register PDL_Indx m=PDLMAX((j),0), __m_stop=PDLMIN(jlim, (__m_size))); for(; m<__m_stop; m+=1) { (c_datap)[0+(__inc_c_m*(m))] = bv; }} /* Close m=j:jlim */
104             #line 1045 "lib/PDL/Slices.pd"
105             j = jlim;
106             }} /* Close n */
107             #line 108 "lib/PDL/Slices-pp-rld.c"
108 0 0         }PDL_BROADCASTLOOP_END_rld_readdata
    0          
109 0           } break;
110 0           case PDL_B: {
111 0 0         PDL_DECLARE_PARAMS_rld_1(PDL_Byte,B,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
112 0 0         PDL_BROADCASTLOOP_START_rld_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
113             #line 1040 "lib/PDL/Slices.pd"
114             PDL_Indx j=0;
115             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
116             #line 1042 "lib/PDL/Slices.pd"
117             PDL_Indx jlim = j + (a_datap)[0+(__inc_a_n*(n))];
118             PDL_Byte bv = (b_datap)[0+(__inc_b_n*(n))];
119             {/* Open m=j:jlim */ PDL_EXPAND2(register PDL_Indx m=PDLMAX((j),0), __m_stop=PDLMIN(jlim, (__m_size))); for(; m<__m_stop; m+=1) { (c_datap)[0+(__inc_c_m*(m))] = bv; }} /* Close m=j:jlim */
120             #line 1045 "lib/PDL/Slices.pd"
121             j = jlim;
122             }} /* Close n */
123             #line 124 "lib/PDL/Slices-pp-rld.c"
124 0 0         }PDL_BROADCASTLOOP_END_rld_readdata
    0          
125 0           } break;
126 1           case PDL_S: {
127 1 50         PDL_DECLARE_PARAMS_rld_1(PDL_Short,S,PDL_Indx,N)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
128 4 50         PDL_BROADCASTLOOP_START_rld_readdata {
    50          
    50          
    50          
    50          
    100          
    100          
129             #line 1040 "lib/PDL/Slices.pd"
130             PDL_Indx j=0;
131             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
132             #line 1042 "lib/PDL/Slices.pd"
133             PDL_Indx jlim = j + (a_datap)[0+(__inc_a_n*(n))];
134             PDL_Short bv = (b_datap)[0+(__inc_b_n*(n))];
135             {/* Open m=j:jlim */ PDL_EXPAND2(register PDL_Indx m=PDLMAX((j),0), __m_stop=PDLMIN(jlim, (__m_size))); for(; m<__m_stop; m+=1) { (c_datap)[0+(__inc_c_m*(m))] = bv; }} /* Close m=j:jlim */
136             #line 1045 "lib/PDL/Slices.pd"
137             j = jlim;
138             }} /* Close n */
139             #line 140 "lib/PDL/Slices-pp-rld.c"
140 1 50         }PDL_BROADCASTLOOP_END_rld_readdata
    50          
141 1           } break;
142 0           case PDL_US: {
143 0 0         PDL_DECLARE_PARAMS_rld_1(PDL_Ushort,U,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
144 0 0         PDL_BROADCASTLOOP_START_rld_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
145             #line 1040 "lib/PDL/Slices.pd"
146             PDL_Indx j=0;
147             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
148             #line 1042 "lib/PDL/Slices.pd"
149             PDL_Indx jlim = j + (a_datap)[0+(__inc_a_n*(n))];
150             PDL_Ushort bv = (b_datap)[0+(__inc_b_n*(n))];
151             {/* Open m=j:jlim */ PDL_EXPAND2(register PDL_Indx m=PDLMAX((j),0), __m_stop=PDLMIN(jlim, (__m_size))); for(; m<__m_stop; m+=1) { (c_datap)[0+(__inc_c_m*(m))] = bv; }} /* Close m=j:jlim */
152             #line 1045 "lib/PDL/Slices.pd"
153             j = jlim;
154             }} /* Close n */
155             #line 156 "lib/PDL/Slices-pp-rld.c"
156 0 0         }PDL_BROADCASTLOOP_END_rld_readdata
    0          
157 0           } break;
158 0           case PDL_L: {
159 0 0         PDL_DECLARE_PARAMS_rld_1(PDL_Long,L,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
160 0 0         PDL_BROADCASTLOOP_START_rld_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
161             #line 1040 "lib/PDL/Slices.pd"
162             PDL_Indx j=0;
163             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
164             #line 1042 "lib/PDL/Slices.pd"
165             PDL_Indx jlim = j + (a_datap)[0+(__inc_a_n*(n))];
166             PDL_Long bv = (b_datap)[0+(__inc_b_n*(n))];
167             {/* Open m=j:jlim */ PDL_EXPAND2(register PDL_Indx m=PDLMAX((j),0), __m_stop=PDLMIN(jlim, (__m_size))); for(; m<__m_stop; m+=1) { (c_datap)[0+(__inc_c_m*(m))] = bv; }} /* Close m=j:jlim */
168             #line 1045 "lib/PDL/Slices.pd"
169             j = jlim;
170             }} /* Close n */
171             #line 172 "lib/PDL/Slices-pp-rld.c"
172 0 0         }PDL_BROADCASTLOOP_END_rld_readdata
    0          
173 0           } break;
174 0           case PDL_UL: {
175 0 0         PDL_DECLARE_PARAMS_rld_1(PDL_ULong,K,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
176 0 0         PDL_BROADCASTLOOP_START_rld_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
177             #line 1040 "lib/PDL/Slices.pd"
178             PDL_Indx j=0;
179             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
180             #line 1042 "lib/PDL/Slices.pd"
181             PDL_Indx jlim = j + (a_datap)[0+(__inc_a_n*(n))];
182             PDL_ULong bv = (b_datap)[0+(__inc_b_n*(n))];
183             {/* Open m=j:jlim */ PDL_EXPAND2(register PDL_Indx m=PDLMAX((j),0), __m_stop=PDLMIN(jlim, (__m_size))); for(; m<__m_stop; m+=1) { (c_datap)[0+(__inc_c_m*(m))] = bv; }} /* Close m=j:jlim */
184             #line 1045 "lib/PDL/Slices.pd"
185             j = jlim;
186             }} /* Close n */
187             #line 188 "lib/PDL/Slices-pp-rld.c"
188 0 0         }PDL_BROADCASTLOOP_END_rld_readdata
    0          
189 0           } break;
190 0           case PDL_IND: {
191 0 0         PDL_DECLARE_PARAMS_rld_1(PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
192 0 0         PDL_BROADCASTLOOP_START_rld_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
193             #line 1040 "lib/PDL/Slices.pd"
194             PDL_Indx j=0;
195             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
196             #line 1042 "lib/PDL/Slices.pd"
197             PDL_Indx jlim = j + (a_datap)[0+(__inc_a_n*(n))];
198             PDL_Indx bv = (b_datap)[0+(__inc_b_n*(n))];
199             {/* Open m=j:jlim */ PDL_EXPAND2(register PDL_Indx m=PDLMAX((j),0), __m_stop=PDLMIN(jlim, (__m_size))); for(; m<__m_stop; m+=1) { (c_datap)[0+(__inc_c_m*(m))] = bv; }} /* Close m=j:jlim */
200             #line 1045 "lib/PDL/Slices.pd"
201             j = jlim;
202             }} /* Close n */
203             #line 204 "lib/PDL/Slices-pp-rld.c"
204 0 0         }PDL_BROADCASTLOOP_END_rld_readdata
    0          
205 0           } break;
206 0           case PDL_ULL: {
207 0 0         PDL_DECLARE_PARAMS_rld_1(PDL_ULongLong,P,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
208 0 0         PDL_BROADCASTLOOP_START_rld_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
209             #line 1040 "lib/PDL/Slices.pd"
210             PDL_Indx j=0;
211             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
212             #line 1042 "lib/PDL/Slices.pd"
213             PDL_Indx jlim = j + (a_datap)[0+(__inc_a_n*(n))];
214             PDL_ULongLong bv = (b_datap)[0+(__inc_b_n*(n))];
215             {/* Open m=j:jlim */ PDL_EXPAND2(register PDL_Indx m=PDLMAX((j),0), __m_stop=PDLMIN(jlim, (__m_size))); for(; m<__m_stop; m+=1) { (c_datap)[0+(__inc_c_m*(m))] = bv; }} /* Close m=j:jlim */
216             #line 1045 "lib/PDL/Slices.pd"
217             j = jlim;
218             }} /* Close n */
219             #line 220 "lib/PDL/Slices-pp-rld.c"
220 0 0         }PDL_BROADCASTLOOP_END_rld_readdata
    0          
221 0           } break;
222 0           case PDL_LL: {
223 0 0         PDL_DECLARE_PARAMS_rld_1(PDL_LongLong,Q,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
224 0 0         PDL_BROADCASTLOOP_START_rld_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
225             #line 1040 "lib/PDL/Slices.pd"
226             PDL_Indx j=0;
227             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
228             #line 1042 "lib/PDL/Slices.pd"
229             PDL_Indx jlim = j + (a_datap)[0+(__inc_a_n*(n))];
230             PDL_LongLong bv = (b_datap)[0+(__inc_b_n*(n))];
231             {/* Open m=j:jlim */ PDL_EXPAND2(register PDL_Indx m=PDLMAX((j),0), __m_stop=PDLMIN(jlim, (__m_size))); for(; m<__m_stop; m+=1) { (c_datap)[0+(__inc_c_m*(m))] = bv; }} /* Close m=j:jlim */
232             #line 1045 "lib/PDL/Slices.pd"
233             j = jlim;
234             }} /* Close n */
235             #line 236 "lib/PDL/Slices-pp-rld.c"
236 0 0         }PDL_BROADCASTLOOP_END_rld_readdata
    0          
237 0           } break;
238 0           case PDL_F: {
239 0 0         PDL_DECLARE_PARAMS_rld_1(PDL_Float,F,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
240 0 0         PDL_BROADCASTLOOP_START_rld_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
241             #line 1040 "lib/PDL/Slices.pd"
242             PDL_Indx j=0;
243             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
244             #line 1042 "lib/PDL/Slices.pd"
245             PDL_Indx jlim = j + (a_datap)[0+(__inc_a_n*(n))];
246             PDL_Float bv = (b_datap)[0+(__inc_b_n*(n))];
247             {/* Open m=j:jlim */ PDL_EXPAND2(register PDL_Indx m=PDLMAX((j),0), __m_stop=PDLMIN(jlim, (__m_size))); for(; m<__m_stop; m+=1) { (c_datap)[0+(__inc_c_m*(m))] = bv; }} /* Close m=j:jlim */
248             #line 1045 "lib/PDL/Slices.pd"
249             j = jlim;
250             }} /* Close n */
251             #line 252 "lib/PDL/Slices-pp-rld.c"
252 0 0         }PDL_BROADCASTLOOP_END_rld_readdata
    0          
253 0           } break;
254 4           case PDL_D: {
255 4 100         PDL_DECLARE_PARAMS_rld_1(PDL_Double,D,PDL_Indx,N)
    50          
    50          
    100          
    50          
    50          
    50          
    50          
    50          
256 24 50         PDL_BROADCASTLOOP_START_rld_readdata {
    50          
    50          
    50          
    50          
    100          
    100          
257             #line 1040 "lib/PDL/Slices.pd"
258             PDL_Indx j=0;
259             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
260             #line 1042 "lib/PDL/Slices.pd"
261             PDL_Indx jlim = j + (a_datap)[0+(__inc_a_n*(n))];
262             PDL_Double bv = (b_datap)[0+(__inc_b_n*(n))];
263             {/* Open m=j:jlim */ PDL_EXPAND2(register PDL_Indx m=PDLMAX((j),0), __m_stop=PDLMIN(jlim, (__m_size))); for(; m<__m_stop; m+=1) { (c_datap)[0+(__inc_c_m*(m))] = bv; }} /* Close m=j:jlim */
264             #line 1045 "lib/PDL/Slices.pd"
265             j = jlim;
266             }} /* Close n */
267             #line 268 "lib/PDL/Slices-pp-rld.c"
268 4 50         }PDL_BROADCASTLOOP_END_rld_readdata
    50          
269 4           } break;
270 0           case PDL_LD: {
271 0 0         PDL_DECLARE_PARAMS_rld_1(PDL_LDouble,E,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
272 0 0         PDL_BROADCASTLOOP_START_rld_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
273             #line 1040 "lib/PDL/Slices.pd"
274             PDL_Indx j=0;
275             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
276             #line 1042 "lib/PDL/Slices.pd"
277             PDL_Indx jlim = j + (a_datap)[0+(__inc_a_n*(n))];
278             PDL_LDouble bv = (b_datap)[0+(__inc_b_n*(n))];
279             {/* Open m=j:jlim */ PDL_EXPAND2(register PDL_Indx m=PDLMAX((j),0), __m_stop=PDLMIN(jlim, (__m_size))); for(; m<__m_stop; m+=1) { (c_datap)[0+(__inc_c_m*(m))] = bv; }} /* Close m=j:jlim */
280             #line 1045 "lib/PDL/Slices.pd"
281             j = jlim;
282             }} /* Close n */
283             #line 284 "lib/PDL/Slices-pp-rld.c"
284 0 0         }PDL_BROADCASTLOOP_END_rld_readdata
    0          
285 0           } break;
286 0           case PDL_CF: {
287 0 0         PDL_DECLARE_PARAMS_rld_1(PDL_CFloat,G,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
288 0 0         PDL_BROADCASTLOOP_START_rld_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
289             #line 1040 "lib/PDL/Slices.pd"
290             PDL_Indx j=0;
291             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
292             #line 1042 "lib/PDL/Slices.pd"
293             PDL_Indx jlim = j + (a_datap)[0+(__inc_a_n*(n))];
294             PDL_CFloat bv = (b_datap)[0+(__inc_b_n*(n))];
295             {/* Open m=j:jlim */ PDL_EXPAND2(register PDL_Indx m=PDLMAX((j),0), __m_stop=PDLMIN(jlim, (__m_size))); for(; m<__m_stop; m+=1) { (c_datap)[0+(__inc_c_m*(m))] = bv; }} /* Close m=j:jlim */
296             #line 1045 "lib/PDL/Slices.pd"
297             j = jlim;
298             }} /* Close n */
299             #line 300 "lib/PDL/Slices-pp-rld.c"
300 0 0         }PDL_BROADCASTLOOP_END_rld_readdata
    0          
301 0           } break;
302 0           case PDL_CD: {
303 0 0         PDL_DECLARE_PARAMS_rld_1(PDL_CDouble,C,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
304 0 0         PDL_BROADCASTLOOP_START_rld_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
305             #line 1040 "lib/PDL/Slices.pd"
306             PDL_Indx j=0;
307             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
308             #line 1042 "lib/PDL/Slices.pd"
309             PDL_Indx jlim = j + (a_datap)[0+(__inc_a_n*(n))];
310             PDL_CDouble bv = (b_datap)[0+(__inc_b_n*(n))];
311             {/* Open m=j:jlim */ PDL_EXPAND2(register PDL_Indx m=PDLMAX((j),0), __m_stop=PDLMIN(jlim, (__m_size))); for(; m<__m_stop; m+=1) { (c_datap)[0+(__inc_c_m*(m))] = bv; }} /* Close m=j:jlim */
312             #line 1045 "lib/PDL/Slices.pd"
313             j = jlim;
314             }} /* Close n */
315             #line 316 "lib/PDL/Slices-pp-rld.c"
316 0 0         }PDL_BROADCASTLOOP_END_rld_readdata
    0          
317 0           } break;
318 0           case PDL_CLD: {
319 0 0         PDL_DECLARE_PARAMS_rld_1(PDL_CLDouble,H,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
320 0 0         PDL_BROADCASTLOOP_START_rld_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
321             #line 1040 "lib/PDL/Slices.pd"
322             PDL_Indx j=0;
323             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
324             #line 1042 "lib/PDL/Slices.pd"
325             PDL_Indx jlim = j + (a_datap)[0+(__inc_a_n*(n))];
326             PDL_CLDouble bv = (b_datap)[0+(__inc_b_n*(n))];
327             {/* Open m=j:jlim */ PDL_EXPAND2(register PDL_Indx m=PDLMAX((j),0), __m_stop=PDLMIN(jlim, (__m_size))); for(; m<__m_stop; m+=1) { (c_datap)[0+(__inc_c_m*(m))] = bv; }} /* Close m=j:jlim */
328             #line 1045 "lib/PDL/Slices.pd"
329             j = jlim;
330             }} /* Close n */
331             #line 332 "lib/PDL/Slices-pp-rld.c"
332 0 0         }PDL_BROADCASTLOOP_END_rld_readdata
    0          
333 0           } break;
334 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in rld: unhandled datatype(%d), only handles (ABSULKNPQFDEGCH)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
335             }
336             #undef PDL_IF_BAD
337 5           return PDL_err;
338             }
339              
340             static pdl_datatypes pdl_rld_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 };
341             static PDL_Indx pdl_rld_vtable_realdims[] = { 1, 1, 1 };
342             static char *pdl_rld_vtable_parnames[] = { "a","b","c" };
343             static short pdl_rld_vtable_parflags[] = {
344             PDL_PARAM_ISTYPED,
345             0,
346             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISWRITE
347             };
348             static pdl_datatypes pdl_rld_vtable_partypes[] = { PDL_IND, -1, -1 };
349             static PDL_Indx pdl_rld_vtable_realdims_starts[] = { 0, 1, 2 };
350             static PDL_Indx pdl_rld_vtable_realdims_ind_ids[] = { 1, 1, 0 };
351             static char *pdl_rld_vtable_indnames[] = { "m","n" };
352             pdl_transvtable pdl_rld_vtable = {
353             PDL_TRANS_DO_BROADCAST, 0, pdl_rld_vtable_gentypes, 2, 3, NULL /*CORE21*/,
354             pdl_rld_vtable_realdims, pdl_rld_vtable_parnames,
355             pdl_rld_vtable_parflags, pdl_rld_vtable_partypes,
356             pdl_rld_vtable_realdims_starts, pdl_rld_vtable_realdims_ind_ids, 3,
357             2, pdl_rld_vtable_indnames,
358             pdl_rld_redodims, pdl_rld_readdata, NULL,
359             NULL,
360             sizeof(pdl_params_rld),"PDL::Slices::rld"
361             };
362              
363              
364 5           pdl_error pdl_run_rld(pdl *a,pdl *b,pdl *c,IV sumover_max) {
365 5           pdl_error PDL_err = {0, NULL, 0};
366 5 50         if (!PDL) return (pdl_error){PDL_EFATAL, "PDL core struct is NULL, can't continue",0};
367 5           pdl_trans *__privtrans = PDL->create_trans(&pdl_rld_vtable);
368 5 50         if (!__privtrans) return PDL->make_error_simple(PDL_EFATAL, "Couldn't create trans");
369 5           pdl_params_rld *__params = __privtrans->params;
370 5           __privtrans->pdls[0] = a;
371 5           __privtrans->pdls[1] = b;
372 5           __privtrans->pdls[2] = c;
373 5 50         PDL_RETERROR(PDL_err, PDL->type_coerce(__privtrans));
374 5           (__params->sumover_max) = (sumover_max); /* CType.get_copy */
375 5 50         PDL_RETERROR(PDL_err, PDL->make_trans_mutual(__privtrans));
376 5           return PDL_err;
377             }