File Coverage

lib/PDL/Slices-pp-rldseq.c
Criterion Covered Total %
statement 38 94 40.4
branch 26 444 5.8
condition n/a
subroutine n/a
pod n/a
total 64 538 11.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/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_rldseq {
25             #line 26 "lib/PDL/Slices-pp-rldseq.c"
26             IV sumover_max;
27             } pdl_params_rldseq;
28              
29              
30             #line 1857 "lib/PDL/PP.pm"
31             pdl_error pdl_rldseq_redodims(pdl_trans *__privtrans) {
32             pdl_error PDL_err = {0, NULL, 0};
33             #line 34 "lib/PDL/Slices-pp-rldseq.c"
34 2           pdl_params_rldseq *__params = __privtrans->params; (void)__params;
35 2           __privtrans->ind_sizes[0] = __params->sumover_max;
36 2 50         PDL_RETERROR(PDL_err, PDL->redodims_default(__privtrans));
37 2           return PDL_err;
38             }
39              
40              
41             #line 1857 "lib/PDL/PP.pm"
42             pdl_error pdl_rldseq_readdata(pdl_trans *__privtrans) {
43             pdl_error PDL_err = {0, NULL, 0};
44             #line 45 "lib/PDL/Slices-pp-rldseq.c"
45 2           pdl_params_rldseq *__params = __privtrans->params; (void)__params;
46 2           register PDL_Indx __M_size = __privtrans->ind_sizes[0];
47 2           register PDL_Indx __N_size = __privtrans->ind_sizes[1];
48 2 50         if (!__privtrans->broadcast.incs) return PDL->make_error(PDL_EUSERERROR, "Error in rldseq:" "broadcast.incs NULL");
49             /* broadcastloop declarations */
50             int __brcloopval;
51             register PDL_Indx __tind0,__tind1; /* counters along dim */
52 2           register PDL_Indx __tnpdls = __privtrans->broadcast.npdls;
53             /* dims here are how many steps along those dims */
54 2           register PDL_Indx __tinc0_a = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,0);
55 2           register PDL_Indx __tinc0_b = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,0);
56 2           register PDL_Indx __tinc0_c = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,2,0);
57 2           register PDL_Indx __tinc1_a = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,1);
58 2           register PDL_Indx __tinc1_b = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,1);
59 2           register PDL_Indx __tinc1_c = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,2,1);
60             #define PDL_BROADCASTLOOP_START_rldseq_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_rldseq_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 2           register PDL_Indx __inc_a_N = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,0,0)]; (void)__inc_a_N;
84 2           register PDL_Indx __inc_b_N = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,1,0)]; (void)__inc_b_N;
85 2           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_rldseq_1
87             #define PDL_DECLARE_PARAMS_rldseq_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 2           switch (__privtrans->__datatype) { /* Start generic switch */
94 0           case PDL_SB: {
95 0 0         PDL_DECLARE_PARAMS_rldseq_1(PDL_SByte,A,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
96 0 0         PDL_BROADCASTLOOP_START_rldseq_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
97             #line 1271 "lib/PDL/Slices.pd"
98             PDL_Indx mi=0;
99             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
100             #line 1273 "lib/PDL/Slices.pd"
101             PDL_Indx milim = mi + (a_datap)[0+(__inc_a_N*(N))], li = 0;
102             {/* Open M=mi:milim */ PDL_EXPAND2(register PDL_Indx M=PDLMAX((mi),0), __M_stop=PDLMIN(milim, (__M_size))); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))] = (b_datap)[0+(__inc_b_N*(N))] + li++; }} /* Close M=mi:milim */
103             #line 1275 "lib/PDL/Slices.pd"
104             mi = milim;
105             }} /* Close N */
106             #line 107 "lib/PDL/Slices-pp-rldseq.c"
107 0 0         }PDL_BROADCASTLOOP_END_rldseq_readdata
    0          
108 0           } break;
109 0           case PDL_B: {
110 0 0         PDL_DECLARE_PARAMS_rldseq_1(PDL_Byte,B,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
111 0 0         PDL_BROADCASTLOOP_START_rldseq_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
112             #line 1271 "lib/PDL/Slices.pd"
113             PDL_Indx mi=0;
114             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
115             #line 1273 "lib/PDL/Slices.pd"
116             PDL_Indx milim = mi + (a_datap)[0+(__inc_a_N*(N))], li = 0;
117             {/* Open M=mi:milim */ PDL_EXPAND2(register PDL_Indx M=PDLMAX((mi),0), __M_stop=PDLMIN(milim, (__M_size))); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))] = (b_datap)[0+(__inc_b_N*(N))] + li++; }} /* Close M=mi:milim */
118             #line 1275 "lib/PDL/Slices.pd"
119             mi = milim;
120             }} /* Close N */
121             #line 122 "lib/PDL/Slices-pp-rldseq.c"
122 0 0         }PDL_BROADCASTLOOP_END_rldseq_readdata
    0          
123 0           } break;
124 2           case PDL_S: {
125 2 50         PDL_DECLARE_PARAMS_rldseq_1(PDL_Short,S,PDL_Indx,N)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
126 8 50         PDL_BROADCASTLOOP_START_rldseq_readdata {
    50          
    50          
    50          
    50          
    100          
    100          
127             #line 1271 "lib/PDL/Slices.pd"
128             PDL_Indx mi=0;
129             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
130             #line 1273 "lib/PDL/Slices.pd"
131             PDL_Indx milim = mi + (a_datap)[0+(__inc_a_N*(N))], li = 0;
132             {/* Open M=mi:milim */ PDL_EXPAND2(register PDL_Indx M=PDLMAX((mi),0), __M_stop=PDLMIN(milim, (__M_size))); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))] = (b_datap)[0+(__inc_b_N*(N))] + li++; }} /* Close M=mi:milim */
133             #line 1275 "lib/PDL/Slices.pd"
134             mi = milim;
135             }} /* Close N */
136             #line 137 "lib/PDL/Slices-pp-rldseq.c"
137 2 50         }PDL_BROADCASTLOOP_END_rldseq_readdata
    50          
138 2           } break;
139 0           case PDL_US: {
140 0 0         PDL_DECLARE_PARAMS_rldseq_1(PDL_Ushort,U,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
141 0 0         PDL_BROADCASTLOOP_START_rldseq_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
142             #line 1271 "lib/PDL/Slices.pd"
143             PDL_Indx mi=0;
144             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
145             #line 1273 "lib/PDL/Slices.pd"
146             PDL_Indx milim = mi + (a_datap)[0+(__inc_a_N*(N))], li = 0;
147             {/* Open M=mi:milim */ PDL_EXPAND2(register PDL_Indx M=PDLMAX((mi),0), __M_stop=PDLMIN(milim, (__M_size))); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))] = (b_datap)[0+(__inc_b_N*(N))] + li++; }} /* Close M=mi:milim */
148             #line 1275 "lib/PDL/Slices.pd"
149             mi = milim;
150             }} /* Close N */
151             #line 152 "lib/PDL/Slices-pp-rldseq.c"
152 0 0         }PDL_BROADCASTLOOP_END_rldseq_readdata
    0          
153 0           } break;
154 0           case PDL_L: {
155 0 0         PDL_DECLARE_PARAMS_rldseq_1(PDL_Long,L,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
156 0 0         PDL_BROADCASTLOOP_START_rldseq_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
157             #line 1271 "lib/PDL/Slices.pd"
158             PDL_Indx mi=0;
159             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
160             #line 1273 "lib/PDL/Slices.pd"
161             PDL_Indx milim = mi + (a_datap)[0+(__inc_a_N*(N))], li = 0;
162             {/* Open M=mi:milim */ PDL_EXPAND2(register PDL_Indx M=PDLMAX((mi),0), __M_stop=PDLMIN(milim, (__M_size))); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))] = (b_datap)[0+(__inc_b_N*(N))] + li++; }} /* Close M=mi:milim */
163             #line 1275 "lib/PDL/Slices.pd"
164             mi = milim;
165             }} /* Close N */
166             #line 167 "lib/PDL/Slices-pp-rldseq.c"
167 0 0         }PDL_BROADCASTLOOP_END_rldseq_readdata
    0          
168 0           } break;
169 0           case PDL_UL: {
170 0 0         PDL_DECLARE_PARAMS_rldseq_1(PDL_ULong,K,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
171 0 0         PDL_BROADCASTLOOP_START_rldseq_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
172             #line 1271 "lib/PDL/Slices.pd"
173             PDL_Indx mi=0;
174             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
175             #line 1273 "lib/PDL/Slices.pd"
176             PDL_Indx milim = mi + (a_datap)[0+(__inc_a_N*(N))], li = 0;
177             {/* Open M=mi:milim */ PDL_EXPAND2(register PDL_Indx M=PDLMAX((mi),0), __M_stop=PDLMIN(milim, (__M_size))); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))] = (b_datap)[0+(__inc_b_N*(N))] + li++; }} /* Close M=mi:milim */
178             #line 1275 "lib/PDL/Slices.pd"
179             mi = milim;
180             }} /* Close N */
181             #line 182 "lib/PDL/Slices-pp-rldseq.c"
182 0 0         }PDL_BROADCASTLOOP_END_rldseq_readdata
    0          
183 0           } break;
184 0           case PDL_IND: {
185 0 0         PDL_DECLARE_PARAMS_rldseq_1(PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
186 0 0         PDL_BROADCASTLOOP_START_rldseq_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
187             #line 1271 "lib/PDL/Slices.pd"
188             PDL_Indx mi=0;
189             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
190             #line 1273 "lib/PDL/Slices.pd"
191             PDL_Indx milim = mi + (a_datap)[0+(__inc_a_N*(N))], li = 0;
192             {/* Open M=mi:milim */ PDL_EXPAND2(register PDL_Indx M=PDLMAX((mi),0), __M_stop=PDLMIN(milim, (__M_size))); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))] = (b_datap)[0+(__inc_b_N*(N))] + li++; }} /* Close M=mi:milim */
193             #line 1275 "lib/PDL/Slices.pd"
194             mi = milim;
195             }} /* Close N */
196             #line 197 "lib/PDL/Slices-pp-rldseq.c"
197 0 0         }PDL_BROADCASTLOOP_END_rldseq_readdata
    0          
198 0           } break;
199 0           case PDL_ULL: {
200 0 0         PDL_DECLARE_PARAMS_rldseq_1(PDL_ULongLong,P,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
201 0 0         PDL_BROADCASTLOOP_START_rldseq_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
202             #line 1271 "lib/PDL/Slices.pd"
203             PDL_Indx mi=0;
204             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
205             #line 1273 "lib/PDL/Slices.pd"
206             PDL_Indx milim = mi + (a_datap)[0+(__inc_a_N*(N))], li = 0;
207             {/* Open M=mi:milim */ PDL_EXPAND2(register PDL_Indx M=PDLMAX((mi),0), __M_stop=PDLMIN(milim, (__M_size))); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))] = (b_datap)[0+(__inc_b_N*(N))] + li++; }} /* Close M=mi:milim */
208             #line 1275 "lib/PDL/Slices.pd"
209             mi = milim;
210             }} /* Close N */
211             #line 212 "lib/PDL/Slices-pp-rldseq.c"
212 0 0         }PDL_BROADCASTLOOP_END_rldseq_readdata
    0          
213 0           } break;
214 0           case PDL_LL: {
215 0 0         PDL_DECLARE_PARAMS_rldseq_1(PDL_LongLong,Q,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
216 0 0         PDL_BROADCASTLOOP_START_rldseq_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
217             #line 1271 "lib/PDL/Slices.pd"
218             PDL_Indx mi=0;
219             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
220             #line 1273 "lib/PDL/Slices.pd"
221             PDL_Indx milim = mi + (a_datap)[0+(__inc_a_N*(N))], li = 0;
222             {/* Open M=mi:milim */ PDL_EXPAND2(register PDL_Indx M=PDLMAX((mi),0), __M_stop=PDLMIN(milim, (__M_size))); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))] = (b_datap)[0+(__inc_b_N*(N))] + li++; }} /* Close M=mi:milim */
223             #line 1275 "lib/PDL/Slices.pd"
224             mi = milim;
225             }} /* Close N */
226             #line 227 "lib/PDL/Slices-pp-rldseq.c"
227 0 0         }PDL_BROADCASTLOOP_END_rldseq_readdata
    0          
228 0           } break;
229 0           case PDL_F: {
230 0 0         PDL_DECLARE_PARAMS_rldseq_1(PDL_Float,F,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
231 0 0         PDL_BROADCASTLOOP_START_rldseq_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
232             #line 1271 "lib/PDL/Slices.pd"
233             PDL_Indx mi=0;
234             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
235             #line 1273 "lib/PDL/Slices.pd"
236             PDL_Indx milim = mi + (a_datap)[0+(__inc_a_N*(N))], li = 0;
237             {/* Open M=mi:milim */ PDL_EXPAND2(register PDL_Indx M=PDLMAX((mi),0), __M_stop=PDLMIN(milim, (__M_size))); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))] = (b_datap)[0+(__inc_b_N*(N))] + li++; }} /* Close M=mi:milim */
238             #line 1275 "lib/PDL/Slices.pd"
239             mi = milim;
240             }} /* Close N */
241             #line 242 "lib/PDL/Slices-pp-rldseq.c"
242 0 0         }PDL_BROADCASTLOOP_END_rldseq_readdata
    0          
243 0           } break;
244 0           case PDL_D: {
245 0 0         PDL_DECLARE_PARAMS_rldseq_1(PDL_Double,D,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
246 0 0         PDL_BROADCASTLOOP_START_rldseq_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
247             #line 1271 "lib/PDL/Slices.pd"
248             PDL_Indx mi=0;
249             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
250             #line 1273 "lib/PDL/Slices.pd"
251             PDL_Indx milim = mi + (a_datap)[0+(__inc_a_N*(N))], li = 0;
252             {/* Open M=mi:milim */ PDL_EXPAND2(register PDL_Indx M=PDLMAX((mi),0), __M_stop=PDLMIN(milim, (__M_size))); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))] = (b_datap)[0+(__inc_b_N*(N))] + li++; }} /* Close M=mi:milim */
253             #line 1275 "lib/PDL/Slices.pd"
254             mi = milim;
255             }} /* Close N */
256             #line 257 "lib/PDL/Slices-pp-rldseq.c"
257 0 0         }PDL_BROADCASTLOOP_END_rldseq_readdata
    0          
258 0           } break;
259 0           case PDL_LD: {
260 0 0         PDL_DECLARE_PARAMS_rldseq_1(PDL_LDouble,E,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
261 0 0         PDL_BROADCASTLOOP_START_rldseq_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
262             #line 1271 "lib/PDL/Slices.pd"
263             PDL_Indx mi=0;
264             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
265             #line 1273 "lib/PDL/Slices.pd"
266             PDL_Indx milim = mi + (a_datap)[0+(__inc_a_N*(N))], li = 0;
267             {/* Open M=mi:milim */ PDL_EXPAND2(register PDL_Indx M=PDLMAX((mi),0), __M_stop=PDLMIN(milim, (__M_size))); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))] = (b_datap)[0+(__inc_b_N*(N))] + li++; }} /* Close M=mi:milim */
268             #line 1275 "lib/PDL/Slices.pd"
269             mi = milim;
270             }} /* Close N */
271             #line 272 "lib/PDL/Slices-pp-rldseq.c"
272 0 0         }PDL_BROADCASTLOOP_END_rldseq_readdata
    0          
273 0           } break;
274 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in rldseq: unhandled datatype(%d), only handles (ABSULKNPQFDE)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
275             }
276             #undef PDL_IF_BAD
277 2           return PDL_err;
278             }
279              
280             static pdl_datatypes pdl_rldseq_vtable_gentypes[] = { PDL_SB, PDL_B, PDL_S, PDL_US, PDL_L, PDL_UL, PDL_IND, PDL_ULL, PDL_LL, PDL_F, PDL_D, PDL_LD, -1 };
281             static PDL_Indx pdl_rldseq_vtable_realdims[] = { 1, 1, 1 };
282             static char *pdl_rldseq_vtable_parnames[] = { "a","b","c" };
283             static short pdl_rldseq_vtable_parflags[] = {
284             PDL_PARAM_ISTYPED,
285             0,
286             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISWRITE
287             };
288             static pdl_datatypes pdl_rldseq_vtable_partypes[] = { PDL_IND, -1, -1 };
289             static PDL_Indx pdl_rldseq_vtable_realdims_starts[] = { 0, 1, 2 };
290             static PDL_Indx pdl_rldseq_vtable_realdims_ind_ids[] = { 1, 1, 0 };
291             static char *pdl_rldseq_vtable_indnames[] = { "M","N" };
292             pdl_transvtable pdl_rldseq_vtable = {
293             PDL_TRANS_DO_BROADCAST, 0, pdl_rldseq_vtable_gentypes, 2, 3, NULL /*CORE21*/,
294             pdl_rldseq_vtable_realdims, pdl_rldseq_vtable_parnames,
295             pdl_rldseq_vtable_parflags, pdl_rldseq_vtable_partypes,
296             pdl_rldseq_vtable_realdims_starts, pdl_rldseq_vtable_realdims_ind_ids, 3,
297             2, pdl_rldseq_vtable_indnames,
298             pdl_rldseq_redodims, pdl_rldseq_readdata, NULL,
299             NULL,
300             sizeof(pdl_params_rldseq),"PDL::Slices::rldseq"
301             };
302              
303              
304 2           pdl_error pdl_run_rldseq(pdl *a,pdl *b,pdl *c,IV sumover_max) {
305 2           pdl_error PDL_err = {0, NULL, 0};
306 2 50         if (!PDL) return (pdl_error){PDL_EFATAL, "PDL core struct is NULL, can't continue",0};
307 2           pdl_trans *__privtrans = PDL->create_trans(&pdl_rldseq_vtable);
308 2 50         if (!__privtrans) return PDL->make_error_simple(PDL_EFATAL, "Couldn't create trans");
309 2           pdl_params_rldseq *__params = __privtrans->params;
310 2           __privtrans->pdls[0] = a;
311 2           __privtrans->pdls[1] = b;
312 2           __privtrans->pdls[2] = c;
313 2 50         PDL_RETERROR(PDL_err, PDL->type_coerce(__privtrans));
314 2           (__params->sumover_max) = (sumover_max); /* CType.get_copy */
315 2 50         PDL_RETERROR(PDL_err, PDL->make_trans_mutual(__privtrans));
316 2           return PDL_err;
317             }