File Coverage

lib/PDL/Ops-pp-conj.c
Criterion Covered Total %
statement 29 52 55.7
branch 52 264 19.7
condition n/a
subroutine n/a
pod n/a
total 81 316 25.6


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/Ops.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_Ops
21             extern Core* PDL; /* Structure hold core C functions */
22             #line 23 "lib/PDL/Ops-pp-conj.c"
23              
24             #include
25              
26             #define MOD(X,N) (((N) == 0) ? 0 : ( (X) - (PDL_ABS(N)) * ((long long)((X)/(PDL_ABS(N))) + ( ( ((N) * ((long long)((X)/(N)))) != (X) ) ? ( ( ((N)<0) ? 1 : 0 ) + ( (((X)<0) ? -1 : 0))) : 0 ))))
27             #define BU_MOD(X,N)(((N) == 0) ? 0 : ( (X)-(N)*((uint64_t)((X)/(N))) ))
28             #define SPACE(A,B) ( ((A)<(B)) ? -1 : ((A)!=(B)) )
29              
30             #line 83 "lib/PDL/Ops.pd"
31             #define PDL_BADVAL_WARN_X(datatype, ctype, ppsym, ...) \
32             bad_anyval.type = datatype; bad_anyval.value.ppsym = PDL->bvals.ppsym;
33             #define PDL_BADVAL_WARN(var) \
34             { \
35             PDL_Anyval bad_anyval = { PDL_INVALID, {0} }; \
36             if (!(var->has_badvalue && var->badvalue.type != var->datatype)) { \
37             if (var->has_badvalue) \
38             bad_anyval = var->badvalue; \
39             else { \
40             PDL_GENERICSWITCH(PDL_TYPELIST_ALL, var->datatype, PDL_BADVAL_WARN_X, ) \
41             } \
42             } \
43             if (bad_anyval.type < 0) \
44             barf("Error getting badvalue, type=%d", bad_anyval.type); \
45             complex double bad_c; \
46             ANYVAL_TO_CTYPE(bad_c, complex double, bad_anyval); \
47             if( bad_c == 0 || bad_c == 1 ) \
48             warn(#var " badvalue is set to 0 or 1. This will cause data loss when using badvalues for comparison operators."); \
49             }
50              
51             #line 1857 "lib/PDL/PP.pm"
52             pdl_error pdl_conj_readdata(pdl_trans *__privtrans) {
53             pdl_error PDL_err = {0, NULL, 0};
54             #line 55 "lib/PDL/Ops-pp-conj.c"
55 2 50         if (!__privtrans->broadcast.incs) return PDL->make_error(PDL_EUSERERROR, "Error in conj:" "broadcast.incs NULL");
56             /* broadcastloop declarations */
57             int __brcloopval;
58             register PDL_Indx __tind0,__tind1; /* counters along dim */
59 2           register PDL_Indx __tnpdls = __privtrans->broadcast.npdls;
60             /* dims here are how many steps along those dims */
61 2           register PDL_Indx __tinc0_complexv = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,0);
62 2           register PDL_Indx __tinc0_b = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,0);
63 2           register PDL_Indx __tinc1_complexv = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,1);
64 2           register PDL_Indx __tinc1_b = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,1);
65             #define PDL_BROADCASTLOOP_START_conj_readdata PDL_BROADCASTLOOP_START( \
66             readdata, \
67             __privtrans->broadcast, \
68             __privtrans->vtable, \
69             complexv_datap += __offsp[0]; \
70             b_datap += __offsp[1]; \
71             , \
72             ( ,complexv_datap += __tinc1_complexv - __tinc0_complexv * __tdims0 \
73             ,b_datap += __tinc1_b - __tinc0_b * __tdims0 \
74             ), \
75             ( ,complexv_datap += __tinc0_complexv \
76             ,b_datap += __tinc0_b \
77             ) \
78             )
79             #define PDL_BROADCASTLOOP_END_conj_readdata PDL_BROADCASTLOOP_END( \
80             __privtrans->broadcast, \
81             complexv_datap -= __tinc1_complexv * __tdims1 + __offsp[0]; \
82             b_datap -= __tinc1_b * __tdims1 + __offsp[1]; \
83             )
84             #ifndef PDL_DECLARE_PARAMS_conj_1
85             #define PDL_DECLARE_PARAMS_conj_1(PDL_TYPE_OP,PDL_PPSYM_OP) \
86             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, complexv, (__privtrans->pdls[0]), 1, PDL_PPSYM_OP) \
87             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, b, (__privtrans->pdls[1]), 1, PDL_PPSYM_OP)
88             #endif
89 2 50         if ( __privtrans->bvalflag ) { /* ** do 'bad' Code ** */
90             #define PDL_BAD_CODE
91             #define PDL_IF_BAD(t,f) t
92 0           switch (__privtrans->__datatype) { /* Start generic switch */
93 0           case PDL_CF: {
94 0 0         PDL_DECLARE_PARAMS_conj_1(PDL_CFloat,G)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
95 0 0         PDL_BROADCASTLOOP_START_conj_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
96             #line 402 "lib/PDL/Ops.pd"
97              
98             PDL_IF_BAD(if ( PDL_ISBAD2((complexv_datap)[0],complexv_badval,G,complexv_badval_isnan) ) (b_datap)[0]=b_badval; else,)
99            
100             #line 394 "lib/PDL/Ops.pd"
101             (b_datap)[0] = conj((complexv_datap)[0]);
102             #line 103 "lib/PDL/Ops-pp-conj.c"
103              
104            
105             #line 106 "lib/PDL/Ops-pp-conj.c"
106 0 0         }PDL_BROADCASTLOOP_END_conj_readdata
    0          
107 0           } break;
108 0           case PDL_CD: {
109 0 0         PDL_DECLARE_PARAMS_conj_1(PDL_CDouble,C)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
110 0 0         PDL_BROADCASTLOOP_START_conj_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
111             #line 402 "lib/PDL/Ops.pd"
112              
113             PDL_IF_BAD(if ( PDL_ISBAD2((complexv_datap)[0],complexv_badval,C,complexv_badval_isnan) ) (b_datap)[0]=b_badval; else,)
114            
115             #line 394 "lib/PDL/Ops.pd"
116             (b_datap)[0] = conj((complexv_datap)[0]);
117             #line 118 "lib/PDL/Ops-pp-conj.c"
118              
119            
120             #line 121 "lib/PDL/Ops-pp-conj.c"
121 0 0         }PDL_BROADCASTLOOP_END_conj_readdata
    0          
122 0           } break;
123 0           case PDL_CLD: {
124 0 0         PDL_DECLARE_PARAMS_conj_1(PDL_CLDouble,H)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
125 0 0         PDL_BROADCASTLOOP_START_conj_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
126             #line 402 "lib/PDL/Ops.pd"
127              
128             PDL_IF_BAD(if ( PDL_ISBAD2((complexv_datap)[0],complexv_badval,H,complexv_badval_isnan) ) (b_datap)[0]=b_badval; else,)
129            
130             #line 394 "lib/PDL/Ops.pd"
131             (b_datap)[0] = conj((complexv_datap)[0]);
132             #line 133 "lib/PDL/Ops-pp-conj.c"
133              
134            
135             #line 136 "lib/PDL/Ops-pp-conj.c"
136 0 0         }PDL_BROADCASTLOOP_END_conj_readdata
    0          
137 0           } break;
138 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in conj: unhandled datatype(%d), only handles (GCH)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
139             }
140             #undef PDL_BAD_CODE
141             #undef PDL_IF_BAD
142             } else { /* ** else do 'good' Code ** */
143             #define PDL_IF_BAD(t,f) f
144 2           switch (__privtrans->__datatype) { /* Start generic switch */
145 0           case PDL_CF: {
146 0 0         PDL_DECLARE_PARAMS_conj_1(PDL_CFloat,G)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
147 0 0         PDL_BROADCASTLOOP_START_conj_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
148             #line 402 "lib/PDL/Ops.pd"
149              
150             PDL_IF_BAD(if ( PDL_ISBAD2((complexv_datap)[0],complexv_badval,G,complexv_badval_isnan) ) (b_datap)[0]=b_badval; else,)
151            
152             #line 394 "lib/PDL/Ops.pd"
153             (b_datap)[0] = conj((complexv_datap)[0]);
154             #line 155 "lib/PDL/Ops-pp-conj.c"
155              
156            
157             #line 158 "lib/PDL/Ops-pp-conj.c"
158 0 0         }PDL_BROADCASTLOOP_END_conj_readdata
    0          
159 0           } break;
160 1           case PDL_CD: {
161 1 50         PDL_DECLARE_PARAMS_conj_1(PDL_CDouble,C)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
162 11 50         PDL_BROADCASTLOOP_START_conj_readdata {
    50          
    50          
    50          
    50          
    100          
    100          
163             #line 402 "lib/PDL/Ops.pd"
164              
165             PDL_IF_BAD(if ( PDL_ISBAD2((complexv_datap)[0],complexv_badval,C,complexv_badval_isnan) ) (b_datap)[0]=b_badval; else,)
166            
167             #line 394 "lib/PDL/Ops.pd"
168             (b_datap)[0] = conj((complexv_datap)[0]);
169             #line 170 "lib/PDL/Ops-pp-conj.c"
170              
171            
172             #line 173 "lib/PDL/Ops-pp-conj.c"
173 1 50         }PDL_BROADCASTLOOP_END_conj_readdata
    50          
174 1           } break;
175 1           case PDL_CLD: {
176 1 50         PDL_DECLARE_PARAMS_conj_1(PDL_CLDouble,H)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
177 4 50         PDL_BROADCASTLOOP_START_conj_readdata {
    50          
    50          
    50          
    50          
    100          
    100          
178             #line 402 "lib/PDL/Ops.pd"
179              
180             PDL_IF_BAD(if ( PDL_ISBAD2((complexv_datap)[0],complexv_badval,H,complexv_badval_isnan) ) (b_datap)[0]=b_badval; else,)
181            
182             #line 394 "lib/PDL/Ops.pd"
183             (b_datap)[0] = conj((complexv_datap)[0]);
184             #line 185 "lib/PDL/Ops-pp-conj.c"
185              
186            
187             #line 188 "lib/PDL/Ops-pp-conj.c"
188 1 50         }PDL_BROADCASTLOOP_END_conj_readdata
    50          
189 1           } break;
190 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in conj: unhandled datatype(%d), only handles (GCH)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
191             }
192             #undef PDL_IF_BAD
193             }
194 2           return PDL_err;
195             }
196              
197             static pdl_datatypes pdl_conj_vtable_gentypes[] = { PDL_CF, PDL_CD, PDL_CLD, -1 };
198             static PDL_Indx pdl_conj_vtable_realdims[] = { 0, 0 };
199             static char *pdl_conj_vtable_parnames[] = { "complexv","b" };
200             static short pdl_conj_vtable_parflags[] = {
201             0,
202             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISWRITE
203             };
204             static pdl_datatypes pdl_conj_vtable_partypes[] = { -1, -1 };
205             static PDL_Indx pdl_conj_vtable_realdims_starts[] = { 0, 0 };
206             static PDL_Indx pdl_conj_vtable_realdims_ind_ids[] = { 0 };
207             static char *pdl_conj_vtable_indnames[] = { "" };
208             pdl_transvtable pdl_conj_vtable = {
209             PDL_TRANS_DO_BROADCAST|PDL_TRANS_BADPROCESS, 0, pdl_conj_vtable_gentypes, 1, 2, NULL /*CORE21*/,
210             pdl_conj_vtable_realdims, pdl_conj_vtable_parnames,
211             pdl_conj_vtable_parflags, pdl_conj_vtable_partypes,
212             pdl_conj_vtable_realdims_starts, pdl_conj_vtable_realdims_ind_ids, 0,
213             0, pdl_conj_vtable_indnames,
214             NULL, pdl_conj_readdata, NULL,
215             NULL,
216             0,"PDL::Ops::conj"
217             };
218              
219              
220 2           pdl_error pdl_run_conj(pdl *complexv,pdl *b) {
221 2           pdl_error PDL_err = {0, NULL, 0};
222 2 50         if (!PDL) return (pdl_error){PDL_EFATAL, "PDL core struct is NULL, can't continue",0};
223 2           pdl_trans *__privtrans = PDL->create_trans(&pdl_conj_vtable);
224 2 50         if (!__privtrans) return PDL->make_error_simple(PDL_EFATAL, "Couldn't create trans");
225 2           __privtrans->pdls[0] = complexv;
226 2           __privtrans->pdls[1] = b;
227 2 50         PDL_RETERROR(PDL_err, PDL->type_coerce(__privtrans));
228 2 50         PDL_RETERROR(PDL_err, PDL->make_trans_mutual(__privtrans));
229 2           return PDL_err;
230             }