File Coverage

lib/PDL/Primitive-pp-wtstat.c
Criterion Covered Total %
statement 0 469 0.0
branch 0 2010 0.0
condition n/a
subroutine n/a
pod n/a
total 0 2479 0.0


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