File Coverage

lib/PDL/Primitive-pp-whistogram2d.c
Criterion Covered Total %
statement 0 215 0.0
branch 0 1418 0.0
condition n/a
subroutine n/a
pod n/a
total 0 1633 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_whistogram2d {
25             #line 26 "lib/PDL/Primitive-pp-whistogram2d.c"
26             double stepa;
27             double mina;
28             IV masize;
29             double stepb;
30             double minb;
31             IV mbsize;
32             } pdl_params_whistogram2d;
33              
34              
35             #line 1857 "lib/PDL/PP.pm"
36             pdl_error pdl_whistogram2d_redodims(pdl_trans *__privtrans) {
37             pdl_error PDL_err = {0, NULL, 0};
38             #line 39 "lib/PDL/Primitive-pp-whistogram2d.c"
39 0           pdl_params_whistogram2d *__params = __privtrans->params; (void)__params;
40 0           __privtrans->ind_sizes[0] = __params->masize;
41 0           __privtrans->ind_sizes[1] = __params->mbsize;
42             #ifndef PDL_DECLARE_PARAMS_whistogram2d_0
43             #define PDL_DECLARE_PARAMS_whistogram2d_0(PDL_TYPE_OP,PDL_PPSYM_OP,PDL_TYPE_PARAM_wt,PDL_PPSYM_PARAM_wt,PDL_TYPE_PARAM_hist,PDL_PPSYM_PARAM_hist) \
44             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, ina, (__privtrans->pdls[0]), 0, PDL_PPSYM_OP) \
45             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, inb, (__privtrans->pdls[1]), 0, PDL_PPSYM_OP) \
46             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_PARAM_wt, wt, (__privtrans->pdls[2]), 0, PDL_PPSYM_PARAM_wt) \
47             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_PARAM_hist, hist, (__privtrans->pdls[3]), 0, PDL_PPSYM_PARAM_hist)
48             #endif
49             #define PDL_IF_BAD(t,f) f
50 0           switch (__privtrans->__datatype) { /* Start generic switch */
51 0           case PDL_SB: {
52 0 0         PDL_DECLARE_PARAMS_whistogram2d_0(PDL_SByte,A,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
53             {
54 0 0         if (__privtrans->ind_sizes[0] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with ma dim of 0");
55 0 0         if (__privtrans->ind_sizes[1] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with mb dim of 0");
56             }
57 0           } break;
58 0           case PDL_B: {
59 0 0         PDL_DECLARE_PARAMS_whistogram2d_0(PDL_Byte,B,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
60             {
61 0 0         if (__privtrans->ind_sizes[0] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with ma dim of 0");
62 0 0         if (__privtrans->ind_sizes[1] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with mb dim of 0");
63             }
64 0           } break;
65 0           case PDL_S: {
66 0 0         PDL_DECLARE_PARAMS_whistogram2d_0(PDL_Short,S,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
67             {
68 0 0         if (__privtrans->ind_sizes[0] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with ma dim of 0");
69 0 0         if (__privtrans->ind_sizes[1] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with mb dim of 0");
70             }
71 0           } break;
72 0           case PDL_US: {
73 0 0         PDL_DECLARE_PARAMS_whistogram2d_0(PDL_Ushort,U,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
74             {
75 0 0         if (__privtrans->ind_sizes[0] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with ma dim of 0");
76 0 0         if (__privtrans->ind_sizes[1] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with mb dim of 0");
77             }
78 0           } break;
79 0           case PDL_L: {
80 0 0         PDL_DECLARE_PARAMS_whistogram2d_0(PDL_Long,L,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
81             {
82 0 0         if (__privtrans->ind_sizes[0] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with ma dim of 0");
83 0 0         if (__privtrans->ind_sizes[1] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with mb dim of 0");
84             }
85 0           } break;
86 0           case PDL_UL: {
87 0 0         PDL_DECLARE_PARAMS_whistogram2d_0(PDL_ULong,K,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
88             {
89 0 0         if (__privtrans->ind_sizes[0] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with ma dim of 0");
90 0 0         if (__privtrans->ind_sizes[1] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with mb dim of 0");
91             }
92 0           } break;
93 0           case PDL_IND: {
94 0 0         PDL_DECLARE_PARAMS_whistogram2d_0(PDL_Indx,N,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
95             {
96 0 0         if (__privtrans->ind_sizes[0] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with ma dim of 0");
97 0 0         if (__privtrans->ind_sizes[1] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with mb dim of 0");
98             }
99 0           } break;
100 0           case PDL_ULL: {
101 0 0         PDL_DECLARE_PARAMS_whistogram2d_0(PDL_ULongLong,P,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
102             {
103 0 0         if (__privtrans->ind_sizes[0] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with ma dim of 0");
104 0 0         if (__privtrans->ind_sizes[1] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with mb dim of 0");
105             }
106 0           } break;
107 0           case PDL_LL: {
108 0 0         PDL_DECLARE_PARAMS_whistogram2d_0(PDL_LongLong,Q,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
109             {
110 0 0         if (__privtrans->ind_sizes[0] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with ma dim of 0");
111 0 0         if (__privtrans->ind_sizes[1] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with mb dim of 0");
112             }
113 0           } break;
114 0           case PDL_F: {
115 0 0         PDL_DECLARE_PARAMS_whistogram2d_0(PDL_Float,F,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
116             {
117 0 0         if (__privtrans->ind_sizes[0] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with ma dim of 0");
118 0 0         if (__privtrans->ind_sizes[1] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with mb dim of 0");
119             }
120 0           } break;
121 0           case PDL_D: {
122 0 0         PDL_DECLARE_PARAMS_whistogram2d_0(PDL_Double,D,PDL_Double,D,PDL_Double,D)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
123             {
124 0 0         if (__privtrans->ind_sizes[0] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with ma dim of 0");
125 0 0         if (__privtrans->ind_sizes[1] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with mb dim of 0");
126             }
127 0           } break;
128 0           case PDL_LD: {
129 0 0         PDL_DECLARE_PARAMS_whistogram2d_0(PDL_LDouble,E,PDL_LDouble,E,PDL_LDouble,E)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
130             {
131 0 0         if (__privtrans->ind_sizes[0] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with ma dim of 0");
132 0 0         if (__privtrans->ind_sizes[1] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with mb dim of 0");
133             }
134 0           } break;
135 0           case PDL_CF: {
136 0 0         PDL_DECLARE_PARAMS_whistogram2d_0(PDL_CFloat,G,PDL_CFloat,G,PDL_CFloat,G)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
137             {
138 0 0         if (__privtrans->ind_sizes[0] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with ma dim of 0");
139 0 0         if (__privtrans->ind_sizes[1] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with mb dim of 0");
140             }
141 0           } break;
142 0           case PDL_CD: {
143 0 0         PDL_DECLARE_PARAMS_whistogram2d_0(PDL_CDouble,C,PDL_CDouble,C,PDL_CDouble,C)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
144             {
145 0 0         if (__privtrans->ind_sizes[0] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with ma dim of 0");
146 0 0         if (__privtrans->ind_sizes[1] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with mb dim of 0");
147             }
148 0           } break;
149 0           case PDL_CLD: {
150 0 0         PDL_DECLARE_PARAMS_whistogram2d_0(PDL_CLDouble,H,PDL_CLDouble,H,PDL_CLDouble,H)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
151             {
152 0 0         if (__privtrans->ind_sizes[0] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with ma dim of 0");
153 0 0         if (__privtrans->ind_sizes[1] == 0) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "called with mb dim of 0");
154             }
155 0           } break;
156 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in whistogram2d: unhandled datatype(%d), only handles (ABSULKNPQFDEGCH)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
157             }
158             #undef PDL_IF_BAD
159              
160 0 0         PDL_RETERROR(PDL_err, PDL->redodims_default(__privtrans));
161 0           return PDL_err;
162             }
163              
164              
165             #line 1857 "lib/PDL/PP.pm"
166             pdl_error pdl_whistogram2d_readdata(pdl_trans *__privtrans) {
167             pdl_error PDL_err = {0, NULL, 0};
168             #line 169 "lib/PDL/Primitive-pp-whistogram2d.c"
169 0           pdl_params_whistogram2d *__params = __privtrans->params; (void)__params;
170 0           register PDL_Indx __ma_size = __privtrans->ind_sizes[0];
171 0           register PDL_Indx __mb_size = __privtrans->ind_sizes[1];
172 0           register PDL_Indx __n_size = __privtrans->ind_sizes[2];
173 0 0         if (!__privtrans->broadcast.incs) return PDL->make_error(PDL_EUSERERROR, "Error in whistogram2d:" "broadcast.incs NULL");
174             /* broadcastloop declarations */
175             int __brcloopval;
176             register PDL_Indx __tind0,__tind1; /* counters along dim */
177 0           register PDL_Indx __tnpdls = __privtrans->broadcast.npdls;
178             /* dims here are how many steps along those dims */
179 0           register PDL_Indx __tinc0_ina = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,0);
180 0           register PDL_Indx __tinc0_inb = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,0);
181 0           register PDL_Indx __tinc0_wt = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,2,0);
182 0           register PDL_Indx __tinc0_hist = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,3,0);
183 0           register PDL_Indx __tinc1_ina = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,1);
184 0           register PDL_Indx __tinc1_inb = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,1);
185 0           register PDL_Indx __tinc1_wt = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,2,1);
186 0           register PDL_Indx __tinc1_hist = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,3,1);
187             #define PDL_BROADCASTLOOP_START_whistogram2d_readdata PDL_BROADCASTLOOP_START( \
188             readdata, \
189             __privtrans->broadcast, \
190             __privtrans->vtable, \
191             ina_datap += __offsp[0]; \
192             inb_datap += __offsp[1]; \
193             wt_datap += __offsp[2]; \
194             hist_datap += __offsp[3]; \
195             , \
196             ( ,ina_datap += __tinc1_ina - __tinc0_ina * __tdims0 \
197             ,inb_datap += __tinc1_inb - __tinc0_inb * __tdims0 \
198             ,wt_datap += __tinc1_wt - __tinc0_wt * __tdims0 \
199             ,hist_datap += __tinc1_hist - __tinc0_hist * __tdims0 \
200             ), \
201             ( ,ina_datap += __tinc0_ina \
202             ,inb_datap += __tinc0_inb \
203             ,wt_datap += __tinc0_wt \
204             ,hist_datap += __tinc0_hist \
205             ) \
206             )
207             #define PDL_BROADCASTLOOP_END_whistogram2d_readdata PDL_BROADCASTLOOP_END( \
208             __privtrans->broadcast, \
209             ina_datap -= __tinc1_ina * __tdims1 + __offsp[0]; \
210             inb_datap -= __tinc1_inb * __tdims1 + __offsp[1]; \
211             wt_datap -= __tinc1_wt * __tdims1 + __offsp[2]; \
212             hist_datap -= __tinc1_hist * __tdims1 + __offsp[3]; \
213             )
214 0           register PDL_Indx __inc_hist_ma = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,3,0)]; (void)__inc_hist_ma;register PDL_Indx __inc_hist_mb = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,3,1)]; (void)__inc_hist_mb;
215 0           register PDL_Indx __inc_ina_n = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,0,0)]; (void)__inc_ina_n;
216 0           register PDL_Indx __inc_inb_n = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,1,0)]; (void)__inc_inb_n;
217 0           register PDL_Indx __inc_wt_n = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,2,0)]; (void)__inc_wt_n;
218             #ifndef PDL_DECLARE_PARAMS_whistogram2d_1
219             #define PDL_DECLARE_PARAMS_whistogram2d_1(PDL_TYPE_OP,PDL_PPSYM_OP,PDL_TYPE_PARAM_wt,PDL_PPSYM_PARAM_wt,PDL_TYPE_PARAM_hist,PDL_PPSYM_PARAM_hist) \
220             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, ina, (__privtrans->pdls[0]), 1, PDL_PPSYM_OP) \
221             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, inb, (__privtrans->pdls[1]), 1, PDL_PPSYM_OP) \
222             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_PARAM_wt, wt, (__privtrans->pdls[2]), 1, PDL_PPSYM_PARAM_wt) \
223             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_PARAM_hist, hist, (__privtrans->pdls[3]), 1, PDL_PPSYM_PARAM_hist)
224             #endif
225 0 0         if ( __privtrans->bvalflag ) { /* ** do 'bad' Code ** */
226             #define PDL_BAD_CODE
227             #define PDL_IF_BAD(t,f) t
228 0           switch (__privtrans->__datatype) { /* Start generic switch */
229 0           case PDL_SB: {
230 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_SByte,A,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
231             {
232             #line 1334 "lib/PDL/Primitive.pd"
233              
234             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
235             PDL_BROADCASTLOOP_START_whistogram2d_readdata
236             #line 1337 "lib/PDL/Primitive.pd"
237             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
238             #line 1338 "lib/PDL/Primitive.pd"
239             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
240             #line 1339 "lib/PDL/Primitive.pd"
241             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,A,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,A,inb_badval_isnan) )) continue;,)
242             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
243             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
244             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
245             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
246             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
247             }} /* Close n */
248             #line 1346 "lib/PDL/Primitive.pd"
249             PDL_BROADCASTLOOP_END_whistogram2d_readdata
250             #line 251 "lib/PDL/Primitive-pp-whistogram2d.c"
251             }
252 0           } break;
253 0           case PDL_B: {
254 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_Byte,B,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
255             {
256             #line 1334 "lib/PDL/Primitive.pd"
257              
258             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
259             PDL_BROADCASTLOOP_START_whistogram2d_readdata
260             #line 1337 "lib/PDL/Primitive.pd"
261             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
262             #line 1338 "lib/PDL/Primitive.pd"
263             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
264             #line 1339 "lib/PDL/Primitive.pd"
265             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,B,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,B,inb_badval_isnan) )) continue;,)
266             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
267             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
268             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
269             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
270             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
271             }} /* Close n */
272             #line 1346 "lib/PDL/Primitive.pd"
273             PDL_BROADCASTLOOP_END_whistogram2d_readdata
274             #line 275 "lib/PDL/Primitive-pp-whistogram2d.c"
275             }
276 0           } break;
277 0           case PDL_S: {
278 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_Short,S,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
279             {
280             #line 1334 "lib/PDL/Primitive.pd"
281              
282             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
283             PDL_BROADCASTLOOP_START_whistogram2d_readdata
284             #line 1337 "lib/PDL/Primitive.pd"
285             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
286             #line 1338 "lib/PDL/Primitive.pd"
287             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
288             #line 1339 "lib/PDL/Primitive.pd"
289             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,S,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,S,inb_badval_isnan) )) continue;,)
290             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
291             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
292             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
293             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
294             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
295             }} /* Close n */
296             #line 1346 "lib/PDL/Primitive.pd"
297             PDL_BROADCASTLOOP_END_whistogram2d_readdata
298             #line 299 "lib/PDL/Primitive-pp-whistogram2d.c"
299             }
300 0           } break;
301 0           case PDL_US: {
302 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_Ushort,U,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
303             {
304             #line 1334 "lib/PDL/Primitive.pd"
305              
306             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
307             PDL_BROADCASTLOOP_START_whistogram2d_readdata
308             #line 1337 "lib/PDL/Primitive.pd"
309             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
310             #line 1338 "lib/PDL/Primitive.pd"
311             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
312             #line 1339 "lib/PDL/Primitive.pd"
313             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,U,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,U,inb_badval_isnan) )) continue;,)
314             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
315             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
316             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
317             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
318             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
319             }} /* Close n */
320             #line 1346 "lib/PDL/Primitive.pd"
321             PDL_BROADCASTLOOP_END_whistogram2d_readdata
322             #line 323 "lib/PDL/Primitive-pp-whistogram2d.c"
323             }
324 0           } break;
325 0           case PDL_L: {
326 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_Long,L,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
327             {
328             #line 1334 "lib/PDL/Primitive.pd"
329              
330             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
331             PDL_BROADCASTLOOP_START_whistogram2d_readdata
332             #line 1337 "lib/PDL/Primitive.pd"
333             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
334             #line 1338 "lib/PDL/Primitive.pd"
335             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
336             #line 1339 "lib/PDL/Primitive.pd"
337             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,L,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,L,inb_badval_isnan) )) continue;,)
338             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
339             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
340             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
341             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
342             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
343             }} /* Close n */
344             #line 1346 "lib/PDL/Primitive.pd"
345             PDL_BROADCASTLOOP_END_whistogram2d_readdata
346             #line 347 "lib/PDL/Primitive-pp-whistogram2d.c"
347             }
348 0           } break;
349 0           case PDL_UL: {
350 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_ULong,K,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
351             {
352             #line 1334 "lib/PDL/Primitive.pd"
353              
354             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
355             PDL_BROADCASTLOOP_START_whistogram2d_readdata
356             #line 1337 "lib/PDL/Primitive.pd"
357             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
358             #line 1338 "lib/PDL/Primitive.pd"
359             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
360             #line 1339 "lib/PDL/Primitive.pd"
361             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,K,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,K,inb_badval_isnan) )) continue;,)
362             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
363             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
364             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
365             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
366             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
367             }} /* Close n */
368             #line 1346 "lib/PDL/Primitive.pd"
369             PDL_BROADCASTLOOP_END_whistogram2d_readdata
370             #line 371 "lib/PDL/Primitive-pp-whistogram2d.c"
371             }
372 0           } break;
373 0           case PDL_IND: {
374 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_Indx,N,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
375             {
376             #line 1334 "lib/PDL/Primitive.pd"
377              
378             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
379             PDL_BROADCASTLOOP_START_whistogram2d_readdata
380             #line 1337 "lib/PDL/Primitive.pd"
381             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
382             #line 1338 "lib/PDL/Primitive.pd"
383             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
384             #line 1339 "lib/PDL/Primitive.pd"
385             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,N,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,N,inb_badval_isnan) )) continue;,)
386             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
387             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
388             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
389             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
390             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
391             }} /* Close n */
392             #line 1346 "lib/PDL/Primitive.pd"
393             PDL_BROADCASTLOOP_END_whistogram2d_readdata
394             #line 395 "lib/PDL/Primitive-pp-whistogram2d.c"
395             }
396 0           } break;
397 0           case PDL_ULL: {
398 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_ULongLong,P,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
399             {
400             #line 1334 "lib/PDL/Primitive.pd"
401              
402             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
403             PDL_BROADCASTLOOP_START_whistogram2d_readdata
404             #line 1337 "lib/PDL/Primitive.pd"
405             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
406             #line 1338 "lib/PDL/Primitive.pd"
407             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
408             #line 1339 "lib/PDL/Primitive.pd"
409             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,P,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,P,inb_badval_isnan) )) continue;,)
410             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
411             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
412             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
413             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
414             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
415             }} /* Close n */
416             #line 1346 "lib/PDL/Primitive.pd"
417             PDL_BROADCASTLOOP_END_whistogram2d_readdata
418             #line 419 "lib/PDL/Primitive-pp-whistogram2d.c"
419             }
420 0           } break;
421 0           case PDL_LL: {
422 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_LongLong,Q,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
423             {
424             #line 1334 "lib/PDL/Primitive.pd"
425              
426             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
427             PDL_BROADCASTLOOP_START_whistogram2d_readdata
428             #line 1337 "lib/PDL/Primitive.pd"
429             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
430             #line 1338 "lib/PDL/Primitive.pd"
431             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
432             #line 1339 "lib/PDL/Primitive.pd"
433             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,Q,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,Q,inb_badval_isnan) )) continue;,)
434             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
435             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
436             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
437             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
438             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
439             }} /* Close n */
440             #line 1346 "lib/PDL/Primitive.pd"
441             PDL_BROADCASTLOOP_END_whistogram2d_readdata
442             #line 443 "lib/PDL/Primitive-pp-whistogram2d.c"
443             }
444 0           } break;
445 0           case PDL_F: {
446 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_Float,F,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
447             {
448             #line 1334 "lib/PDL/Primitive.pd"
449              
450             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
451             PDL_BROADCASTLOOP_START_whistogram2d_readdata
452             #line 1337 "lib/PDL/Primitive.pd"
453             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
454             #line 1338 "lib/PDL/Primitive.pd"
455             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
456             #line 1339 "lib/PDL/Primitive.pd"
457             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,F,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,F,inb_badval_isnan) )) continue;,)
458             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
459             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
460             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
461             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
462             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
463             }} /* Close n */
464             #line 1346 "lib/PDL/Primitive.pd"
465             PDL_BROADCASTLOOP_END_whistogram2d_readdata
466             #line 467 "lib/PDL/Primitive-pp-whistogram2d.c"
467             }
468 0           } break;
469 0           case PDL_D: {
470 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_Double,D,PDL_Double,D,PDL_Double,D)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
471             {
472             #line 1334 "lib/PDL/Primitive.pd"
473              
474             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
475             PDL_BROADCASTLOOP_START_whistogram2d_readdata
476             #line 1337 "lib/PDL/Primitive.pd"
477             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
478             #line 1338 "lib/PDL/Primitive.pd"
479             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
480             #line 1339 "lib/PDL/Primitive.pd"
481             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,D,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,D,inb_badval_isnan) )) continue;,)
482             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
483             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
484             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
485             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
486             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
487             }} /* Close n */
488             #line 1346 "lib/PDL/Primitive.pd"
489             PDL_BROADCASTLOOP_END_whistogram2d_readdata
490             #line 491 "lib/PDL/Primitive-pp-whistogram2d.c"
491             }
492 0           } break;
493 0           case PDL_LD: {
494 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_LDouble,E,PDL_LDouble,E,PDL_LDouble,E)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
495             {
496             #line 1334 "lib/PDL/Primitive.pd"
497              
498             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
499             PDL_BROADCASTLOOP_START_whistogram2d_readdata
500             #line 1337 "lib/PDL/Primitive.pd"
501             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
502             #line 1338 "lib/PDL/Primitive.pd"
503             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
504             #line 1339 "lib/PDL/Primitive.pd"
505             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,E,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,E,inb_badval_isnan) )) continue;,)
506             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
507             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
508             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
509             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
510             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
511             }} /* Close n */
512             #line 1346 "lib/PDL/Primitive.pd"
513             PDL_BROADCASTLOOP_END_whistogram2d_readdata
514             #line 515 "lib/PDL/Primitive-pp-whistogram2d.c"
515             }
516 0           } break;
517 0           case PDL_CF: {
518 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_CFloat,G,PDL_CFloat,G,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          
519             {
520             #line 1334 "lib/PDL/Primitive.pd"
521              
522             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
523             PDL_BROADCASTLOOP_START_whistogram2d_readdata
524             #line 1337 "lib/PDL/Primitive.pd"
525             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
526             #line 1338 "lib/PDL/Primitive.pd"
527             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
528             #line 1339 "lib/PDL/Primitive.pd"
529             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,G,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,G,inb_badval_isnan) )) continue;,)
530             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
531             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
532             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
533             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
534             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
535             }} /* Close n */
536             #line 1346 "lib/PDL/Primitive.pd"
537             PDL_BROADCASTLOOP_END_whistogram2d_readdata
538             #line 539 "lib/PDL/Primitive-pp-whistogram2d.c"
539             }
540 0           } break;
541 0           case PDL_CD: {
542 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_CDouble,C,PDL_CDouble,C,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          
543             {
544             #line 1334 "lib/PDL/Primitive.pd"
545              
546             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
547             PDL_BROADCASTLOOP_START_whistogram2d_readdata
548             #line 1337 "lib/PDL/Primitive.pd"
549             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
550             #line 1338 "lib/PDL/Primitive.pd"
551             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
552             #line 1339 "lib/PDL/Primitive.pd"
553             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,C,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,C,inb_badval_isnan) )) continue;,)
554             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
555             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
556             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
557             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
558             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
559             }} /* Close n */
560             #line 1346 "lib/PDL/Primitive.pd"
561             PDL_BROADCASTLOOP_END_whistogram2d_readdata
562             #line 563 "lib/PDL/Primitive-pp-whistogram2d.c"
563             }
564 0           } break;
565 0           case PDL_CLD: {
566 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_CLDouble,H,PDL_CLDouble,H,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          
567             {
568             #line 1334 "lib/PDL/Primitive.pd"
569              
570             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
571             PDL_BROADCASTLOOP_START_whistogram2d_readdata
572             #line 1337 "lib/PDL/Primitive.pd"
573             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
574             #line 1338 "lib/PDL/Primitive.pd"
575             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
576             #line 1339 "lib/PDL/Primitive.pd"
577             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,H,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,H,inb_badval_isnan) )) continue;,)
578             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
579             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
580             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
581             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
582             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
583             }} /* Close n */
584             #line 1346 "lib/PDL/Primitive.pd"
585             PDL_BROADCASTLOOP_END_whistogram2d_readdata
586             #line 587 "lib/PDL/Primitive-pp-whistogram2d.c"
587             }
588 0           } break;
589 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in whistogram2d: unhandled datatype(%d), only handles (ABSULKNPQFDEGCH)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
590             }
591             #undef PDL_BAD_CODE
592             #undef PDL_IF_BAD
593             } else { /* ** else do 'good' Code ** */
594             #define PDL_IF_BAD(t,f) f
595 0           switch (__privtrans->__datatype) { /* Start generic switch */
596 0           case PDL_SB: {
597 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_SByte,A,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
598             {
599             #line 1334 "lib/PDL/Primitive.pd"
600              
601             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
602             PDL_BROADCASTLOOP_START_whistogram2d_readdata
603             #line 1337 "lib/PDL/Primitive.pd"
604             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
605             #line 1338 "lib/PDL/Primitive.pd"
606             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
607             #line 1339 "lib/PDL/Primitive.pd"
608             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,A,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,A,inb_badval_isnan) )) continue;,)
609             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
610             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
611             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
612             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
613             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
614             }} /* Close n */
615             #line 1346 "lib/PDL/Primitive.pd"
616             PDL_BROADCASTLOOP_END_whistogram2d_readdata
617             #line 618 "lib/PDL/Primitive-pp-whistogram2d.c"
618             }
619 0           } break;
620 0           case PDL_B: {
621 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_Byte,B,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
622             {
623             #line 1334 "lib/PDL/Primitive.pd"
624              
625             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
626             PDL_BROADCASTLOOP_START_whistogram2d_readdata
627             #line 1337 "lib/PDL/Primitive.pd"
628             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
629             #line 1338 "lib/PDL/Primitive.pd"
630             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
631             #line 1339 "lib/PDL/Primitive.pd"
632             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,B,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,B,inb_badval_isnan) )) continue;,)
633             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
634             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
635             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
636             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
637             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
638             }} /* Close n */
639             #line 1346 "lib/PDL/Primitive.pd"
640             PDL_BROADCASTLOOP_END_whistogram2d_readdata
641             #line 642 "lib/PDL/Primitive-pp-whistogram2d.c"
642             }
643 0           } break;
644 0           case PDL_S: {
645 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_Short,S,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
646             {
647             #line 1334 "lib/PDL/Primitive.pd"
648              
649             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
650             PDL_BROADCASTLOOP_START_whistogram2d_readdata
651             #line 1337 "lib/PDL/Primitive.pd"
652             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
653             #line 1338 "lib/PDL/Primitive.pd"
654             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
655             #line 1339 "lib/PDL/Primitive.pd"
656             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,S,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,S,inb_badval_isnan) )) continue;,)
657             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
658             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
659             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
660             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
661             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
662             }} /* Close n */
663             #line 1346 "lib/PDL/Primitive.pd"
664             PDL_BROADCASTLOOP_END_whistogram2d_readdata
665             #line 666 "lib/PDL/Primitive-pp-whistogram2d.c"
666             }
667 0           } break;
668 0           case PDL_US: {
669 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_Ushort,U,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
670             {
671             #line 1334 "lib/PDL/Primitive.pd"
672              
673             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
674             PDL_BROADCASTLOOP_START_whistogram2d_readdata
675             #line 1337 "lib/PDL/Primitive.pd"
676             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
677             #line 1338 "lib/PDL/Primitive.pd"
678             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
679             #line 1339 "lib/PDL/Primitive.pd"
680             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,U,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,U,inb_badval_isnan) )) continue;,)
681             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
682             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
683             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
684             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
685             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
686             }} /* Close n */
687             #line 1346 "lib/PDL/Primitive.pd"
688             PDL_BROADCASTLOOP_END_whistogram2d_readdata
689             #line 690 "lib/PDL/Primitive-pp-whistogram2d.c"
690             }
691 0           } break;
692 0           case PDL_L: {
693 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_Long,L,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
694             {
695             #line 1334 "lib/PDL/Primitive.pd"
696              
697             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
698             PDL_BROADCASTLOOP_START_whistogram2d_readdata
699             #line 1337 "lib/PDL/Primitive.pd"
700             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
701             #line 1338 "lib/PDL/Primitive.pd"
702             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
703             #line 1339 "lib/PDL/Primitive.pd"
704             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,L,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,L,inb_badval_isnan) )) continue;,)
705             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
706             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
707             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
708             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
709             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
710             }} /* Close n */
711             #line 1346 "lib/PDL/Primitive.pd"
712             PDL_BROADCASTLOOP_END_whistogram2d_readdata
713             #line 714 "lib/PDL/Primitive-pp-whistogram2d.c"
714             }
715 0           } break;
716 0           case PDL_UL: {
717 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_ULong,K,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
718             {
719             #line 1334 "lib/PDL/Primitive.pd"
720              
721             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
722             PDL_BROADCASTLOOP_START_whistogram2d_readdata
723             #line 1337 "lib/PDL/Primitive.pd"
724             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
725             #line 1338 "lib/PDL/Primitive.pd"
726             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
727             #line 1339 "lib/PDL/Primitive.pd"
728             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,K,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,K,inb_badval_isnan) )) continue;,)
729             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
730             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
731             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
732             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
733             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
734             }} /* Close n */
735             #line 1346 "lib/PDL/Primitive.pd"
736             PDL_BROADCASTLOOP_END_whistogram2d_readdata
737             #line 738 "lib/PDL/Primitive-pp-whistogram2d.c"
738             }
739 0           } break;
740 0           case PDL_IND: {
741 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_Indx,N,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
742             {
743             #line 1334 "lib/PDL/Primitive.pd"
744              
745             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
746             PDL_BROADCASTLOOP_START_whistogram2d_readdata
747             #line 1337 "lib/PDL/Primitive.pd"
748             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
749             #line 1338 "lib/PDL/Primitive.pd"
750             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
751             #line 1339 "lib/PDL/Primitive.pd"
752             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,N,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,N,inb_badval_isnan) )) continue;,)
753             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
754             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
755             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
756             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
757             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
758             }} /* Close n */
759             #line 1346 "lib/PDL/Primitive.pd"
760             PDL_BROADCASTLOOP_END_whistogram2d_readdata
761             #line 762 "lib/PDL/Primitive-pp-whistogram2d.c"
762             }
763 0           } break;
764 0           case PDL_ULL: {
765 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_ULongLong,P,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
766             {
767             #line 1334 "lib/PDL/Primitive.pd"
768              
769             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
770             PDL_BROADCASTLOOP_START_whistogram2d_readdata
771             #line 1337 "lib/PDL/Primitive.pd"
772             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
773             #line 1338 "lib/PDL/Primitive.pd"
774             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
775             #line 1339 "lib/PDL/Primitive.pd"
776             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,P,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,P,inb_badval_isnan) )) continue;,)
777             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
778             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
779             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
780             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
781             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
782             }} /* Close n */
783             #line 1346 "lib/PDL/Primitive.pd"
784             PDL_BROADCASTLOOP_END_whistogram2d_readdata
785             #line 786 "lib/PDL/Primitive-pp-whistogram2d.c"
786             }
787 0           } break;
788 0           case PDL_LL: {
789 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_LongLong,Q,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
790             {
791             #line 1334 "lib/PDL/Primitive.pd"
792              
793             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
794             PDL_BROADCASTLOOP_START_whistogram2d_readdata
795             #line 1337 "lib/PDL/Primitive.pd"
796             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
797             #line 1338 "lib/PDL/Primitive.pd"
798             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
799             #line 1339 "lib/PDL/Primitive.pd"
800             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,Q,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,Q,inb_badval_isnan) )) continue;,)
801             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
802             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
803             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
804             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
805             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
806             }} /* Close n */
807             #line 1346 "lib/PDL/Primitive.pd"
808             PDL_BROADCASTLOOP_END_whistogram2d_readdata
809             #line 810 "lib/PDL/Primitive-pp-whistogram2d.c"
810             }
811 0           } break;
812 0           case PDL_F: {
813 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_Float,F,PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
814             {
815             #line 1334 "lib/PDL/Primitive.pd"
816              
817             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
818             PDL_BROADCASTLOOP_START_whistogram2d_readdata
819             #line 1337 "lib/PDL/Primitive.pd"
820             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
821             #line 1338 "lib/PDL/Primitive.pd"
822             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
823             #line 1339 "lib/PDL/Primitive.pd"
824             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,F,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,F,inb_badval_isnan) )) continue;,)
825             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
826             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
827             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
828             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
829             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
830             }} /* Close n */
831             #line 1346 "lib/PDL/Primitive.pd"
832             PDL_BROADCASTLOOP_END_whistogram2d_readdata
833             #line 834 "lib/PDL/Primitive-pp-whistogram2d.c"
834             }
835 0           } break;
836 0           case PDL_D: {
837 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_Double,D,PDL_Double,D,PDL_Double,D)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
838             {
839             #line 1334 "lib/PDL/Primitive.pd"
840              
841             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
842             PDL_BROADCASTLOOP_START_whistogram2d_readdata
843             #line 1337 "lib/PDL/Primitive.pd"
844             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
845             #line 1338 "lib/PDL/Primitive.pd"
846             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
847             #line 1339 "lib/PDL/Primitive.pd"
848             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,D,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,D,inb_badval_isnan) )) continue;,)
849             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
850             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
851             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
852             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
853             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
854             }} /* Close n */
855             #line 1346 "lib/PDL/Primitive.pd"
856             PDL_BROADCASTLOOP_END_whistogram2d_readdata
857             #line 858 "lib/PDL/Primitive-pp-whistogram2d.c"
858             }
859 0           } break;
860 0           case PDL_LD: {
861 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_LDouble,E,PDL_LDouble,E,PDL_LDouble,E)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
862             {
863             #line 1334 "lib/PDL/Primitive.pd"
864              
865             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
866             PDL_BROADCASTLOOP_START_whistogram2d_readdata
867             #line 1337 "lib/PDL/Primitive.pd"
868             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
869             #line 1338 "lib/PDL/Primitive.pd"
870             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
871             #line 1339 "lib/PDL/Primitive.pd"
872             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,E,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,E,inb_badval_isnan) )) continue;,)
873             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
874             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
875             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
876             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
877             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
878             }} /* Close n */
879             #line 1346 "lib/PDL/Primitive.pd"
880             PDL_BROADCASTLOOP_END_whistogram2d_readdata
881             #line 882 "lib/PDL/Primitive-pp-whistogram2d.c"
882             }
883 0           } break;
884 0           case PDL_CF: {
885 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_CFloat,G,PDL_CFloat,G,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          
886             {
887             #line 1334 "lib/PDL/Primitive.pd"
888              
889             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
890             PDL_BROADCASTLOOP_START_whistogram2d_readdata
891             #line 1337 "lib/PDL/Primitive.pd"
892             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
893             #line 1338 "lib/PDL/Primitive.pd"
894             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
895             #line 1339 "lib/PDL/Primitive.pd"
896             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,G,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,G,inb_badval_isnan) )) continue;,)
897             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
898             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
899             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
900             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
901             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
902             }} /* Close n */
903             #line 1346 "lib/PDL/Primitive.pd"
904             PDL_BROADCASTLOOP_END_whistogram2d_readdata
905             #line 906 "lib/PDL/Primitive-pp-whistogram2d.c"
906             }
907 0           } break;
908 0           case PDL_CD: {
909 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_CDouble,C,PDL_CDouble,C,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          
910             {
911             #line 1334 "lib/PDL/Primitive.pd"
912              
913             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
914             PDL_BROADCASTLOOP_START_whistogram2d_readdata
915             #line 1337 "lib/PDL/Primitive.pd"
916             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
917             #line 1338 "lib/PDL/Primitive.pd"
918             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
919             #line 1339 "lib/PDL/Primitive.pd"
920             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,C,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,C,inb_badval_isnan) )) continue;,)
921             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
922             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
923             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
924             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
925             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
926             }} /* Close n */
927             #line 1346 "lib/PDL/Primitive.pd"
928             PDL_BROADCASTLOOP_END_whistogram2d_readdata
929             #line 930 "lib/PDL/Primitive-pp-whistogram2d.c"
930             }
931 0           } break;
932 0           case PDL_CLD: {
933 0 0         PDL_DECLARE_PARAMS_whistogram2d_1(PDL_CLDouble,H,PDL_CLDouble,H,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          
934             {
935             #line 1334 "lib/PDL/Primitive.pd"
936              
937             register double mina = __params->mina, minb = __params->minb, stepa = __params->stepa, stepb = __params->stepb;
938             PDL_BROADCASTLOOP_START_whistogram2d_readdata
939             #line 1337 "lib/PDL/Primitive.pd"
940             {/* Open ma */ PDL_EXPAND2(register PDL_Indx ma=0, __ma_stop=(__ma_size)); for(; ma<__ma_stop; ma+=1) {{/* Open mb */ PDL_EXPAND2(register PDL_Indx mb=0, __mb_stop=(__mb_size)); for(; mb<__mb_stop; mb+=1) { (hist_datap)[0+(__inc_hist_ma*(ma))+(__inc_hist_mb*(mb))] = 0; }} /* Close ma */}} /* Close mb */
941             #line 1338 "lib/PDL/Primitive.pd"
942             {/* Open n */ PDL_EXPAND2(register PDL_Indx n=0, __n_stop=(__n_size)); for(; n<__n_stop; n+=1) {
943             #line 1339 "lib/PDL/Primitive.pd"
944             PDL_IF_BAD(if (!( !PDL_ISBAD2((ina_datap)[0+(__inc_ina_n*(n))],ina_badval,H,ina_badval_isnan) && !PDL_ISBAD2((inb_datap)[0+(__inc_inb_n*(n))],inb_badval,H,inb_badval_isnan) )) continue;,)
945             PDL_Indx ja = round((((ina_datap)[0+(__inc_ina_n*(n))]-mina)/stepa)-0.5);
946             PDL_Indx jb = round((((inb_datap)[0+(__inc_inb_n*(n))]-minb)/stepb)-0.5);
947             ja = PDLMIN(PDLMAX(ja, 0), __privtrans->ind_sizes[0]-1);
948             jb = PDLMIN(PDLMAX(jb, 0), __privtrans->ind_sizes[1]-1);
949             ((hist_datap)[0+(__inc_hist_ma*(ja))+(__inc_hist_mb*(jb))])+= (wt_datap)[0+(__inc_wt_n*(n))];
950             }} /* Close n */
951             #line 1346 "lib/PDL/Primitive.pd"
952             PDL_BROADCASTLOOP_END_whistogram2d_readdata
953             #line 954 "lib/PDL/Primitive-pp-whistogram2d.c"
954             }
955 0           } break;
956 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in whistogram2d: unhandled datatype(%d), only handles (ABSULKNPQFDEGCH)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
957             }
958             #undef PDL_IF_BAD
959             }
960 0           return PDL_err;
961             }
962              
963             static pdl_datatypes pdl_whistogram2d_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 };
964             static PDL_Indx pdl_whistogram2d_vtable_realdims[] = { 1, 1, 1, 2 };
965             static char *pdl_whistogram2d_vtable_parnames[] = { "ina","inb","wt","hist" };
966             static short pdl_whistogram2d_vtable_parflags[] = {
967             0,
968             0,
969             PDL_PARAM_ISTPLUS|PDL_PARAM_ISTYPED,
970             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISTPLUS|PDL_PARAM_ISTYPED|PDL_PARAM_ISWRITE
971             };
972             static pdl_datatypes pdl_whistogram2d_vtable_partypes[] = { -1, -1, PDL_F, PDL_F };
973             static PDL_Indx pdl_whistogram2d_vtable_realdims_starts[] = { 0, 1, 2, 3 };
974             static PDL_Indx pdl_whistogram2d_vtable_realdims_ind_ids[] = { 2, 2, 2, 0, 1 };
975             static char *pdl_whistogram2d_vtable_indnames[] = { "ma","mb","n" };
976             pdl_transvtable pdl_whistogram2d_vtable = {
977             PDL_TRANS_DO_BROADCAST|PDL_TRANS_BADPROCESS, 0, pdl_whistogram2d_vtable_gentypes, 3, 4, NULL /*CORE21*/,
978             pdl_whistogram2d_vtable_realdims, pdl_whistogram2d_vtable_parnames,
979             pdl_whistogram2d_vtable_parflags, pdl_whistogram2d_vtable_partypes,
980             pdl_whistogram2d_vtable_realdims_starts, pdl_whistogram2d_vtable_realdims_ind_ids, 5,
981             3, pdl_whistogram2d_vtable_indnames,
982             pdl_whistogram2d_redodims, pdl_whistogram2d_readdata, NULL,
983             NULL,
984             sizeof(pdl_params_whistogram2d),"PDL::Primitive::whistogram2d"
985             };
986              
987              
988 0           pdl_error pdl_run_whistogram2d(pdl *ina,pdl *inb,pdl *wt,pdl *hist,double stepa,double mina,IV masize,double stepb,double minb,IV mbsize) {
989 0           pdl_error PDL_err = {0, NULL, 0};
990 0 0         if (!PDL) return (pdl_error){PDL_EFATAL, "PDL core struct is NULL, can't continue",0};
991 0           pdl_trans *__privtrans = PDL->create_trans(&pdl_whistogram2d_vtable);
992 0 0         if (!__privtrans) return PDL->make_error_simple(PDL_EFATAL, "Couldn't create trans");
993 0           pdl_params_whistogram2d *__params = __privtrans->params;
994 0           __privtrans->pdls[0] = ina;
995 0           __privtrans->pdls[1] = inb;
996 0           __privtrans->pdls[2] = wt;
997 0           __privtrans->pdls[3] = hist;
998 0 0         PDL_RETERROR(PDL_err, PDL->type_coerce(__privtrans));
999 0           (__params->stepa) = (stepa); /* CType.get_copy */
1000 0           (__params->mina) = (mina); /* CType.get_copy */
1001 0           (__params->masize) = (masize); /* CType.get_copy */
1002 0           (__params->stepb) = (stepb); /* CType.get_copy */
1003 0           (__params->minb) = (minb); /* CType.get_copy */
1004 0           (__params->mbsize) = (mbsize); /* CType.get_copy */
1005 0 0         PDL_RETERROR(PDL_err, PDL->make_trans_mutual(__privtrans));
1006 0           return PDL_err;
1007             }