File Coverage

lib/PDL/Ufunc-pp-sumover.c
Criterion Covered Total %
statement 130 309 42.0
branch 285 1242 22.9
condition n/a
subroutine n/a
pod n/a
total 415 1551 26.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/Ufunc.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_Ufunc
21             extern Core* PDL; /* Structure hold core C functions */
22              
23             #line 1857 "lib/PDL/PP.pm"
24             pdl_error pdl_sumover_readdata(pdl_trans *__privtrans) {
25             pdl_error PDL_err = {0, NULL, 0};
26             #line 27 "lib/PDL/Ufunc-pp-sumover.c"
27 538           register PDL_Indx __n_size = __privtrans->ind_sizes[0];
28 538 50         if (!__privtrans->broadcast.incs) return PDL->make_error(PDL_EUSERERROR, "Error in sumover:" "broadcast.incs NULL");
29             /* broadcastloop declarations */
30             int __brcloopval;
31             register PDL_Indx __tind0,__tind1; /* counters along dim */
32 538           register PDL_Indx __tnpdls = __privtrans->broadcast.npdls;
33             /* dims here are how many steps along those dims */
34 538           register PDL_Indx __tinc0_a = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,0);
35 538           register PDL_Indx __tinc0_b = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,0);
36 538           register PDL_Indx __tinc1_a = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,1);
37 538           register PDL_Indx __tinc1_b = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,1);
38             #define PDL_BROADCASTLOOP_START_sumover_readdata PDL_BROADCASTLOOP_START( \
39             readdata, \
40             __privtrans->broadcast, \
41             __privtrans->vtable, \
42             a_datap += __offsp[0]; \
43             b_datap += __offsp[1]; \
44             , \
45             ( ,a_datap += __tinc1_a - __tinc0_a * __tdims0 \
46             ,b_datap += __tinc1_b - __tinc0_b * __tdims0 \
47             ), \
48             ( ,a_datap += __tinc0_a \
49             ,b_datap += __tinc0_b \
50             ) \
51             )
52             #define PDL_BROADCASTLOOP_END_sumover_readdata PDL_BROADCASTLOOP_END( \
53             __privtrans->broadcast, \
54             a_datap -= __tinc1_a * __tdims1 + __offsp[0]; \
55             b_datap -= __tinc1_b * __tdims1 + __offsp[1]; \
56             )
57 538           register PDL_Indx __inc_a_n = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,0,0)]; (void)__inc_a_n;
58             #ifndef PDL_DECLARE_PARAMS_sumover_1
59             #define PDL_DECLARE_PARAMS_sumover_1(PDL_TYPE_OP,PDL_PPSYM_OP,PDL_TYPE_PARAM_b,PDL_PPSYM_PARAM_b) \
60             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, a, (__privtrans->pdls[0]), 1, PDL_PPSYM_OP) \
61             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_PARAM_b, b, (__privtrans->pdls[1]), 1, PDL_PPSYM_PARAM_b)
62             #endif
63 538 100         if ( __privtrans->bvalflag ) { /* ** do 'bad' Code ** */
64             #define PDL_BAD_CODE
65             #define PDL_IF_BAD(t,f) t
66 9           switch (__privtrans->__datatype) { /* Start generic switch */
67 3           case PDL_SB: {
68 3 50         PDL_DECLARE_PARAMS_sumover_1(PDL_SByte,A,PDL_Long,L)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
69 12 50         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_Long tmp = 0;
    50          
    50          
    50          
    50          
    100          
    100          
70 3           PDL_IF_BAD(int flag = 0;,)
71 21 100         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
72 18 50         PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,A,a_badval_isnan) ) continue; flag = 1;,)
    50          
73 18           tmp += (a_datap)[0+(__inc_a_n*(n))];
74            
75             }} /* Close n */
76 3 50         PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
77 3           (b_datap)[0] = tmp;
78 3 50         }PDL_BROADCASTLOOP_END_sumover_readdata
    50          
79 3           } break;
80 1           case PDL_B: {
81 1 50         PDL_DECLARE_PARAMS_sumover_1(PDL_Byte,B,PDL_Long,L)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
82 4 50         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_Long tmp = 0;
    50          
    50          
    50          
    50          
    100          
    100          
83 1           PDL_IF_BAD(int flag = 0;,)
84 6 100         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
85 5 50         PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,B,a_badval_isnan) ) continue; flag = 1;,)
    100          
86 3           tmp += (a_datap)[0+(__inc_a_n*(n))];
87            
88             }} /* Close n */
89 1 50         PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
90 1           (b_datap)[0] = tmp;
91 1 50         }PDL_BROADCASTLOOP_END_sumover_readdata
    50          
92 1           } break;
93 0           case PDL_S: {
94 0 0         PDL_DECLARE_PARAMS_sumover_1(PDL_Short,S,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
95 0 0         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_Long tmp = 0;
    0          
    0          
    0          
    0          
    0          
    0          
96 0           PDL_IF_BAD(int flag = 0;,)
97 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
98 0 0         PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,S,a_badval_isnan) ) continue; flag = 1;,)
    0          
99 0           tmp += (a_datap)[0+(__inc_a_n*(n))];
100            
101             }} /* Close n */
102 0 0         PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
103 0           (b_datap)[0] = tmp;
104 0 0         }PDL_BROADCASTLOOP_END_sumover_readdata
    0          
105 0           } break;
106 0           case PDL_US: {
107 0 0         PDL_DECLARE_PARAMS_sumover_1(PDL_Ushort,U,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
108 0 0         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_Long tmp = 0;
    0          
    0          
    0          
    0          
    0          
    0          
109 0           PDL_IF_BAD(int flag = 0;,)
110 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
111 0 0         PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,U,a_badval_isnan) ) continue; flag = 1;,)
    0          
112 0           tmp += (a_datap)[0+(__inc_a_n*(n))];
113            
114             }} /* Close n */
115 0 0         PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
116 0           (b_datap)[0] = tmp;
117 0 0         }PDL_BROADCASTLOOP_END_sumover_readdata
    0          
118 0           } break;
119 0           case PDL_L: {
120 0 0         PDL_DECLARE_PARAMS_sumover_1(PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
121 0 0         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_Long tmp = 0;
    0          
    0          
    0          
    0          
    0          
    0          
122 0           PDL_IF_BAD(int flag = 0;,)
123 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
124 0 0         PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,L,a_badval_isnan) ) continue; flag = 1;,)
    0          
125 0           tmp += (a_datap)[0+(__inc_a_n*(n))];
126            
127             }} /* Close n */
128 0 0         PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
129 0           (b_datap)[0] = tmp;
130 0 0         }PDL_BROADCASTLOOP_END_sumover_readdata
    0          
131 0           } break;
132 0           case PDL_UL: {
133 0 0         PDL_DECLARE_PARAMS_sumover_1(PDL_ULong,K,PDL_ULong,K)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
134 0 0         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_ULong tmp = 0;
    0          
    0          
    0          
    0          
    0          
    0          
135 0           PDL_IF_BAD(int flag = 0;,)
136 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
137 0 0         PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,K,a_badval_isnan) ) continue; flag = 1;,)
    0          
138 0           tmp += (a_datap)[0+(__inc_a_n*(n))];
139            
140             }} /* Close n */
141 0 0         PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
142 0           (b_datap)[0] = tmp;
143 0 0         }PDL_BROADCASTLOOP_END_sumover_readdata
    0          
144 0           } break;
145 0           case PDL_IND: {
146 0 0         PDL_DECLARE_PARAMS_sumover_1(PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
147 0 0         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_Indx tmp = 0;
    0          
    0          
    0          
    0          
    0          
    0          
148 0           PDL_IF_BAD(int flag = 0;,)
149 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
150 0 0         PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,N,a_badval_isnan) ) continue; flag = 1;,)
    0          
151 0           tmp += (a_datap)[0+(__inc_a_n*(n))];
152            
153             }} /* Close n */
154 0 0         PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
155 0           (b_datap)[0] = tmp;
156 0 0         }PDL_BROADCASTLOOP_END_sumover_readdata
    0          
157 0           } break;
158 0           case PDL_ULL: {
159 0 0         PDL_DECLARE_PARAMS_sumover_1(PDL_ULongLong,P,PDL_ULongLong,P)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
160 0 0         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_ULongLong tmp = 0;
    0          
    0          
    0          
    0          
    0          
    0          
161 0           PDL_IF_BAD(int flag = 0;,)
162 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
163 0 0         PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,P,a_badval_isnan) ) continue; flag = 1;,)
    0          
164 0           tmp += (a_datap)[0+(__inc_a_n*(n))];
165            
166             }} /* Close n */
167 0 0         PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
168 0           (b_datap)[0] = tmp;
169 0 0         }PDL_BROADCASTLOOP_END_sumover_readdata
    0          
170 0           } break;
171 0           case PDL_LL: {
172 0 0         PDL_DECLARE_PARAMS_sumover_1(PDL_LongLong,Q,PDL_LongLong,Q)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
173 0 0         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_LongLong tmp = 0;
    0          
    0          
    0          
    0          
    0          
    0          
174 0           PDL_IF_BAD(int flag = 0;,)
175 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
176 0 0         PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,Q,a_badval_isnan) ) continue; flag = 1;,)
    0          
177 0           tmp += (a_datap)[0+(__inc_a_n*(n))];
178            
179             }} /* Close n */
180 0 0         PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
181 0           (b_datap)[0] = tmp;
182 0 0         }PDL_BROADCASTLOOP_END_sumover_readdata
    0          
183 0           } break;
184 2           case PDL_F: {
185 2 50         PDL_DECLARE_PARAMS_sumover_1(PDL_Float,F,PDL_Float,F)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
186 8 50         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_Float tmp = 0;
    50          
    50          
    50          
    50          
    100          
    100          
187 2           PDL_IF_BAD(int flag = 0;,)
188 9 100         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
189 7 50         PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,F,a_badval_isnan) ) continue; flag = 1;,)
    100          
190 5           tmp += (a_datap)[0+(__inc_a_n*(n))];
191            
192             }} /* Close n */
193 2 50         PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
194 2           (b_datap)[0] = tmp;
195 2 50         }PDL_BROADCASTLOOP_END_sumover_readdata
    50          
196 2           } break;
197 3           case PDL_D: {
198 3 100         PDL_DECLARE_PARAMS_sumover_1(PDL_Double,D,PDL_Double,D)
    50          
    50          
    100          
    50          
    50          
    50          
    50          
199 40 50         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_Double tmp = 0;
    50          
    50          
    50          
    50          
    100          
    100          
200 27           PDL_IF_BAD(int flag = 0;,)
201 132 100         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
202 105 50         PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,D,a_badval_isnan) ) continue; flag = 1;,)
    100          
203 53           tmp += (a_datap)[0+(__inc_a_n*(n))];
204            
205             }} /* Close n */
206 27 100         PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
207 18           (b_datap)[0] = tmp;
208 3 50         }PDL_BROADCASTLOOP_END_sumover_readdata
    50          
209 3           } break;
210 0           case PDL_LD: {
211 0 0         PDL_DECLARE_PARAMS_sumover_1(PDL_LDouble,E,PDL_LDouble,E)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
212 0 0         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_LDouble tmp = 0;
    0          
    0          
    0          
    0          
    0          
    0          
213 0           PDL_IF_BAD(int flag = 0;,)
214 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
215 0 0         PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,E,a_badval_isnan) ) continue; flag = 1;,)
    0          
216 0           tmp += (a_datap)[0+(__inc_a_n*(n))];
217            
218             }} /* Close n */
219 0 0         PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
220 0           (b_datap)[0] = tmp;
221 0 0         }PDL_BROADCASTLOOP_END_sumover_readdata
    0          
222 0           } break;
223 0           case PDL_CF: {
224 0 0         PDL_DECLARE_PARAMS_sumover_1(PDL_CFloat,G,PDL_CFloat,G)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
225 0 0         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_CFloat tmp = 0;
    0          
    0          
    0          
    0          
    0          
    0          
226 0           PDL_IF_BAD(int flag = 0;,)
227 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
228 0 0         PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,G,a_badval_isnan) ) continue; flag = 1;,)
    0          
    0          
    0          
229 0           tmp += (a_datap)[0+(__inc_a_n*(n))];
230            
231             }} /* Close n */
232 0 0         PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
233 0           (b_datap)[0] = tmp;
234 0 0         }PDL_BROADCASTLOOP_END_sumover_readdata
    0          
235 0           } break;
236 0           case PDL_CD: {
237 0 0         PDL_DECLARE_PARAMS_sumover_1(PDL_CDouble,C,PDL_CDouble,C)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
238 0 0         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_CDouble tmp = 0;
    0          
    0          
    0          
    0          
    0          
    0          
239 0           PDL_IF_BAD(int flag = 0;,)
240 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
241 0 0         PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,C,a_badval_isnan) ) continue; flag = 1;,)
    0          
    0          
    0          
242 0           tmp += (a_datap)[0+(__inc_a_n*(n))];
243            
244             }} /* Close n */
245 0 0         PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
246 0           (b_datap)[0] = tmp;
247 0 0         }PDL_BROADCASTLOOP_END_sumover_readdata
    0          
248 0           } break;
249 0           case PDL_CLD: {
250 0 0         PDL_DECLARE_PARAMS_sumover_1(PDL_CLDouble,H,PDL_CLDouble,H)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
251 0 0         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_CLDouble tmp = 0;
    0          
    0          
    0          
    0          
    0          
    0          
252 0           PDL_IF_BAD(int flag = 0;,)
253 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
254 0 0         PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,H,a_badval_isnan) ) continue; flag = 1;,)
    0          
    0          
    0          
255 0           tmp += (a_datap)[0+(__inc_a_n*(n))];
256            
257             }} /* Close n */
258 0 0         PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
259 0           (b_datap)[0] = tmp;
260 0 0         }PDL_BROADCASTLOOP_END_sumover_readdata
    0          
261 0           } break;
262 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in sumover: unhandled datatype(%d), only handles (ABSULKNPQFDEGCH)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
263             }
264             #undef PDL_BAD_CODE
265             #undef PDL_IF_BAD
266             } else { /* ** else do 'good' Code ** */
267             #define PDL_IF_BAD(t,f) f
268 529           switch (__privtrans->__datatype) { /* Start generic switch */
269 41           case PDL_SB: {
270 41 50         PDL_DECLARE_PARAMS_sumover_1(PDL_SByte,A,PDL_Long,L)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
271 164 50         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_Long tmp = 0;
    50          
    50          
    50          
    50          
    100          
    100          
272             PDL_IF_BAD(int flag = 0;,)
273 203 100         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
274             PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,A,a_badval_isnan) ) continue; flag = 1;,)
275 162           tmp += (a_datap)[0+(__inc_a_n*(n))];
276            
277             }} /* Close n */
278             PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
279 41           (b_datap)[0] = tmp;
280 41 50         }PDL_BROADCASTLOOP_END_sumover_readdata
    50          
281 41           } break;
282 27           case PDL_B: {
283 27 50         PDL_DECLARE_PARAMS_sumover_1(PDL_Byte,B,PDL_Long,L)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
284 108 50         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_Long tmp = 0;
    50          
    50          
    50          
    50          
    100          
    100          
285             PDL_IF_BAD(int flag = 0;,)
286 252 100         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
287             PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,B,a_badval_isnan) ) continue; flag = 1;,)
288 225           tmp += (a_datap)[0+(__inc_a_n*(n))];
289            
290             }} /* Close n */
291             PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
292 27           (b_datap)[0] = tmp;
293 27 50         }PDL_BROADCASTLOOP_END_sumover_readdata
    50          
294 27           } break;
295 0           case PDL_S: {
296 0 0         PDL_DECLARE_PARAMS_sumover_1(PDL_Short,S,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
297 0 0         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_Long tmp = 0;
    0          
    0          
    0          
    0          
    0          
    0          
298             PDL_IF_BAD(int flag = 0;,)
299 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
300             PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,S,a_badval_isnan) ) continue; flag = 1;,)
301 0           tmp += (a_datap)[0+(__inc_a_n*(n))];
302            
303             }} /* Close n */
304             PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
305 0           (b_datap)[0] = tmp;
306 0 0         }PDL_BROADCASTLOOP_END_sumover_readdata
    0          
307 0           } break;
308 0           case PDL_US: {
309 0 0         PDL_DECLARE_PARAMS_sumover_1(PDL_Ushort,U,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
310 0 0         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_Long tmp = 0;
    0          
    0          
    0          
    0          
    0          
    0          
311             PDL_IF_BAD(int flag = 0;,)
312 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
313             PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,U,a_badval_isnan) ) continue; flag = 1;,)
314 0           tmp += (a_datap)[0+(__inc_a_n*(n))];
315            
316             }} /* Close n */
317             PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
318 0           (b_datap)[0] = tmp;
319 0 0         }PDL_BROADCASTLOOP_END_sumover_readdata
    0          
320 0           } break;
321 28           case PDL_L: {
322 28 50         PDL_DECLARE_PARAMS_sumover_1(PDL_Long,L,PDL_Long,L)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
323 112 50         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_Long tmp = 0;
    50          
    50          
    50          
    50          
    100          
    100          
324             PDL_IF_BAD(int flag = 0;,)
325 308 100         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
326             PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,L,a_badval_isnan) ) continue; flag = 1;,)
327 280           tmp += (a_datap)[0+(__inc_a_n*(n))];
328            
329             }} /* Close n */
330             PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
331 28           (b_datap)[0] = tmp;
332 28 50         }PDL_BROADCASTLOOP_END_sumover_readdata
    50          
333 28           } break;
334 0           case PDL_UL: {
335 0 0         PDL_DECLARE_PARAMS_sumover_1(PDL_ULong,K,PDL_ULong,K)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
336 0 0         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_ULong tmp = 0;
    0          
    0          
    0          
    0          
    0          
    0          
337             PDL_IF_BAD(int flag = 0;,)
338 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
339             PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,K,a_badval_isnan) ) continue; flag = 1;,)
340 0           tmp += (a_datap)[0+(__inc_a_n*(n))];
341            
342             }} /* Close n */
343             PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
344 0           (b_datap)[0] = tmp;
345 0 0         }PDL_BROADCASTLOOP_END_sumover_readdata
    0          
346 0           } break;
347 19           case PDL_IND: {
348 19 100         PDL_DECLARE_PARAMS_sumover_1(PDL_Indx,N,PDL_Indx,N)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
349 92 50         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_Indx tmp = 0;
    50          
    50          
    50          
    50          
    100          
    100          
350             PDL_IF_BAD(int flag = 0;,)
351 1003 100         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
352             PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,N,a_badval_isnan) ) continue; flag = 1;,)
353 968           tmp += (a_datap)[0+(__inc_a_n*(n))];
354            
355             }} /* Close n */
356             PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
357 35           (b_datap)[0] = tmp;
358 19 50         }PDL_BROADCASTLOOP_END_sumover_readdata
    50          
359 19           } break;
360 0           case PDL_ULL: {
361 0 0         PDL_DECLARE_PARAMS_sumover_1(PDL_ULongLong,P,PDL_ULongLong,P)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
362 0 0         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_ULongLong tmp = 0;
    0          
    0          
    0          
    0          
    0          
    0          
363             PDL_IF_BAD(int flag = 0;,)
364 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
365             PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,P,a_badval_isnan) ) continue; flag = 1;,)
366 0           tmp += (a_datap)[0+(__inc_a_n*(n))];
367            
368             }} /* Close n */
369             PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
370 0           (b_datap)[0] = tmp;
371 0 0         }PDL_BROADCASTLOOP_END_sumover_readdata
    0          
372 0           } break;
373 27           case PDL_LL: {
374 27 50         PDL_DECLARE_PARAMS_sumover_1(PDL_LongLong,Q,PDL_LongLong,Q)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
375 138 50         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_LongLong tmp = 0;
    50          
    50          
    50          
    50          
    100          
    100          
376             PDL_IF_BAD(int flag = 0;,)
377 399 100         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
378             PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,Q,a_badval_isnan) ) continue; flag = 1;,)
379 346           tmp += (a_datap)[0+(__inc_a_n*(n))];
380            
381             }} /* Close n */
382             PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
383 53           (b_datap)[0] = tmp;
384 27 50         }PDL_BROADCASTLOOP_END_sumover_readdata
    50          
385 27           } break;
386 6           case PDL_F: {
387 6 50         PDL_DECLARE_PARAMS_sumover_1(PDL_Float,F,PDL_Float,F)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
388 158 50         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_Float tmp = 0;
    50          
    50          
    50          
    50          
    100          
    100          
389             PDL_IF_BAD(int flag = 0;,)
390 510 100         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
391             PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,F,a_badval_isnan) ) continue; flag = 1;,)
392 370           tmp += (a_datap)[0+(__inc_a_n*(n))];
393            
394             }} /* Close n */
395             PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
396 140           (b_datap)[0] = tmp;
397 6 50         }PDL_BROADCASTLOOP_END_sumover_readdata
    50          
398 6           } break;
399 377           case PDL_D: {
400 377 100         PDL_DECLARE_PARAMS_sumover_1(PDL_Double,D,PDL_Double,D)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
401 15292 50         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_Double tmp = 0;
    50          
    100          
    50          
    50          
    100          
    100          
402             PDL_IF_BAD(int flag = 0;,)
403 429894 100         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
404             PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,D,a_badval_isnan) ) continue; flag = 1;,)
405 416394           tmp += (a_datap)[0+(__inc_a_n*(n))];
406            
407             }} /* Close n */
408             PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
409 13500           (b_datap)[0] = tmp;
410 475 50         }PDL_BROADCASTLOOP_END_sumover_readdata
    100          
411 376           } break;
412 0           case PDL_LD: {
413 0 0         PDL_DECLARE_PARAMS_sumover_1(PDL_LDouble,E,PDL_LDouble,E)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
414 0 0         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_LDouble tmp = 0;
    0          
    0          
    0          
    0          
    0          
    0          
415             PDL_IF_BAD(int flag = 0;,)
416 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
417             PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,E,a_badval_isnan) ) continue; flag = 1;,)
418 0           tmp += (a_datap)[0+(__inc_a_n*(n))];
419            
420             }} /* Close n */
421             PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
422 0           (b_datap)[0] = tmp;
423 0 0         }PDL_BROADCASTLOOP_END_sumover_readdata
    0          
424 0           } break;
425 0           case PDL_CF: {
426 0 0         PDL_DECLARE_PARAMS_sumover_1(PDL_CFloat,G,PDL_CFloat,G)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
427 0 0         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_CFloat tmp = 0;
    0          
    0          
    0          
    0          
    0          
    0          
428             PDL_IF_BAD(int flag = 0;,)
429 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
430             PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,G,a_badval_isnan) ) continue; flag = 1;,)
431 0           tmp += (a_datap)[0+(__inc_a_n*(n))];
432            
433             }} /* Close n */
434             PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
435 0           (b_datap)[0] = tmp;
436 0 0         }PDL_BROADCASTLOOP_END_sumover_readdata
    0          
437 0           } break;
438 4           case PDL_CD: {
439 4 50         PDL_DECLARE_PARAMS_sumover_1(PDL_CDouble,C,PDL_CDouble,C)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
440 18 50         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_CDouble tmp = 0;
    50          
    50          
    50          
    50          
    100          
    100          
441             PDL_IF_BAD(int flag = 0;,)
442 13 100         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
443             PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,C,a_badval_isnan) ) continue; flag = 1;,)
444 7           tmp += (a_datap)[0+(__inc_a_n*(n))];
445            
446             }} /* Close n */
447             PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
448 6           (b_datap)[0] = tmp;
449 4 50         }PDL_BROADCASTLOOP_END_sumover_readdata
    50          
450 4           } break;
451 0           case PDL_CLD: {
452 0 0         PDL_DECLARE_PARAMS_sumover_1(PDL_CLDouble,H,PDL_CLDouble,H)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
453 0 0         PDL_BROADCASTLOOP_START_sumover_readdata {PDL_CLDouble tmp = 0;
    0          
    0          
    0          
    0          
    0          
    0          
454             PDL_IF_BAD(int flag = 0;,)
455 0 0         {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
456             PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0+(__inc_a_n*(n))],a_badval,H,a_badval_isnan) ) continue; flag = 1;,)
457 0           tmp += (a_datap)[0+(__inc_a_n*(n))];
458            
459             }} /* Close n */
460             PDL_IF_BAD(if ( !flag ) (b_datap)[0]=b_badval; else,)
461 0           (b_datap)[0] = tmp;
462 0 0         }PDL_BROADCASTLOOP_END_sumover_readdata
    0          
463 0           } break;
464 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in sumover: unhandled datatype(%d), only handles (ABSULKNPQFDEGCH)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
465             }
466             #undef PDL_IF_BAD
467             }
468 537           return PDL_err;
469             }
470              
471             static pdl_datatypes pdl_sumover_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 };
472             static PDL_Indx pdl_sumover_vtable_realdims[] = { 1, 0 };
473             static char *pdl_sumover_vtable_parnames[] = { "a","b" };
474             static short pdl_sumover_vtable_parflags[] = {
475             0,
476             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISTPLUS|PDL_PARAM_ISTYPED|PDL_PARAM_ISWRITE
477             };
478             static pdl_datatypes pdl_sumover_vtable_partypes[] = { -1, PDL_L };
479             static PDL_Indx pdl_sumover_vtable_realdims_starts[] = { 0, 1 };
480             static PDL_Indx pdl_sumover_vtable_realdims_ind_ids[] = { 0 };
481             static char *pdl_sumover_vtable_indnames[] = { "n" };
482             pdl_transvtable pdl_sumover_vtable = {
483             PDL_TRANS_DO_BROADCAST|PDL_TRANS_BADPROCESS, 0, pdl_sumover_vtable_gentypes, 1, 2, NULL /*CORE21*/,
484             pdl_sumover_vtable_realdims, pdl_sumover_vtable_parnames,
485             pdl_sumover_vtable_parflags, pdl_sumover_vtable_partypes,
486             pdl_sumover_vtable_realdims_starts, pdl_sumover_vtable_realdims_ind_ids, 1,
487             1, pdl_sumover_vtable_indnames,
488             NULL, pdl_sumover_readdata, NULL,
489             NULL,
490             0,"PDL::Ufunc::sumover"
491             };
492              
493              
494 536           pdl_error pdl_run_sumover(pdl *a,pdl *b) {
495 536           pdl_error PDL_err = {0, NULL, 0};
496 536 50         if (!PDL) return (pdl_error){PDL_EFATAL, "PDL core struct is NULL, can't continue",0};
497 536           pdl_trans *__privtrans = PDL->create_trans(&pdl_sumover_vtable);
498 536 50         if (!__privtrans) return PDL->make_error_simple(PDL_EFATAL, "Couldn't create trans");
499 536           __privtrans->pdls[0] = a;
500 536           __privtrans->pdls[1] = b;
501 536 50         PDL_RETERROR(PDL_err, PDL->type_coerce(__privtrans));
502 536 50         PDL_RETERROR(PDL_err, PDL->make_trans_mutual(__privtrans));
503 536           return PDL_err;
504             }