File Coverage

lib/PDL/Primitive-pp-histogram2d.c
Criterion Covered Total %
statement 50 211 23.7
branch 27 1082 2.5
condition n/a
subroutine n/a
pod n/a
total 77 1293 5.9


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