File Coverage

lib/PDL/Stats/Kmeans-pp-_d_p2l.c
Criterion Covered Total %
statement 43 75 57.3
branch 45 380 11.8
condition n/a
subroutine n/a
pod n/a
total 88 455 19.3


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/Stats/Kmeans.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_Stats_Kmeans
21             extern Core* PDL; /* Structure hold core C functions */
22             #line 23 "lib/PDL/Stats/Kmeans-pp-_d_p2l.c"
23              
24             #include
25             #include
26             #include
27              
28              
29             #line 1857 "lib/PDL/PP.pm"
30             pdl_error pdl__d_p2l_readdata(pdl_trans *__privtrans) {
31             pdl_error PDL_err = {0, NULL, 0};
32             #line 33 "lib/PDL/Stats/Kmeans-pp-_d_p2l.c"
33 1 50         if (!__privtrans->broadcast.incs) return PDL->make_error(PDL_EUSERERROR, "Error in _d_p2l:" "broadcast.incs NULL");
34             /* broadcastloop declarations */
35             int __brcloopval;
36             register PDL_Indx __tind0,__tind1; /* counters along dim */
37 1           register PDL_Indx __tnpdls = __privtrans->broadcast.npdls;
38             /* dims here are how many steps along those dims */
39 1           register PDL_Indx __tinc0_xc = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,0);
40 1           register PDL_Indx __tinc0_yc = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,0);
41 1           register PDL_Indx __tinc0_xa = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,2,0);
42 1           register PDL_Indx __tinc0_ya = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,3,0);
43 1           register PDL_Indx __tinc0_xb = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,4,0);
44 1           register PDL_Indx __tinc0_yb = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,5,0);
45 1           register PDL_Indx __tinc0_d = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,6,0);
46 1           register PDL_Indx __tinc1_xc = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,1);
47 1           register PDL_Indx __tinc1_yc = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,1);
48 1           register PDL_Indx __tinc1_xa = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,2,1);
49 1           register PDL_Indx __tinc1_ya = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,3,1);
50 1           register PDL_Indx __tinc1_xb = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,4,1);
51 1           register PDL_Indx __tinc1_yb = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,5,1);
52 1           register PDL_Indx __tinc1_d = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,6,1);
53             #define PDL_BROADCASTLOOP_START__d_p2l_readdata PDL_BROADCASTLOOP_START( \
54             readdata, \
55             __privtrans->broadcast, \
56             __privtrans->vtable, \
57             xc_datap += __offsp[0]; \
58             yc_datap += __offsp[1]; \
59             xa_datap += __offsp[2]; \
60             ya_datap += __offsp[3]; \
61             xb_datap += __offsp[4]; \
62             yb_datap += __offsp[5]; \
63             d_datap += __offsp[6]; \
64             , \
65             ( ,xc_datap += __tinc1_xc - __tinc0_xc * __tdims0 \
66             ,yc_datap += __tinc1_yc - __tinc0_yc * __tdims0 \
67             ,xa_datap += __tinc1_xa - __tinc0_xa * __tdims0 \
68             ,ya_datap += __tinc1_ya - __tinc0_ya * __tdims0 \
69             ,xb_datap += __tinc1_xb - __tinc0_xb * __tdims0 \
70             ,yb_datap += __tinc1_yb - __tinc0_yb * __tdims0 \
71             ,d_datap += __tinc1_d - __tinc0_d * __tdims0 \
72             ), \
73             ( ,xc_datap += __tinc0_xc \
74             ,yc_datap += __tinc0_yc \
75             ,xa_datap += __tinc0_xa \
76             ,ya_datap += __tinc0_ya \
77             ,xb_datap += __tinc0_xb \
78             ,yb_datap += __tinc0_yb \
79             ,d_datap += __tinc0_d \
80             ) \
81             )
82             #define PDL_BROADCASTLOOP_END__d_p2l_readdata PDL_BROADCASTLOOP_END( \
83             __privtrans->broadcast, \
84             xc_datap -= __tinc1_xc * __tdims1 + __offsp[0]; \
85             yc_datap -= __tinc1_yc * __tdims1 + __offsp[1]; \
86             xa_datap -= __tinc1_xa * __tdims1 + __offsp[2]; \
87             ya_datap -= __tinc1_ya * __tdims1 + __offsp[3]; \
88             xb_datap -= __tinc1_xb * __tdims1 + __offsp[4]; \
89             yb_datap -= __tinc1_yb * __tdims1 + __offsp[5]; \
90             d_datap -= __tinc1_d * __tdims1 + __offsp[6]; \
91             )
92             #ifndef PDL_DECLARE_PARAMS__d_p2l_1
93             #define PDL_DECLARE_PARAMS__d_p2l_1(PDL_TYPE_OP,PDL_PPSYM_OP) \
94             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, xc, (__privtrans->pdls[0]), 1, PDL_PPSYM_OP) \
95             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, yc, (__privtrans->pdls[1]), 1, PDL_PPSYM_OP) \
96             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, xa, (__privtrans->pdls[2]), 1, PDL_PPSYM_OP) \
97             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, ya, (__privtrans->pdls[3]), 1, PDL_PPSYM_OP) \
98             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, xb, (__privtrans->pdls[4]), 1, PDL_PPSYM_OP) \
99             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, yb, (__privtrans->pdls[5]), 1, PDL_PPSYM_OP) \
100             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, d, (__privtrans->pdls[6]), 1, PDL_PPSYM_OP)
101             #endif
102 1 50         if ( __privtrans->bvalflag ) { /* ** do 'bad' Code ** */
103             #define PDL_BAD_CODE
104             #define PDL_IF_BAD(t,f) t
105 0           switch (__privtrans->__datatype) { /* Start generic switch */
106 0           case PDL_F: {
107 0 0         PDL_DECLARE_PARAMS__d_p2l_1(PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
108 0 0         PDL_BROADCASTLOOP_START__d_p2l_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
109 0 0         PDL_IF_BAD(if (PDL_ISBAD2((xc_datap)[0],xc_badval,F,xc_badval_isnan) || PDL_ISBAD2((yc_datap)[0],yc_badval,F,yc_badval_isnan) || PDL_ISBAD2((xa_datap)[0],xa_badval,F,xa_badval_isnan) || PDL_ISBAD2((ya_datap)[0],ya_badval,F,ya_badval_isnan) || PDL_ISBAD2((xb_datap)[0],xb_badval,F,xb_badval_isnan) || PDL_ISBAD2((yb_datap)[0],yb_badval,F,yb_badval_isnan) ) { (d_datap)[0]=d_badval; continue; },)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
110             PDL_Float xba, yba;
111 0           xba = (xb_datap)[0] - (xa_datap)[0];
112 0           yba = (yb_datap)[0] - (ya_datap)[0];
113 0           (d_datap)[0] = fabs( xba * ((ya_datap)[0] - (yc_datap)[0]) - ((xa_datap)[0] - (xc_datap)[0]) * yba )
114 0           / hypot( xba, yba );
115 0 0         }PDL_BROADCASTLOOP_END__d_p2l_readdata
    0          
116 0           } break;
117 0           case PDL_D: {
118 0 0         PDL_DECLARE_PARAMS__d_p2l_1(PDL_Double,D)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
119 0 0         PDL_BROADCASTLOOP_START__d_p2l_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
120 0 0         PDL_IF_BAD(if (PDL_ISBAD2((xc_datap)[0],xc_badval,D,xc_badval_isnan) || PDL_ISBAD2((yc_datap)[0],yc_badval,D,yc_badval_isnan) || PDL_ISBAD2((xa_datap)[0],xa_badval,D,xa_badval_isnan) || PDL_ISBAD2((ya_datap)[0],ya_badval,D,ya_badval_isnan) || PDL_ISBAD2((xb_datap)[0],xb_badval,D,xb_badval_isnan) || PDL_ISBAD2((yb_datap)[0],yb_badval,D,yb_badval_isnan) ) { (d_datap)[0]=d_badval; continue; },)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
121             PDL_Double xba, yba;
122 0           xba = (xb_datap)[0] - (xa_datap)[0];
123 0           yba = (yb_datap)[0] - (ya_datap)[0];
124 0           (d_datap)[0] = fabs( xba * ((ya_datap)[0] - (yc_datap)[0]) - ((xa_datap)[0] - (xc_datap)[0]) * yba )
125 0           / hypot( xba, yba );
126 0 0         }PDL_BROADCASTLOOP_END__d_p2l_readdata
    0          
127 0           } break;
128 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in _d_p2l: unhandled datatype(%d), only handles (FD)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
129             }
130             #undef PDL_BAD_CODE
131             #undef PDL_IF_BAD
132             } else { /* ** else do 'good' Code ** */
133             #define PDL_IF_BAD(t,f) f
134 1           switch (__privtrans->__datatype) { /* Start generic switch */
135 0           case PDL_F: {
136 0 0         PDL_DECLARE_PARAMS__d_p2l_1(PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
137 0 0         PDL_BROADCASTLOOP_START__d_p2l_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
138             PDL_IF_BAD(if (PDL_ISBAD2((xc_datap)[0],xc_badval,F,xc_badval_isnan) || PDL_ISBAD2((yc_datap)[0],yc_badval,F,yc_badval_isnan) || PDL_ISBAD2((xa_datap)[0],xa_badval,F,xa_badval_isnan) || PDL_ISBAD2((ya_datap)[0],ya_badval,F,ya_badval_isnan) || PDL_ISBAD2((xb_datap)[0],xb_badval,F,xb_badval_isnan) || PDL_ISBAD2((yb_datap)[0],yb_badval,F,yb_badval_isnan) ) { (d_datap)[0]=d_badval; continue; },)
139             PDL_Float xba, yba;
140 0           xba = (xb_datap)[0] - (xa_datap)[0];
141 0           yba = (yb_datap)[0] - (ya_datap)[0];
142 0           (d_datap)[0] = fabs( xba * ((ya_datap)[0] - (yc_datap)[0]) - ((xa_datap)[0] - (xc_datap)[0]) * yba )
143 0           / hypot( xba, yba );
144 0 0         }PDL_BROADCASTLOOP_END__d_p2l_readdata
    0          
145 0           } break;
146 1           case PDL_D: {
147 1 50         PDL_DECLARE_PARAMS__d_p2l_1(PDL_Double,D)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
148 5 50         PDL_BROADCASTLOOP_START__d_p2l_readdata {
    50          
    50          
    50          
    50          
    100          
    100          
149             PDL_IF_BAD(if (PDL_ISBAD2((xc_datap)[0],xc_badval,D,xc_badval_isnan) || PDL_ISBAD2((yc_datap)[0],yc_badval,D,yc_badval_isnan) || PDL_ISBAD2((xa_datap)[0],xa_badval,D,xa_badval_isnan) || PDL_ISBAD2((ya_datap)[0],ya_badval,D,ya_badval_isnan) || PDL_ISBAD2((xb_datap)[0],xb_badval,D,xb_badval_isnan) || PDL_ISBAD2((yb_datap)[0],yb_badval,D,yb_badval_isnan) ) { (d_datap)[0]=d_badval; continue; },)
150             PDL_Double xba, yba;
151 2           xba = (xb_datap)[0] - (xa_datap)[0];
152 2           yba = (yb_datap)[0] - (ya_datap)[0];
153 2           (d_datap)[0] = fabs( xba * ((ya_datap)[0] - (yc_datap)[0]) - ((xa_datap)[0] - (xc_datap)[0]) * yba )
154 2           / hypot( xba, yba );
155 1 50         }PDL_BROADCASTLOOP_END__d_p2l_readdata
    50          
156 1           } break;
157 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in _d_p2l: unhandled datatype(%d), only handles (FD)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
158             }
159             #undef PDL_IF_BAD
160             }
161 1           return PDL_err;
162             }
163              
164             static pdl_datatypes pdl__d_p2l_vtable_gentypes[] = { PDL_F, PDL_D, -1 };
165             static PDL_Indx pdl__d_p2l_vtable_realdims[] = { 0, 0, 0, 0, 0, 0, 0 };
166             static char *pdl__d_p2l_vtable_parnames[] = { "xc","yc","xa","ya","xb","yb","d" };
167             static short pdl__d_p2l_vtable_parflags[] = {
168             0,
169             0,
170             0,
171             0,
172             0,
173             0,
174             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISWRITE
175             };
176             static pdl_datatypes pdl__d_p2l_vtable_partypes[] = { -1, -1, -1, -1, -1, -1, -1 };
177             static PDL_Indx pdl__d_p2l_vtable_realdims_starts[] = { 0, 0, 0, 0, 0, 0, 0 };
178             static PDL_Indx pdl__d_p2l_vtable_realdims_ind_ids[] = { 0 };
179             static char *pdl__d_p2l_vtable_indnames[] = { "" };
180             pdl_transvtable pdl__d_p2l_vtable = {
181             PDL_TRANS_DO_BROADCAST|PDL_TRANS_BADPROCESS, 0, pdl__d_p2l_vtable_gentypes, 6, 7, NULL /*CORE21*/,
182             pdl__d_p2l_vtable_realdims, pdl__d_p2l_vtable_parnames,
183             pdl__d_p2l_vtable_parflags, pdl__d_p2l_vtable_partypes,
184             pdl__d_p2l_vtable_realdims_starts, pdl__d_p2l_vtable_realdims_ind_ids, 0,
185             0, pdl__d_p2l_vtable_indnames,
186             NULL, pdl__d_p2l_readdata, NULL,
187             NULL,
188             0,"PDL::Stats::Kmeans::_d_p2l"
189             };
190              
191              
192 1           pdl_error pdl_run__d_p2l(pdl *xc,pdl *yc,pdl *xa,pdl *ya,pdl *xb,pdl *yb,pdl *d) {
193 1           pdl_error PDL_err = {0, NULL, 0};
194 1 50         if (!PDL) return (pdl_error){PDL_EFATAL, "PDL core struct is NULL, can't continue",0};
195 1           pdl_trans *__privtrans = PDL->create_trans(&pdl__d_p2l_vtable);
196 1 50         if (!__privtrans) return PDL->make_error_simple(PDL_EFATAL, "Couldn't create trans");
197 1           __privtrans->pdls[0] = xc;
198 1           __privtrans->pdls[1] = yc;
199 1           __privtrans->pdls[2] = xa;
200 1           __privtrans->pdls[3] = ya;
201 1           __privtrans->pdls[4] = xb;
202 1           __privtrans->pdls[5] = yb;
203 1           __privtrans->pdls[6] = d;
204 1 50         PDL_RETERROR(PDL_err, PDL->type_coerce(__privtrans));
205 1 50         PDL_RETERROR(PDL_err, PDL->make_trans_mutual(__privtrans));
206 1           return PDL_err;
207             }