File Coverage

lib/PDL/Bad-pp-setvaltobad.c
Criterion Covered Total %
statement 156 157 99.3
branch 332 574 57.8
condition n/a
subroutine n/a
pod n/a
total 488 731 66.7


line stmt bran cond sub pod time code
1              
2             #line 453 "lib/PDL/PP.pm"
3             /*
4             * THIS FILE WAS GENERATED BY PDL::PP from lib/PDL/Bad.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_Bad
21             extern Core* PDL; /* Structure hold core C functions */
22             #line 23 "lib/PDL/Bad-pp-setvaltobad.c"
23              
24             #include
25              
26             #line 1846 "lib/PDL/PP.pm"
27             typedef struct pdl_params_setvaltobad {
28             #line 29 "lib/PDL/Bad-pp-setvaltobad.c"
29             double value;
30             } pdl_params_setvaltobad;
31              
32              
33             #line 1857 "lib/PDL/PP.pm"
34             pdl_error pdl_setvaltobad_readdata(pdl_trans *__privtrans) {
35             pdl_error PDL_err = {0, NULL, 0};
36             #line 37 "lib/PDL/Bad-pp-setvaltobad.c"
37 121           pdl_params_setvaltobad *__params = __privtrans->params; (void)__params;
38 121 50         if (!__privtrans->broadcast.incs) return PDL->make_error(PDL_EUSERERROR, "Error in setvaltobad:" "broadcast.incs NULL");
39             /* broadcastloop declarations */
40             int __brcloopval;
41             register PDL_Indx __tind0,__tind1; /* counters along dim */
42 121           register PDL_Indx __tnpdls = __privtrans->broadcast.npdls;
43             /* dims here are how many steps along those dims */
44 121           register PDL_Indx __tinc0_a = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,0);
45 121           register PDL_Indx __tinc0_b = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,0);
46 121           register PDL_Indx __tinc1_a = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,1);
47 121           register PDL_Indx __tinc1_b = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,1);
48             #define PDL_BROADCASTLOOP_START_setvaltobad_readdata PDL_BROADCASTLOOP_START( \
49             readdata, \
50             __privtrans->broadcast, \
51             __privtrans->vtable, \
52             a_datap += __offsp[0]; \
53             b_datap += __offsp[1]; \
54             , \
55             ( ,a_datap += __tinc1_a - __tinc0_a * __tdims0 \
56             ,b_datap += __tinc1_b - __tinc0_b * __tdims0 \
57             ), \
58             ( ,a_datap += __tinc0_a \
59             ,b_datap += __tinc0_b \
60             ) \
61             )
62             #define PDL_BROADCASTLOOP_END_setvaltobad_readdata PDL_BROADCASTLOOP_END( \
63             __privtrans->broadcast, \
64             a_datap -= __tinc1_a * __tdims1 + __offsp[0]; \
65             b_datap -= __tinc1_b * __tdims1 + __offsp[1]; \
66             )
67             #ifndef PDL_DECLARE_PARAMS_setvaltobad_1
68             #define PDL_DECLARE_PARAMS_setvaltobad_1(PDL_TYPE_OP,PDL_PPSYM_OP) \
69             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, a, (__privtrans->pdls[0]), 1, PDL_PPSYM_OP) \
70             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, b, (__privtrans->pdls[1]), 1, PDL_PPSYM_OP)
71             #endif
72             #define PDL_IF_BAD(t,f) f
73 121           switch (__privtrans->__datatype) { /* Start generic switch */
74 6           case PDL_SB: {
75 6 50         PDL_DECLARE_PARAMS_setvaltobad_1(PDL_SByte,A)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
76             {
77 36 50         PDL_BROADCASTLOOP_START_setvaltobad_readdata
    50          
    50          
    50          
    50          
    100          
    100          
78 18 100         if ( (a_datap)[0] == (PDL_SByte) __params->value ) {
79 8           (b_datap)[0]=b_badval;
80             } else {
81 10           (b_datap)[0] = (a_datap)[0];
82             }
83 6 50         PDL_BROADCASTLOOP_END_setvaltobad_readdata
    50          
84 6           __privtrans->pdls[1]->state |= PDL_BADVAL;
85             }
86 6           } break;
87 6           case PDL_B: {
88 6 50         PDL_DECLARE_PARAMS_setvaltobad_1(PDL_Byte,B)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
89             {
90 36 50         PDL_BROADCASTLOOP_START_setvaltobad_readdata
    50          
    50          
    50          
    50          
    100          
    100          
91 18 100         if ( (a_datap)[0] == (PDL_Byte) __params->value ) {
92 8           (b_datap)[0]=b_badval;
93             } else {
94 10           (b_datap)[0] = (a_datap)[0];
95             }
96 6 50         PDL_BROADCASTLOOP_END_setvaltobad_readdata
    50          
97 6           __privtrans->pdls[1]->state |= PDL_BADVAL;
98             }
99 6           } break;
100 6           case PDL_S: {
101 6 50         PDL_DECLARE_PARAMS_setvaltobad_1(PDL_Short,S)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
102             {
103 36 50         PDL_BROADCASTLOOP_START_setvaltobad_readdata
    50          
    50          
    50          
    50          
    100          
    100          
104 18 100         if ( (a_datap)[0] == (PDL_Short) __params->value ) {
105 8           (b_datap)[0]=b_badval;
106             } else {
107 10           (b_datap)[0] = (a_datap)[0];
108             }
109 6 50         PDL_BROADCASTLOOP_END_setvaltobad_readdata
    50          
110 6           __privtrans->pdls[1]->state |= PDL_BADVAL;
111             }
112 6           } break;
113 6           case PDL_US: {
114 6 50         PDL_DECLARE_PARAMS_setvaltobad_1(PDL_Ushort,U)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
115             {
116 36 50         PDL_BROADCASTLOOP_START_setvaltobad_readdata
    50          
    50          
    50          
    50          
    100          
    100          
117 18 100         if ( (a_datap)[0] == (PDL_Ushort) __params->value ) {
118 8           (b_datap)[0]=b_badval;
119             } else {
120 10           (b_datap)[0] = (a_datap)[0];
121             }
122 6 50         PDL_BROADCASTLOOP_END_setvaltobad_readdata
    50          
123 6           __privtrans->pdls[1]->state |= PDL_BADVAL;
124             }
125 6           } break;
126 12           case PDL_L: {
127 12 50         PDL_DECLARE_PARAMS_setvaltobad_1(PDL_Long,L)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
128             {
129 90 50         PDL_BROADCASTLOOP_START_setvaltobad_readdata
    50          
    50          
    50          
    50          
    100          
    100          
130 54 100         if ( (a_datap)[0] == (PDL_Long) __params->value ) {
131 14           (b_datap)[0]=b_badval;
132             } else {
133 40           (b_datap)[0] = (a_datap)[0];
134             }
135 12 50         PDL_BROADCASTLOOP_END_setvaltobad_readdata
    50          
136 12           __privtrans->pdls[1]->state |= PDL_BADVAL;
137             }
138 12           } break;
139 6           case PDL_UL: {
140 6 50         PDL_DECLARE_PARAMS_setvaltobad_1(PDL_ULong,K)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
141             {
142 36 50         PDL_BROADCASTLOOP_START_setvaltobad_readdata
    50          
    50          
    50          
    50          
    100          
    100          
143 18 100         if ( (a_datap)[0] == (PDL_ULong) __params->value ) {
144 8           (b_datap)[0]=b_badval;
145             } else {
146 10           (b_datap)[0] = (a_datap)[0];
147             }
148 6 50         PDL_BROADCASTLOOP_END_setvaltobad_readdata
    50          
149 6           __privtrans->pdls[1]->state |= PDL_BADVAL;
150             }
151 6           } break;
152 6           case PDL_IND: {
153 6 50         PDL_DECLARE_PARAMS_setvaltobad_1(PDL_Indx,N)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
154             {
155 36 50         PDL_BROADCASTLOOP_START_setvaltobad_readdata
    50          
    50          
    50          
    50          
    100          
    100          
156 18 100         if ( (a_datap)[0] == (PDL_Indx) __params->value ) {
157 8           (b_datap)[0]=b_badval;
158             } else {
159 10           (b_datap)[0] = (a_datap)[0];
160             }
161 6 50         PDL_BROADCASTLOOP_END_setvaltobad_readdata
    50          
162 6           __privtrans->pdls[1]->state |= PDL_BADVAL;
163             }
164 6           } break;
165 6           case PDL_ULL: {
166 6 50         PDL_DECLARE_PARAMS_setvaltobad_1(PDL_ULongLong,P)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
167             {
168 36 50         PDL_BROADCASTLOOP_START_setvaltobad_readdata
    50          
    50          
    50          
    50          
    100          
    100          
169 18 100         if ( (a_datap)[0] == (PDL_ULongLong) __params->value ) {
170 8           (b_datap)[0]=b_badval;
171             } else {
172 10           (b_datap)[0] = (a_datap)[0];
173             }
174 6 50         PDL_BROADCASTLOOP_END_setvaltobad_readdata
    50          
175 6           __privtrans->pdls[1]->state |= PDL_BADVAL;
176             }
177 6           } break;
178 8           case PDL_LL: {
179 8 50         PDL_DECLARE_PARAMS_setvaltobad_1(PDL_LongLong,Q)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
180             {
181 48 50         PDL_BROADCASTLOOP_START_setvaltobad_readdata
    50          
    50          
    50          
    50          
    100          
    100          
182 24 100         if ( (a_datap)[0] == (PDL_LongLong) __params->value ) {
183 10           (b_datap)[0]=b_badval;
184             } else {
185 14           (b_datap)[0] = (a_datap)[0];
186             }
187 8 50         PDL_BROADCASTLOOP_END_setvaltobad_readdata
    50          
188 8           __privtrans->pdls[1]->state |= PDL_BADVAL;
189             }
190 8           } break;
191 7           case PDL_F: {
192 7 50         PDL_DECLARE_PARAMS_setvaltobad_1(PDL_Float,F)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
193             {
194 43 50         PDL_BROADCASTLOOP_START_setvaltobad_readdata
    50          
    50          
    50          
    50          
    100          
    100          
195 22 100         if ( (a_datap)[0] == (PDL_Float) __params->value ) {
196 9           (b_datap)[0]=b_badval;
197             } else {
198 13           (b_datap)[0] = (a_datap)[0];
199             }
200 7 50         PDL_BROADCASTLOOP_END_setvaltobad_readdata
    50          
201 7           __privtrans->pdls[1]->state |= PDL_BADVAL;
202             }
203 7           } break;
204 28           case PDL_D: {
205 28 50         PDL_DECLARE_PARAMS_setvaltobad_1(PDL_Double,D)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
206             {
207 228 50         PDL_BROADCASTLOOP_START_setvaltobad_readdata
    50          
    50          
    50          
    50          
    100          
    100          
208 144 100         if ( (a_datap)[0] == (PDL_Double) __params->value ) {
209 14           (b_datap)[0]=b_badval;
210             } else {
211 130           (b_datap)[0] = (a_datap)[0];
212             }
213 28 50         PDL_BROADCASTLOOP_END_setvaltobad_readdata
    50          
214 28           __privtrans->pdls[1]->state |= PDL_BADVAL;
215             }
216 28           } break;
217 6           case PDL_LD: {
218 6 50         PDL_DECLARE_PARAMS_setvaltobad_1(PDL_LDouble,E)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
219             {
220 36 50         PDL_BROADCASTLOOP_START_setvaltobad_readdata
    50          
    50          
    50          
    50          
    100          
    100          
221 18 100         if ( (a_datap)[0] == (PDL_LDouble) __params->value ) {
222 8           (b_datap)[0]=b_badval;
223             } else {
224 10           (b_datap)[0] = (a_datap)[0];
225             }
226 6 50         PDL_BROADCASTLOOP_END_setvaltobad_readdata
    50          
227 6           __privtrans->pdls[1]->state |= PDL_BADVAL;
228             }
229 6           } break;
230 6           case PDL_CF: {
231 6 50         PDL_DECLARE_PARAMS_setvaltobad_1(PDL_CFloat,G)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
232             {
233 36 50         PDL_BROADCASTLOOP_START_setvaltobad_readdata
    50          
    50          
    50          
    50          
    100          
    100          
234 18 100         if ( (a_datap)[0] == (PDL_CFloat) __params->value ) {
235 8           (b_datap)[0]=b_badval;
236             } else {
237 10           (b_datap)[0] = (a_datap)[0];
238             }
239 6 50         PDL_BROADCASTLOOP_END_setvaltobad_readdata
    50          
240 6           __privtrans->pdls[1]->state |= PDL_BADVAL;
241             }
242 6           } break;
243 6           case PDL_CD: {
244 6 50         PDL_DECLARE_PARAMS_setvaltobad_1(PDL_CDouble,C)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
245             {
246 36 50         PDL_BROADCASTLOOP_START_setvaltobad_readdata
    50          
    50          
    50          
    50          
    100          
    100          
247 18 100         if ( (a_datap)[0] == (PDL_CDouble) __params->value ) {
248 8           (b_datap)[0]=b_badval;
249             } else {
250 10           (b_datap)[0] = (a_datap)[0];
251             }
252 6 50         PDL_BROADCASTLOOP_END_setvaltobad_readdata
    50          
253 6           __privtrans->pdls[1]->state |= PDL_BADVAL;
254             }
255 6           } break;
256 6           case PDL_CLD: {
257 6 50         PDL_DECLARE_PARAMS_setvaltobad_1(PDL_CLDouble,H)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
258             {
259 36 50         PDL_BROADCASTLOOP_START_setvaltobad_readdata
    50          
    50          
    50          
    50          
    100          
    100          
260 18 100         if ( (a_datap)[0] == (PDL_CLDouble) __params->value ) {
261 8           (b_datap)[0]=b_badval;
262             } else {
263 10           (b_datap)[0] = (a_datap)[0];
264             }
265 6 50         PDL_BROADCASTLOOP_END_setvaltobad_readdata
    50          
266 6           __privtrans->pdls[1]->state |= PDL_BADVAL;
267             }
268 6           } break;
269 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in setvaltobad: unhandled datatype(%d), only handles (ABSULKNPQFDEGCH)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
270             }
271             #undef PDL_IF_BAD
272 121           return PDL_err;
273             }
274              
275             static pdl_datatypes pdl_setvaltobad_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 };
276             static PDL_Indx pdl_setvaltobad_vtable_realdims[] = { 0, 0 };
277             static char *pdl_setvaltobad_vtable_parnames[] = { "a","b" };
278             static short pdl_setvaltobad_vtable_parflags[] = {
279             0,
280             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISWRITE
281             };
282             static pdl_datatypes pdl_setvaltobad_vtable_partypes[] = { -1, -1 };
283             static PDL_Indx pdl_setvaltobad_vtable_realdims_starts[] = { 0, 0 };
284             static PDL_Indx pdl_setvaltobad_vtable_realdims_ind_ids[] = { 0 };
285             static char *pdl_setvaltobad_vtable_indnames[] = { "" };
286             pdl_transvtable pdl_setvaltobad_vtable = {
287             PDL_TRANS_DO_BROADCAST|PDL_TRANS_BADPROCESS, 0, pdl_setvaltobad_vtable_gentypes, 1, 2, NULL /*CORE21*/,
288             pdl_setvaltobad_vtable_realdims, pdl_setvaltobad_vtable_parnames,
289             pdl_setvaltobad_vtable_parflags, pdl_setvaltobad_vtable_partypes,
290             pdl_setvaltobad_vtable_realdims_starts, pdl_setvaltobad_vtable_realdims_ind_ids, 0,
291             0, pdl_setvaltobad_vtable_indnames,
292             NULL, pdl_setvaltobad_readdata, NULL,
293             NULL,
294             sizeof(pdl_params_setvaltobad),"PDL::Bad::setvaltobad"
295             };
296              
297              
298 121           pdl_error pdl_run_setvaltobad(pdl *a,pdl *b,double value) {
299 121           pdl_error PDL_err = {0, NULL, 0};
300 121 50         if (!PDL) return (pdl_error){PDL_EFATAL, "PDL core struct is NULL, can't continue",0};
301 121           pdl_trans *__privtrans = PDL->create_trans(&pdl_setvaltobad_vtable);
302 121 50         if (!__privtrans) return PDL->make_error_simple(PDL_EFATAL, "Couldn't create trans");
303 121           pdl_params_setvaltobad *__params = __privtrans->params;
304 121           __privtrans->pdls[0] = a;
305 121           __privtrans->pdls[1] = b;
306 121 50         PDL_RETERROR(PDL_err, PDL->type_coerce(__privtrans));
307 121           (__params->value) = (value); /* CType.get_copy */
308 121 50         PDL_RETERROR(PDL_err, PDL->make_trans_mutual(__privtrans));
309 121           return PDL_err;
310             }