File Coverage

lib/PDL/Primitive-pp-vcos.c
Criterion Covered Total %
statement 34 120 28.3
branch 32 804 3.9
condition n/a
subroutine n/a
pod n/a
total 66 924 7.1


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 1857 "lib/PDL/PP.pm"
24             pdl_error pdl_vcos_readdata(pdl_trans *__privtrans) {
25             pdl_error PDL_err = {0, NULL, 0};
26             #line 27 "lib/PDL/Primitive-pp-vcos.c"
27 6           register PDL_Indx __M_size = __privtrans->ind_sizes[0];
28 6           register PDL_Indx __N_size = __privtrans->ind_sizes[1];
29 6 50         if (!__privtrans->broadcast.incs) return PDL->make_error(PDL_EUSERERROR, "Error in vcos:" "broadcast.incs NULL");
30             /* broadcastloop declarations */
31             int __brcloopval;
32             register PDL_Indx __tind0,__tind1; /* counters along dim */
33 6           register PDL_Indx __tnpdls = __privtrans->broadcast.npdls;
34             /* dims here are how many steps along those dims */
35 6           register PDL_Indx __tinc0_a = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,0);
36 6           register PDL_Indx __tinc0_b = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,0);
37 6           register PDL_Indx __tinc0_vcos = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,2,0);
38 6           register PDL_Indx __tinc1_a = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,1);
39 6           register PDL_Indx __tinc1_b = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,1);
40 6           register PDL_Indx __tinc1_vcos = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,2,1);
41             #define PDL_BROADCASTLOOP_START_vcos_readdata PDL_BROADCASTLOOP_START( \
42             readdata, \
43             __privtrans->broadcast, \
44             __privtrans->vtable, \
45             a_datap += __offsp[0]; \
46             b_datap += __offsp[1]; \
47             vcos_datap += __offsp[2]; \
48             , \
49             ( ,a_datap += __tinc1_a - __tinc0_a * __tdims0 \
50             ,b_datap += __tinc1_b - __tinc0_b * __tdims0 \
51             ,vcos_datap += __tinc1_vcos - __tinc0_vcos * __tdims0 \
52             ), \
53             ( ,a_datap += __tinc0_a \
54             ,b_datap += __tinc0_b \
55             ,vcos_datap += __tinc0_vcos \
56             ) \
57             )
58             #define PDL_BROADCASTLOOP_END_vcos_readdata PDL_BROADCASTLOOP_END( \
59             __privtrans->broadcast, \
60             a_datap -= __tinc1_a * __tdims1 + __offsp[0]; \
61             b_datap -= __tinc1_b * __tdims1 + __offsp[1]; \
62             vcos_datap -= __tinc1_vcos * __tdims1 + __offsp[2]; \
63             )
64 6           register PDL_Indx __inc_a_M = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,0,0)]; (void)__inc_a_M;register PDL_Indx __inc_a_N = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,0,1)]; (void)__inc_a_N;
65 6           register PDL_Indx __inc_b_M = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,1,0)]; (void)__inc_b_M;
66 6           register PDL_Indx __inc_vcos_N = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,2,0)]; (void)__inc_vcos_N;
67             #ifndef PDL_DECLARE_PARAMS_vcos_1
68             #define PDL_DECLARE_PARAMS_vcos_1(PDL_TYPE_OP,PDL_PPSYM_OP,PDL_TYPE_PARAM_vcos,PDL_PPSYM_PARAM_vcos) \
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             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_PARAM_vcos, vcos, (__privtrans->pdls[2]), 1, PDL_PPSYM_PARAM_vcos)
72             #endif
73 6 100         if ( __privtrans->bvalflag ) { /* ** do 'bad' Code ** */
74             #define PDL_BAD_CODE
75             #define PDL_IF_BAD(t,f) t
76 2           switch (__privtrans->__datatype) { /* Start generic switch */
77 0           case PDL_SB: {
78 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_SByte,A,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
79             {
80             #line 2069 "lib/PDL/Primitive.pd"
81             PDL_BROADCASTLOOP_START_vcos_readdata
82             #line 2070 "lib/PDL/Primitive.pd"
83             PDL_Float bnorm = 0;
84             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
85             #line 2072 "lib/PDL/Primitive.pd"
86             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,A,b_badval_isnan)) continue;,)
87             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
88             }} /* Close M */
89             #line 2075 "lib/PDL/Primitive.pd"
90             if (bnorm == 0) {
91             /*-- null-vector b(): set all vcos()=NAN --*/
92             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
93             #line 2078 "lib/PDL/Primitive.pd"
94             continue;
95             }
96             bnorm = sqrtl(bnorm);
97             /*-- usual case: compute values for N-slice of b() --*/
98             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
99             #line 2083 "lib/PDL/Primitive.pd"
100             PDL_Float anorm = 0, vval = 0;
101             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
102             #line 2085 "lib/PDL/Primitive.pd"
103             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,A,a_badval_isnan)) continue;,)
104             PDL_Float aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
105             anorm += aval * aval;
106             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,A,b_badval_isnan)) continue;,)
107             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
108             }} /* Close M */
109             #line 2091 "lib/PDL/Primitive.pd"
110             /*-- normalize --*/
111             anorm = sqrtl(anorm);
112             if (anorm != 0) {
113             /*-- usual case a(), b() non-null --*/
114             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
115             } else {
116             /*-- null-vector a(): set vcos()=NAN --*/
117             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
118             }
119             }} /* Close N */
120             #line 2101 "lib/PDL/Primitive.pd"
121             PDL_BROADCASTLOOP_END_vcos_readdata
122             #line 2102 "lib/PDL/Primitive.pd"
123             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
124             __privtrans->pdls[2]->state |= PDL_BADVAL;
125             #line 126 "lib/PDL/Primitive-pp-vcos.c"
126             }
127 0           } break;
128 0           case PDL_B: {
129 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_Byte,B,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
130             {
131             #line 2069 "lib/PDL/Primitive.pd"
132             PDL_BROADCASTLOOP_START_vcos_readdata
133             #line 2070 "lib/PDL/Primitive.pd"
134             PDL_Float bnorm = 0;
135             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
136             #line 2072 "lib/PDL/Primitive.pd"
137             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,B,b_badval_isnan)) continue;,)
138             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
139             }} /* Close M */
140             #line 2075 "lib/PDL/Primitive.pd"
141             if (bnorm == 0) {
142             /*-- null-vector b(): set all vcos()=NAN --*/
143             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
144             #line 2078 "lib/PDL/Primitive.pd"
145             continue;
146             }
147             bnorm = sqrtl(bnorm);
148             /*-- usual case: compute values for N-slice of b() --*/
149             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
150             #line 2083 "lib/PDL/Primitive.pd"
151             PDL_Float anorm = 0, vval = 0;
152             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
153             #line 2085 "lib/PDL/Primitive.pd"
154             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,B,a_badval_isnan)) continue;,)
155             PDL_Float aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
156             anorm += aval * aval;
157             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,B,b_badval_isnan)) continue;,)
158             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
159             }} /* Close M */
160             #line 2091 "lib/PDL/Primitive.pd"
161             /*-- normalize --*/
162             anorm = sqrtl(anorm);
163             if (anorm != 0) {
164             /*-- usual case a(), b() non-null --*/
165             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
166             } else {
167             /*-- null-vector a(): set vcos()=NAN --*/
168             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
169             }
170             }} /* Close N */
171             #line 2101 "lib/PDL/Primitive.pd"
172             PDL_BROADCASTLOOP_END_vcos_readdata
173             #line 2102 "lib/PDL/Primitive.pd"
174             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
175             __privtrans->pdls[2]->state |= PDL_BADVAL;
176             #line 177 "lib/PDL/Primitive-pp-vcos.c"
177             }
178 0           } break;
179 0           case PDL_S: {
180 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_Short,S,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
181             {
182             #line 2069 "lib/PDL/Primitive.pd"
183             PDL_BROADCASTLOOP_START_vcos_readdata
184             #line 2070 "lib/PDL/Primitive.pd"
185             PDL_Float bnorm = 0;
186             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
187             #line 2072 "lib/PDL/Primitive.pd"
188             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,S,b_badval_isnan)) continue;,)
189             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
190             }} /* Close M */
191             #line 2075 "lib/PDL/Primitive.pd"
192             if (bnorm == 0) {
193             /*-- null-vector b(): set all vcos()=NAN --*/
194             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
195             #line 2078 "lib/PDL/Primitive.pd"
196             continue;
197             }
198             bnorm = sqrtl(bnorm);
199             /*-- usual case: compute values for N-slice of b() --*/
200             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
201             #line 2083 "lib/PDL/Primitive.pd"
202             PDL_Float anorm = 0, vval = 0;
203             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
204             #line 2085 "lib/PDL/Primitive.pd"
205             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,S,a_badval_isnan)) continue;,)
206             PDL_Float aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
207             anorm += aval * aval;
208             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,S,b_badval_isnan)) continue;,)
209             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
210             }} /* Close M */
211             #line 2091 "lib/PDL/Primitive.pd"
212             /*-- normalize --*/
213             anorm = sqrtl(anorm);
214             if (anorm != 0) {
215             /*-- usual case a(), b() non-null --*/
216             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
217             } else {
218             /*-- null-vector a(): set vcos()=NAN --*/
219             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
220             }
221             }} /* Close N */
222             #line 2101 "lib/PDL/Primitive.pd"
223             PDL_BROADCASTLOOP_END_vcos_readdata
224             #line 2102 "lib/PDL/Primitive.pd"
225             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
226             __privtrans->pdls[2]->state |= PDL_BADVAL;
227             #line 228 "lib/PDL/Primitive-pp-vcos.c"
228             }
229 0           } break;
230 0           case PDL_US: {
231 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_Ushort,U,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
232             {
233             #line 2069 "lib/PDL/Primitive.pd"
234             PDL_BROADCASTLOOP_START_vcos_readdata
235             #line 2070 "lib/PDL/Primitive.pd"
236             PDL_Float bnorm = 0;
237             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
238             #line 2072 "lib/PDL/Primitive.pd"
239             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,U,b_badval_isnan)) continue;,)
240             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
241             }} /* Close M */
242             #line 2075 "lib/PDL/Primitive.pd"
243             if (bnorm == 0) {
244             /*-- null-vector b(): set all vcos()=NAN --*/
245             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
246             #line 2078 "lib/PDL/Primitive.pd"
247             continue;
248             }
249             bnorm = sqrtl(bnorm);
250             /*-- usual case: compute values for N-slice of b() --*/
251             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
252             #line 2083 "lib/PDL/Primitive.pd"
253             PDL_Float anorm = 0, vval = 0;
254             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
255             #line 2085 "lib/PDL/Primitive.pd"
256             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,U,a_badval_isnan)) continue;,)
257             PDL_Float aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
258             anorm += aval * aval;
259             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,U,b_badval_isnan)) continue;,)
260             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
261             }} /* Close M */
262             #line 2091 "lib/PDL/Primitive.pd"
263             /*-- normalize --*/
264             anorm = sqrtl(anorm);
265             if (anorm != 0) {
266             /*-- usual case a(), b() non-null --*/
267             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
268             } else {
269             /*-- null-vector a(): set vcos()=NAN --*/
270             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
271             }
272             }} /* Close N */
273             #line 2101 "lib/PDL/Primitive.pd"
274             PDL_BROADCASTLOOP_END_vcos_readdata
275             #line 2102 "lib/PDL/Primitive.pd"
276             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
277             __privtrans->pdls[2]->state |= PDL_BADVAL;
278             #line 279 "lib/PDL/Primitive-pp-vcos.c"
279             }
280 0           } break;
281 0           case PDL_L: {
282 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_Long,L,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
283             {
284             #line 2069 "lib/PDL/Primitive.pd"
285             PDL_BROADCASTLOOP_START_vcos_readdata
286             #line 2070 "lib/PDL/Primitive.pd"
287             PDL_Float bnorm = 0;
288             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
289             #line 2072 "lib/PDL/Primitive.pd"
290             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,L,b_badval_isnan)) continue;,)
291             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
292             }} /* Close M */
293             #line 2075 "lib/PDL/Primitive.pd"
294             if (bnorm == 0) {
295             /*-- null-vector b(): set all vcos()=NAN --*/
296             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
297             #line 2078 "lib/PDL/Primitive.pd"
298             continue;
299             }
300             bnorm = sqrtl(bnorm);
301             /*-- usual case: compute values for N-slice of b() --*/
302             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
303             #line 2083 "lib/PDL/Primitive.pd"
304             PDL_Float anorm = 0, vval = 0;
305             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
306             #line 2085 "lib/PDL/Primitive.pd"
307             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,L,a_badval_isnan)) continue;,)
308             PDL_Float aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
309             anorm += aval * aval;
310             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,L,b_badval_isnan)) continue;,)
311             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
312             }} /* Close M */
313             #line 2091 "lib/PDL/Primitive.pd"
314             /*-- normalize --*/
315             anorm = sqrtl(anorm);
316             if (anorm != 0) {
317             /*-- usual case a(), b() non-null --*/
318             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
319             } else {
320             /*-- null-vector a(): set vcos()=NAN --*/
321             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
322             }
323             }} /* Close N */
324             #line 2101 "lib/PDL/Primitive.pd"
325             PDL_BROADCASTLOOP_END_vcos_readdata
326             #line 2102 "lib/PDL/Primitive.pd"
327             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
328             __privtrans->pdls[2]->state |= PDL_BADVAL;
329             #line 330 "lib/PDL/Primitive-pp-vcos.c"
330             }
331 0           } break;
332 0           case PDL_UL: {
333 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_ULong,K,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
334             {
335             #line 2069 "lib/PDL/Primitive.pd"
336             PDL_BROADCASTLOOP_START_vcos_readdata
337             #line 2070 "lib/PDL/Primitive.pd"
338             PDL_Float bnorm = 0;
339             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
340             #line 2072 "lib/PDL/Primitive.pd"
341             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,K,b_badval_isnan)) continue;,)
342             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
343             }} /* Close M */
344             #line 2075 "lib/PDL/Primitive.pd"
345             if (bnorm == 0) {
346             /*-- null-vector b(): set all vcos()=NAN --*/
347             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
348             #line 2078 "lib/PDL/Primitive.pd"
349             continue;
350             }
351             bnorm = sqrtl(bnorm);
352             /*-- usual case: compute values for N-slice of b() --*/
353             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
354             #line 2083 "lib/PDL/Primitive.pd"
355             PDL_Float anorm = 0, vval = 0;
356             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
357             #line 2085 "lib/PDL/Primitive.pd"
358             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,K,a_badval_isnan)) continue;,)
359             PDL_Float aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
360             anorm += aval * aval;
361             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,K,b_badval_isnan)) continue;,)
362             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
363             }} /* Close M */
364             #line 2091 "lib/PDL/Primitive.pd"
365             /*-- normalize --*/
366             anorm = sqrtl(anorm);
367             if (anorm != 0) {
368             /*-- usual case a(), b() non-null --*/
369             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
370             } else {
371             /*-- null-vector a(): set vcos()=NAN --*/
372             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
373             }
374             }} /* Close N */
375             #line 2101 "lib/PDL/Primitive.pd"
376             PDL_BROADCASTLOOP_END_vcos_readdata
377             #line 2102 "lib/PDL/Primitive.pd"
378             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
379             __privtrans->pdls[2]->state |= PDL_BADVAL;
380             #line 381 "lib/PDL/Primitive-pp-vcos.c"
381             }
382 0           } break;
383 0           case PDL_IND: {
384 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_Indx,N,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
385             {
386             #line 2069 "lib/PDL/Primitive.pd"
387             PDL_BROADCASTLOOP_START_vcos_readdata
388             #line 2070 "lib/PDL/Primitive.pd"
389             PDL_Float bnorm = 0;
390             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
391             #line 2072 "lib/PDL/Primitive.pd"
392             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,N,b_badval_isnan)) continue;,)
393             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
394             }} /* Close M */
395             #line 2075 "lib/PDL/Primitive.pd"
396             if (bnorm == 0) {
397             /*-- null-vector b(): set all vcos()=NAN --*/
398             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
399             #line 2078 "lib/PDL/Primitive.pd"
400             continue;
401             }
402             bnorm = sqrtl(bnorm);
403             /*-- usual case: compute values for N-slice of b() --*/
404             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
405             #line 2083 "lib/PDL/Primitive.pd"
406             PDL_Float anorm = 0, vval = 0;
407             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
408             #line 2085 "lib/PDL/Primitive.pd"
409             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,N,a_badval_isnan)) continue;,)
410             PDL_Float aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
411             anorm += aval * aval;
412             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,N,b_badval_isnan)) continue;,)
413             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
414             }} /* Close M */
415             #line 2091 "lib/PDL/Primitive.pd"
416             /*-- normalize --*/
417             anorm = sqrtl(anorm);
418             if (anorm != 0) {
419             /*-- usual case a(), b() non-null --*/
420             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
421             } else {
422             /*-- null-vector a(): set vcos()=NAN --*/
423             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
424             }
425             }} /* Close N */
426             #line 2101 "lib/PDL/Primitive.pd"
427             PDL_BROADCASTLOOP_END_vcos_readdata
428             #line 2102 "lib/PDL/Primitive.pd"
429             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
430             __privtrans->pdls[2]->state |= PDL_BADVAL;
431             #line 432 "lib/PDL/Primitive-pp-vcos.c"
432             }
433 0           } break;
434 0           case PDL_ULL: {
435 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_ULongLong,P,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
436             {
437             #line 2069 "lib/PDL/Primitive.pd"
438             PDL_BROADCASTLOOP_START_vcos_readdata
439             #line 2070 "lib/PDL/Primitive.pd"
440             PDL_Float bnorm = 0;
441             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
442             #line 2072 "lib/PDL/Primitive.pd"
443             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,P,b_badval_isnan)) continue;,)
444             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
445             }} /* Close M */
446             #line 2075 "lib/PDL/Primitive.pd"
447             if (bnorm == 0) {
448             /*-- null-vector b(): set all vcos()=NAN --*/
449             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
450             #line 2078 "lib/PDL/Primitive.pd"
451             continue;
452             }
453             bnorm = sqrtl(bnorm);
454             /*-- usual case: compute values for N-slice of b() --*/
455             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
456             #line 2083 "lib/PDL/Primitive.pd"
457             PDL_Float anorm = 0, vval = 0;
458             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
459             #line 2085 "lib/PDL/Primitive.pd"
460             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,P,a_badval_isnan)) continue;,)
461             PDL_Float aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
462             anorm += aval * aval;
463             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,P,b_badval_isnan)) continue;,)
464             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
465             }} /* Close M */
466             #line 2091 "lib/PDL/Primitive.pd"
467             /*-- normalize --*/
468             anorm = sqrtl(anorm);
469             if (anorm != 0) {
470             /*-- usual case a(), b() non-null --*/
471             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
472             } else {
473             /*-- null-vector a(): set vcos()=NAN --*/
474             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
475             }
476             }} /* Close N */
477             #line 2101 "lib/PDL/Primitive.pd"
478             PDL_BROADCASTLOOP_END_vcos_readdata
479             #line 2102 "lib/PDL/Primitive.pd"
480             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
481             __privtrans->pdls[2]->state |= PDL_BADVAL;
482             #line 483 "lib/PDL/Primitive-pp-vcos.c"
483             }
484 0           } break;
485 0           case PDL_LL: {
486 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_LongLong,Q,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
487             {
488             #line 2069 "lib/PDL/Primitive.pd"
489             PDL_BROADCASTLOOP_START_vcos_readdata
490             #line 2070 "lib/PDL/Primitive.pd"
491             PDL_Float bnorm = 0;
492             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
493             #line 2072 "lib/PDL/Primitive.pd"
494             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,Q,b_badval_isnan)) continue;,)
495             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
496             }} /* Close M */
497             #line 2075 "lib/PDL/Primitive.pd"
498             if (bnorm == 0) {
499             /*-- null-vector b(): set all vcos()=NAN --*/
500             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
501             #line 2078 "lib/PDL/Primitive.pd"
502             continue;
503             }
504             bnorm = sqrtl(bnorm);
505             /*-- usual case: compute values for N-slice of b() --*/
506             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
507             #line 2083 "lib/PDL/Primitive.pd"
508             PDL_Float anorm = 0, vval = 0;
509             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
510             #line 2085 "lib/PDL/Primitive.pd"
511             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,Q,a_badval_isnan)) continue;,)
512             PDL_Float aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
513             anorm += aval * aval;
514             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,Q,b_badval_isnan)) continue;,)
515             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
516             }} /* Close M */
517             #line 2091 "lib/PDL/Primitive.pd"
518             /*-- normalize --*/
519             anorm = sqrtl(anorm);
520             if (anorm != 0) {
521             /*-- usual case a(), b() non-null --*/
522             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
523             } else {
524             /*-- null-vector a(): set vcos()=NAN --*/
525             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
526             }
527             }} /* Close N */
528             #line 2101 "lib/PDL/Primitive.pd"
529             PDL_BROADCASTLOOP_END_vcos_readdata
530             #line 2102 "lib/PDL/Primitive.pd"
531             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
532             __privtrans->pdls[2]->state |= PDL_BADVAL;
533             #line 534 "lib/PDL/Primitive-pp-vcos.c"
534             }
535 0           } break;
536 0           case PDL_F: {
537 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
538             {
539             #line 2069 "lib/PDL/Primitive.pd"
540             PDL_BROADCASTLOOP_START_vcos_readdata
541             #line 2070 "lib/PDL/Primitive.pd"
542             PDL_Float bnorm = 0;
543             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
544             #line 2072 "lib/PDL/Primitive.pd"
545             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,F,b_badval_isnan)) continue;,)
546             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
547             }} /* Close M */
548             #line 2075 "lib/PDL/Primitive.pd"
549             if (bnorm == 0) {
550             /*-- null-vector b(): set all vcos()=NAN --*/
551             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
552             #line 2078 "lib/PDL/Primitive.pd"
553             continue;
554             }
555             bnorm = sqrtl(bnorm);
556             /*-- usual case: compute values for N-slice of b() --*/
557             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
558             #line 2083 "lib/PDL/Primitive.pd"
559             PDL_Float anorm = 0, vval = 0;
560             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
561             #line 2085 "lib/PDL/Primitive.pd"
562             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,F,a_badval_isnan)) continue;,)
563             PDL_Float aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
564             anorm += aval * aval;
565             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,F,b_badval_isnan)) continue;,)
566             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
567             }} /* Close M */
568             #line 2091 "lib/PDL/Primitive.pd"
569             /*-- normalize --*/
570             anorm = sqrtl(anorm);
571             if (anorm != 0) {
572             /*-- usual case a(), b() non-null --*/
573             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
574             } else {
575             /*-- null-vector a(): set vcos()=NAN --*/
576             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
577             }
578             }} /* Close N */
579             #line 2101 "lib/PDL/Primitive.pd"
580             PDL_BROADCASTLOOP_END_vcos_readdata
581             #line 2102 "lib/PDL/Primitive.pd"
582             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
583             __privtrans->pdls[2]->state |= PDL_BADVAL;
584             #line 585 "lib/PDL/Primitive-pp-vcos.c"
585             }
586 0           } break;
587 2           case PDL_D: {
588 2 50         PDL_DECLARE_PARAMS_vcos_1(PDL_Double,D,PDL_Double,D)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
589             {
590             #line 2069 "lib/PDL/Primitive.pd"
591             PDL_BROADCASTLOOP_START_vcos_readdata
592             #line 2070 "lib/PDL/Primitive.pd"
593             PDL_Double bnorm = 0;
594             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
595             #line 2072 "lib/PDL/Primitive.pd"
596             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,D,b_badval_isnan)) continue;,)
597             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
598             }} /* Close M */
599             #line 2075 "lib/PDL/Primitive.pd"
600             if (bnorm == 0) {
601             /*-- null-vector b(): set all vcos()=NAN --*/
602             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
603             #line 2078 "lib/PDL/Primitive.pd"
604             continue;
605             }
606             bnorm = sqrtl(bnorm);
607             /*-- usual case: compute values for N-slice of b() --*/
608             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
609             #line 2083 "lib/PDL/Primitive.pd"
610             PDL_Double anorm = 0, vval = 0;
611             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
612             #line 2085 "lib/PDL/Primitive.pd"
613             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,D,a_badval_isnan)) continue;,)
614             PDL_Double aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
615             anorm += aval * aval;
616             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,D,b_badval_isnan)) continue;,)
617             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
618             }} /* Close M */
619             #line 2091 "lib/PDL/Primitive.pd"
620             /*-- normalize --*/
621             anorm = sqrtl(anorm);
622             if (anorm != 0) {
623             /*-- usual case a(), b() non-null --*/
624             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
625             } else {
626             /*-- null-vector a(): set vcos()=NAN --*/
627             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
628             }
629             }} /* Close N */
630             #line 2101 "lib/PDL/Primitive.pd"
631             PDL_BROADCASTLOOP_END_vcos_readdata
632             #line 2102 "lib/PDL/Primitive.pd"
633             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
634             __privtrans->pdls[2]->state |= PDL_BADVAL;
635             #line 636 "lib/PDL/Primitive-pp-vcos.c"
636             }
637 2           } break;
638 0           case PDL_LD: {
639 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_LDouble,E,PDL_LDouble,E)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
640             {
641             #line 2069 "lib/PDL/Primitive.pd"
642             PDL_BROADCASTLOOP_START_vcos_readdata
643             #line 2070 "lib/PDL/Primitive.pd"
644             PDL_LDouble bnorm = 0;
645             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
646             #line 2072 "lib/PDL/Primitive.pd"
647             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,E,b_badval_isnan)) continue;,)
648             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
649             }} /* Close M */
650             #line 2075 "lib/PDL/Primitive.pd"
651             if (bnorm == 0) {
652             /*-- null-vector b(): set all vcos()=NAN --*/
653             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
654             #line 2078 "lib/PDL/Primitive.pd"
655             continue;
656             }
657             bnorm = sqrtl(bnorm);
658             /*-- usual case: compute values for N-slice of b() --*/
659             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
660             #line 2083 "lib/PDL/Primitive.pd"
661             PDL_LDouble anorm = 0, vval = 0;
662             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
663             #line 2085 "lib/PDL/Primitive.pd"
664             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,E,a_badval_isnan)) continue;,)
665             PDL_LDouble aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
666             anorm += aval * aval;
667             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,E,b_badval_isnan)) continue;,)
668             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
669             }} /* Close M */
670             #line 2091 "lib/PDL/Primitive.pd"
671             /*-- normalize --*/
672             anorm = sqrtl(anorm);
673             if (anorm != 0) {
674             /*-- usual case a(), b() non-null --*/
675             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
676             } else {
677             /*-- null-vector a(): set vcos()=NAN --*/
678             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
679             }
680             }} /* Close N */
681             #line 2101 "lib/PDL/Primitive.pd"
682             PDL_BROADCASTLOOP_END_vcos_readdata
683             #line 2102 "lib/PDL/Primitive.pd"
684             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
685             __privtrans->pdls[2]->state |= PDL_BADVAL;
686             #line 687 "lib/PDL/Primitive-pp-vcos.c"
687             }
688 0           } break;
689 0           case PDL_CF: {
690 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_CFloat,G,PDL_CFloat,G)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
691             {
692             #line 2069 "lib/PDL/Primitive.pd"
693             PDL_BROADCASTLOOP_START_vcos_readdata
694             #line 2070 "lib/PDL/Primitive.pd"
695             PDL_CFloat bnorm = 0;
696             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
697             #line 2072 "lib/PDL/Primitive.pd"
698             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,G,b_badval_isnan)) continue;,)
699             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
700             }} /* Close M */
701             #line 2075 "lib/PDL/Primitive.pd"
702             if (bnorm == 0) {
703             /*-- null-vector b(): set all vcos()=NAN --*/
704             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
705             #line 2078 "lib/PDL/Primitive.pd"
706             continue;
707             }
708             bnorm = sqrtl(bnorm);
709             /*-- usual case: compute values for N-slice of b() --*/
710             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
711             #line 2083 "lib/PDL/Primitive.pd"
712             PDL_CFloat anorm = 0, vval = 0;
713             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
714             #line 2085 "lib/PDL/Primitive.pd"
715             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,G,a_badval_isnan)) continue;,)
716             PDL_CFloat aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
717             anorm += aval * aval;
718             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,G,b_badval_isnan)) continue;,)
719             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
720             }} /* Close M */
721             #line 2091 "lib/PDL/Primitive.pd"
722             /*-- normalize --*/
723             anorm = sqrtl(anorm);
724             if (anorm != 0) {
725             /*-- usual case a(), b() non-null --*/
726             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
727             } else {
728             /*-- null-vector a(): set vcos()=NAN --*/
729             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
730             }
731             }} /* Close N */
732             #line 2101 "lib/PDL/Primitive.pd"
733             PDL_BROADCASTLOOP_END_vcos_readdata
734             #line 2102 "lib/PDL/Primitive.pd"
735             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
736             __privtrans->pdls[2]->state |= PDL_BADVAL;
737             #line 738 "lib/PDL/Primitive-pp-vcos.c"
738             }
739 0           } break;
740 0           case PDL_CD: {
741 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_CDouble,C,PDL_CDouble,C)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
742             {
743             #line 2069 "lib/PDL/Primitive.pd"
744             PDL_BROADCASTLOOP_START_vcos_readdata
745             #line 2070 "lib/PDL/Primitive.pd"
746             PDL_CDouble bnorm = 0;
747             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
748             #line 2072 "lib/PDL/Primitive.pd"
749             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,C,b_badval_isnan)) continue;,)
750             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
751             }} /* Close M */
752             #line 2075 "lib/PDL/Primitive.pd"
753             if (bnorm == 0) {
754             /*-- null-vector b(): set all vcos()=NAN --*/
755             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
756             #line 2078 "lib/PDL/Primitive.pd"
757             continue;
758             }
759             bnorm = sqrtl(bnorm);
760             /*-- usual case: compute values for N-slice of b() --*/
761             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
762             #line 2083 "lib/PDL/Primitive.pd"
763             PDL_CDouble anorm = 0, vval = 0;
764             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
765             #line 2085 "lib/PDL/Primitive.pd"
766             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,C,a_badval_isnan)) continue;,)
767             PDL_CDouble aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
768             anorm += aval * aval;
769             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,C,b_badval_isnan)) continue;,)
770             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
771             }} /* Close M */
772             #line 2091 "lib/PDL/Primitive.pd"
773             /*-- normalize --*/
774             anorm = sqrtl(anorm);
775             if (anorm != 0) {
776             /*-- usual case a(), b() non-null --*/
777             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
778             } else {
779             /*-- null-vector a(): set vcos()=NAN --*/
780             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
781             }
782             }} /* Close N */
783             #line 2101 "lib/PDL/Primitive.pd"
784             PDL_BROADCASTLOOP_END_vcos_readdata
785             #line 2102 "lib/PDL/Primitive.pd"
786             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
787             __privtrans->pdls[2]->state |= PDL_BADVAL;
788             #line 789 "lib/PDL/Primitive-pp-vcos.c"
789             }
790 0           } break;
791 0           case PDL_CLD: {
792 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_CLDouble,H,PDL_CLDouble,H)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
793             {
794             #line 2069 "lib/PDL/Primitive.pd"
795             PDL_BROADCASTLOOP_START_vcos_readdata
796             #line 2070 "lib/PDL/Primitive.pd"
797             PDL_CLDouble bnorm = 0;
798             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
799             #line 2072 "lib/PDL/Primitive.pd"
800             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,H,b_badval_isnan)) continue;,)
801             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
802             }} /* Close M */
803             #line 2075 "lib/PDL/Primitive.pd"
804             if (bnorm == 0) {
805             /*-- null-vector b(): set all vcos()=NAN --*/
806             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
807             #line 2078 "lib/PDL/Primitive.pd"
808             continue;
809             }
810             bnorm = sqrtl(bnorm);
811             /*-- usual case: compute values for N-slice of b() --*/
812             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
813             #line 2083 "lib/PDL/Primitive.pd"
814             PDL_CLDouble anorm = 0, vval = 0;
815             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
816             #line 2085 "lib/PDL/Primitive.pd"
817             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,H,a_badval_isnan)) continue;,)
818             PDL_CLDouble aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
819             anorm += aval * aval;
820             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,H,b_badval_isnan)) continue;,)
821             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
822             }} /* Close M */
823             #line 2091 "lib/PDL/Primitive.pd"
824             /*-- normalize --*/
825             anorm = sqrtl(anorm);
826             if (anorm != 0) {
827             /*-- usual case a(), b() non-null --*/
828             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
829             } else {
830             /*-- null-vector a(): set vcos()=NAN --*/
831             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
832             }
833             }} /* Close N */
834             #line 2101 "lib/PDL/Primitive.pd"
835             PDL_BROADCASTLOOP_END_vcos_readdata
836             #line 2102 "lib/PDL/Primitive.pd"
837             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
838             __privtrans->pdls[2]->state |= PDL_BADVAL;
839             #line 840 "lib/PDL/Primitive-pp-vcos.c"
840             }
841 0           } break;
842 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in vcos: unhandled datatype(%d), only handles (ABSULKNPQFDEGCH)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
843             }
844             #undef PDL_BAD_CODE
845             #undef PDL_IF_BAD
846             } else { /* ** else do 'good' Code ** */
847             #define PDL_IF_BAD(t,f) f
848 4           switch (__privtrans->__datatype) { /* Start generic switch */
849 0           case PDL_SB: {
850 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_SByte,A,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
851             {
852             #line 2069 "lib/PDL/Primitive.pd"
853             PDL_BROADCASTLOOP_START_vcos_readdata
854             #line 2070 "lib/PDL/Primitive.pd"
855             PDL_Float bnorm = 0;
856             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
857             #line 2072 "lib/PDL/Primitive.pd"
858             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,A,b_badval_isnan)) continue;,)
859             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
860             }} /* Close M */
861             #line 2075 "lib/PDL/Primitive.pd"
862             if (bnorm == 0) {
863             /*-- null-vector b(): set all vcos()=NAN --*/
864             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
865             #line 2078 "lib/PDL/Primitive.pd"
866             continue;
867             }
868             bnorm = sqrtl(bnorm);
869             /*-- usual case: compute values for N-slice of b() --*/
870             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
871             #line 2083 "lib/PDL/Primitive.pd"
872             PDL_Float anorm = 0, vval = 0;
873             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
874             #line 2085 "lib/PDL/Primitive.pd"
875             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,A,a_badval_isnan)) continue;,)
876             PDL_Float aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
877             anorm += aval * aval;
878             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,A,b_badval_isnan)) continue;,)
879             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
880             }} /* Close M */
881             #line 2091 "lib/PDL/Primitive.pd"
882             /*-- normalize --*/
883             anorm = sqrtl(anorm);
884             if (anorm != 0) {
885             /*-- usual case a(), b() non-null --*/
886             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
887             } else {
888             /*-- null-vector a(): set vcos()=NAN --*/
889             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
890             }
891             }} /* Close N */
892             #line 2101 "lib/PDL/Primitive.pd"
893             PDL_BROADCASTLOOP_END_vcos_readdata
894             #line 2102 "lib/PDL/Primitive.pd"
895             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
896             __privtrans->pdls[2]->state |= PDL_BADVAL;
897             #line 898 "lib/PDL/Primitive-pp-vcos.c"
898             }
899 0           } break;
900 0           case PDL_B: {
901 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_Byte,B,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
902             {
903             #line 2069 "lib/PDL/Primitive.pd"
904             PDL_BROADCASTLOOP_START_vcos_readdata
905             #line 2070 "lib/PDL/Primitive.pd"
906             PDL_Float bnorm = 0;
907             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
908             #line 2072 "lib/PDL/Primitive.pd"
909             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,B,b_badval_isnan)) continue;,)
910             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
911             }} /* Close M */
912             #line 2075 "lib/PDL/Primitive.pd"
913             if (bnorm == 0) {
914             /*-- null-vector b(): set all vcos()=NAN --*/
915             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
916             #line 2078 "lib/PDL/Primitive.pd"
917             continue;
918             }
919             bnorm = sqrtl(bnorm);
920             /*-- usual case: compute values for N-slice of b() --*/
921             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
922             #line 2083 "lib/PDL/Primitive.pd"
923             PDL_Float anorm = 0, vval = 0;
924             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
925             #line 2085 "lib/PDL/Primitive.pd"
926             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,B,a_badval_isnan)) continue;,)
927             PDL_Float aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
928             anorm += aval * aval;
929             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,B,b_badval_isnan)) continue;,)
930             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
931             }} /* Close M */
932             #line 2091 "lib/PDL/Primitive.pd"
933             /*-- normalize --*/
934             anorm = sqrtl(anorm);
935             if (anorm != 0) {
936             /*-- usual case a(), b() non-null --*/
937             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
938             } else {
939             /*-- null-vector a(): set vcos()=NAN --*/
940             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
941             }
942             }} /* Close N */
943             #line 2101 "lib/PDL/Primitive.pd"
944             PDL_BROADCASTLOOP_END_vcos_readdata
945             #line 2102 "lib/PDL/Primitive.pd"
946             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
947             __privtrans->pdls[2]->state |= PDL_BADVAL;
948             #line 949 "lib/PDL/Primitive-pp-vcos.c"
949             }
950 0           } break;
951 0           case PDL_S: {
952 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_Short,S,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
953             {
954             #line 2069 "lib/PDL/Primitive.pd"
955             PDL_BROADCASTLOOP_START_vcos_readdata
956             #line 2070 "lib/PDL/Primitive.pd"
957             PDL_Float bnorm = 0;
958             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
959             #line 2072 "lib/PDL/Primitive.pd"
960             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,S,b_badval_isnan)) continue;,)
961             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
962             }} /* Close M */
963             #line 2075 "lib/PDL/Primitive.pd"
964             if (bnorm == 0) {
965             /*-- null-vector b(): set all vcos()=NAN --*/
966             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
967             #line 2078 "lib/PDL/Primitive.pd"
968             continue;
969             }
970             bnorm = sqrtl(bnorm);
971             /*-- usual case: compute values for N-slice of b() --*/
972             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
973             #line 2083 "lib/PDL/Primitive.pd"
974             PDL_Float anorm = 0, vval = 0;
975             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
976             #line 2085 "lib/PDL/Primitive.pd"
977             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,S,a_badval_isnan)) continue;,)
978             PDL_Float aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
979             anorm += aval * aval;
980             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,S,b_badval_isnan)) continue;,)
981             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
982             }} /* Close M */
983             #line 2091 "lib/PDL/Primitive.pd"
984             /*-- normalize --*/
985             anorm = sqrtl(anorm);
986             if (anorm != 0) {
987             /*-- usual case a(), b() non-null --*/
988             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
989             } else {
990             /*-- null-vector a(): set vcos()=NAN --*/
991             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
992             }
993             }} /* Close N */
994             #line 2101 "lib/PDL/Primitive.pd"
995             PDL_BROADCASTLOOP_END_vcos_readdata
996             #line 2102 "lib/PDL/Primitive.pd"
997             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
998             __privtrans->pdls[2]->state |= PDL_BADVAL;
999             #line 1000 "lib/PDL/Primitive-pp-vcos.c"
1000             }
1001 0           } break;
1002 0           case PDL_US: {
1003 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_Ushort,U,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
1004             {
1005             #line 2069 "lib/PDL/Primitive.pd"
1006             PDL_BROADCASTLOOP_START_vcos_readdata
1007             #line 2070 "lib/PDL/Primitive.pd"
1008             PDL_Float bnorm = 0;
1009             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1010             #line 2072 "lib/PDL/Primitive.pd"
1011             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,U,b_badval_isnan)) continue;,)
1012             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
1013             }} /* Close M */
1014             #line 2075 "lib/PDL/Primitive.pd"
1015             if (bnorm == 0) {
1016             /*-- null-vector b(): set all vcos()=NAN --*/
1017             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
1018             #line 2078 "lib/PDL/Primitive.pd"
1019             continue;
1020             }
1021             bnorm = sqrtl(bnorm);
1022             /*-- usual case: compute values for N-slice of b() --*/
1023             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
1024             #line 2083 "lib/PDL/Primitive.pd"
1025             PDL_Float anorm = 0, vval = 0;
1026             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1027             #line 2085 "lib/PDL/Primitive.pd"
1028             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,U,a_badval_isnan)) continue;,)
1029             PDL_Float aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
1030             anorm += aval * aval;
1031             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,U,b_badval_isnan)) continue;,)
1032             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
1033             }} /* Close M */
1034             #line 2091 "lib/PDL/Primitive.pd"
1035             /*-- normalize --*/
1036             anorm = sqrtl(anorm);
1037             if (anorm != 0) {
1038             /*-- usual case a(), b() non-null --*/
1039             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
1040             } else {
1041             /*-- null-vector a(): set vcos()=NAN --*/
1042             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
1043             }
1044             }} /* Close N */
1045             #line 2101 "lib/PDL/Primitive.pd"
1046             PDL_BROADCASTLOOP_END_vcos_readdata
1047             #line 2102 "lib/PDL/Primitive.pd"
1048             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
1049             __privtrans->pdls[2]->state |= PDL_BADVAL;
1050             #line 1051 "lib/PDL/Primitive-pp-vcos.c"
1051             }
1052 0           } break;
1053 0           case PDL_L: {
1054 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_Long,L,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
1055             {
1056             #line 2069 "lib/PDL/Primitive.pd"
1057             PDL_BROADCASTLOOP_START_vcos_readdata
1058             #line 2070 "lib/PDL/Primitive.pd"
1059             PDL_Float bnorm = 0;
1060             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1061             #line 2072 "lib/PDL/Primitive.pd"
1062             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,L,b_badval_isnan)) continue;,)
1063             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
1064             }} /* Close M */
1065             #line 2075 "lib/PDL/Primitive.pd"
1066             if (bnorm == 0) {
1067             /*-- null-vector b(): set all vcos()=NAN --*/
1068             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
1069             #line 2078 "lib/PDL/Primitive.pd"
1070             continue;
1071             }
1072             bnorm = sqrtl(bnorm);
1073             /*-- usual case: compute values for N-slice of b() --*/
1074             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
1075             #line 2083 "lib/PDL/Primitive.pd"
1076             PDL_Float anorm = 0, vval = 0;
1077             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1078             #line 2085 "lib/PDL/Primitive.pd"
1079             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,L,a_badval_isnan)) continue;,)
1080             PDL_Float aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
1081             anorm += aval * aval;
1082             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,L,b_badval_isnan)) continue;,)
1083             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
1084             }} /* Close M */
1085             #line 2091 "lib/PDL/Primitive.pd"
1086             /*-- normalize --*/
1087             anorm = sqrtl(anorm);
1088             if (anorm != 0) {
1089             /*-- usual case a(), b() non-null --*/
1090             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
1091             } else {
1092             /*-- null-vector a(): set vcos()=NAN --*/
1093             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
1094             }
1095             }} /* Close N */
1096             #line 2101 "lib/PDL/Primitive.pd"
1097             PDL_BROADCASTLOOP_END_vcos_readdata
1098             #line 2102 "lib/PDL/Primitive.pd"
1099             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
1100             __privtrans->pdls[2]->state |= PDL_BADVAL;
1101             #line 1102 "lib/PDL/Primitive-pp-vcos.c"
1102             }
1103 0           } break;
1104 0           case PDL_UL: {
1105 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_ULong,K,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
1106             {
1107             #line 2069 "lib/PDL/Primitive.pd"
1108             PDL_BROADCASTLOOP_START_vcos_readdata
1109             #line 2070 "lib/PDL/Primitive.pd"
1110             PDL_Float bnorm = 0;
1111             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1112             #line 2072 "lib/PDL/Primitive.pd"
1113             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,K,b_badval_isnan)) continue;,)
1114             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
1115             }} /* Close M */
1116             #line 2075 "lib/PDL/Primitive.pd"
1117             if (bnorm == 0) {
1118             /*-- null-vector b(): set all vcos()=NAN --*/
1119             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
1120             #line 2078 "lib/PDL/Primitive.pd"
1121             continue;
1122             }
1123             bnorm = sqrtl(bnorm);
1124             /*-- usual case: compute values for N-slice of b() --*/
1125             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
1126             #line 2083 "lib/PDL/Primitive.pd"
1127             PDL_Float anorm = 0, vval = 0;
1128             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1129             #line 2085 "lib/PDL/Primitive.pd"
1130             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,K,a_badval_isnan)) continue;,)
1131             PDL_Float aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
1132             anorm += aval * aval;
1133             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,K,b_badval_isnan)) continue;,)
1134             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
1135             }} /* Close M */
1136             #line 2091 "lib/PDL/Primitive.pd"
1137             /*-- normalize --*/
1138             anorm = sqrtl(anorm);
1139             if (anorm != 0) {
1140             /*-- usual case a(), b() non-null --*/
1141             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
1142             } else {
1143             /*-- null-vector a(): set vcos()=NAN --*/
1144             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
1145             }
1146             }} /* Close N */
1147             #line 2101 "lib/PDL/Primitive.pd"
1148             PDL_BROADCASTLOOP_END_vcos_readdata
1149             #line 2102 "lib/PDL/Primitive.pd"
1150             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
1151             __privtrans->pdls[2]->state |= PDL_BADVAL;
1152             #line 1153 "lib/PDL/Primitive-pp-vcos.c"
1153             }
1154 0           } break;
1155 0           case PDL_IND: {
1156 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_Indx,N,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
1157             {
1158             #line 2069 "lib/PDL/Primitive.pd"
1159             PDL_BROADCASTLOOP_START_vcos_readdata
1160             #line 2070 "lib/PDL/Primitive.pd"
1161             PDL_Float bnorm = 0;
1162             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1163             #line 2072 "lib/PDL/Primitive.pd"
1164             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,N,b_badval_isnan)) continue;,)
1165             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
1166             }} /* Close M */
1167             #line 2075 "lib/PDL/Primitive.pd"
1168             if (bnorm == 0) {
1169             /*-- null-vector b(): set all vcos()=NAN --*/
1170             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
1171             #line 2078 "lib/PDL/Primitive.pd"
1172             continue;
1173             }
1174             bnorm = sqrtl(bnorm);
1175             /*-- usual case: compute values for N-slice of b() --*/
1176             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
1177             #line 2083 "lib/PDL/Primitive.pd"
1178             PDL_Float anorm = 0, vval = 0;
1179             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1180             #line 2085 "lib/PDL/Primitive.pd"
1181             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,N,a_badval_isnan)) continue;,)
1182             PDL_Float aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
1183             anorm += aval * aval;
1184             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,N,b_badval_isnan)) continue;,)
1185             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
1186             }} /* Close M */
1187             #line 2091 "lib/PDL/Primitive.pd"
1188             /*-- normalize --*/
1189             anorm = sqrtl(anorm);
1190             if (anorm != 0) {
1191             /*-- usual case a(), b() non-null --*/
1192             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
1193             } else {
1194             /*-- null-vector a(): set vcos()=NAN --*/
1195             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
1196             }
1197             }} /* Close N */
1198             #line 2101 "lib/PDL/Primitive.pd"
1199             PDL_BROADCASTLOOP_END_vcos_readdata
1200             #line 2102 "lib/PDL/Primitive.pd"
1201             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
1202             __privtrans->pdls[2]->state |= PDL_BADVAL;
1203             #line 1204 "lib/PDL/Primitive-pp-vcos.c"
1204             }
1205 0           } break;
1206 0           case PDL_ULL: {
1207 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_ULongLong,P,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
1208             {
1209             #line 2069 "lib/PDL/Primitive.pd"
1210             PDL_BROADCASTLOOP_START_vcos_readdata
1211             #line 2070 "lib/PDL/Primitive.pd"
1212             PDL_Float bnorm = 0;
1213             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1214             #line 2072 "lib/PDL/Primitive.pd"
1215             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,P,b_badval_isnan)) continue;,)
1216             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
1217             }} /* Close M */
1218             #line 2075 "lib/PDL/Primitive.pd"
1219             if (bnorm == 0) {
1220             /*-- null-vector b(): set all vcos()=NAN --*/
1221             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
1222             #line 2078 "lib/PDL/Primitive.pd"
1223             continue;
1224             }
1225             bnorm = sqrtl(bnorm);
1226             /*-- usual case: compute values for N-slice of b() --*/
1227             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
1228             #line 2083 "lib/PDL/Primitive.pd"
1229             PDL_Float anorm = 0, vval = 0;
1230             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1231             #line 2085 "lib/PDL/Primitive.pd"
1232             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,P,a_badval_isnan)) continue;,)
1233             PDL_Float aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
1234             anorm += aval * aval;
1235             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,P,b_badval_isnan)) continue;,)
1236             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
1237             }} /* Close M */
1238             #line 2091 "lib/PDL/Primitive.pd"
1239             /*-- normalize --*/
1240             anorm = sqrtl(anorm);
1241             if (anorm != 0) {
1242             /*-- usual case a(), b() non-null --*/
1243             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
1244             } else {
1245             /*-- null-vector a(): set vcos()=NAN --*/
1246             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
1247             }
1248             }} /* Close N */
1249             #line 2101 "lib/PDL/Primitive.pd"
1250             PDL_BROADCASTLOOP_END_vcos_readdata
1251             #line 2102 "lib/PDL/Primitive.pd"
1252             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
1253             __privtrans->pdls[2]->state |= PDL_BADVAL;
1254             #line 1255 "lib/PDL/Primitive-pp-vcos.c"
1255             }
1256 0           } break;
1257 0           case PDL_LL: {
1258 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_LongLong,Q,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
1259             {
1260             #line 2069 "lib/PDL/Primitive.pd"
1261             PDL_BROADCASTLOOP_START_vcos_readdata
1262             #line 2070 "lib/PDL/Primitive.pd"
1263             PDL_Float bnorm = 0;
1264             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1265             #line 2072 "lib/PDL/Primitive.pd"
1266             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,Q,b_badval_isnan)) continue;,)
1267             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
1268             }} /* Close M */
1269             #line 2075 "lib/PDL/Primitive.pd"
1270             if (bnorm == 0) {
1271             /*-- null-vector b(): set all vcos()=NAN --*/
1272             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
1273             #line 2078 "lib/PDL/Primitive.pd"
1274             continue;
1275             }
1276             bnorm = sqrtl(bnorm);
1277             /*-- usual case: compute values for N-slice of b() --*/
1278             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
1279             #line 2083 "lib/PDL/Primitive.pd"
1280             PDL_Float anorm = 0, vval = 0;
1281             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1282             #line 2085 "lib/PDL/Primitive.pd"
1283             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,Q,a_badval_isnan)) continue;,)
1284             PDL_Float aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
1285             anorm += aval * aval;
1286             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,Q,b_badval_isnan)) continue;,)
1287             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
1288             }} /* Close M */
1289             #line 2091 "lib/PDL/Primitive.pd"
1290             /*-- normalize --*/
1291             anorm = sqrtl(anorm);
1292             if (anorm != 0) {
1293             /*-- usual case a(), b() non-null --*/
1294             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
1295             } else {
1296             /*-- null-vector a(): set vcos()=NAN --*/
1297             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
1298             }
1299             }} /* Close N */
1300             #line 2101 "lib/PDL/Primitive.pd"
1301             PDL_BROADCASTLOOP_END_vcos_readdata
1302             #line 2102 "lib/PDL/Primitive.pd"
1303             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
1304             __privtrans->pdls[2]->state |= PDL_BADVAL;
1305             #line 1306 "lib/PDL/Primitive-pp-vcos.c"
1306             }
1307 0           } break;
1308 0           case PDL_F: {
1309 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_Float,F,PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
1310             {
1311             #line 2069 "lib/PDL/Primitive.pd"
1312             PDL_BROADCASTLOOP_START_vcos_readdata
1313             #line 2070 "lib/PDL/Primitive.pd"
1314             PDL_Float bnorm = 0;
1315             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1316             #line 2072 "lib/PDL/Primitive.pd"
1317             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,F,b_badval_isnan)) continue;,)
1318             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
1319             }} /* Close M */
1320             #line 2075 "lib/PDL/Primitive.pd"
1321             if (bnorm == 0) {
1322             /*-- null-vector b(): set all vcos()=NAN --*/
1323             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
1324             #line 2078 "lib/PDL/Primitive.pd"
1325             continue;
1326             }
1327             bnorm = sqrtl(bnorm);
1328             /*-- usual case: compute values for N-slice of b() --*/
1329             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
1330             #line 2083 "lib/PDL/Primitive.pd"
1331             PDL_Float anorm = 0, vval = 0;
1332             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1333             #line 2085 "lib/PDL/Primitive.pd"
1334             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,F,a_badval_isnan)) continue;,)
1335             PDL_Float aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
1336             anorm += aval * aval;
1337             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,F,b_badval_isnan)) continue;,)
1338             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
1339             }} /* Close M */
1340             #line 2091 "lib/PDL/Primitive.pd"
1341             /*-- normalize --*/
1342             anorm = sqrtl(anorm);
1343             if (anorm != 0) {
1344             /*-- usual case a(), b() non-null --*/
1345             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
1346             } else {
1347             /*-- null-vector a(): set vcos()=NAN --*/
1348             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
1349             }
1350             }} /* Close N */
1351             #line 2101 "lib/PDL/Primitive.pd"
1352             PDL_BROADCASTLOOP_END_vcos_readdata
1353             #line 2102 "lib/PDL/Primitive.pd"
1354             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
1355             __privtrans->pdls[2]->state |= PDL_BADVAL;
1356             #line 1357 "lib/PDL/Primitive-pp-vcos.c"
1357             }
1358 0           } break;
1359 4           case PDL_D: {
1360 4 50         PDL_DECLARE_PARAMS_vcos_1(PDL_Double,D,PDL_Double,D)
    50          
    50          
    50          
    100          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
1361             {
1362             #line 2069 "lib/PDL/Primitive.pd"
1363             PDL_BROADCASTLOOP_START_vcos_readdata
1364             #line 2070 "lib/PDL/Primitive.pd"
1365             PDL_Double bnorm = 0;
1366             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1367             #line 2072 "lib/PDL/Primitive.pd"
1368             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,D,b_badval_isnan)) continue;,)
1369             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
1370             }} /* Close M */
1371             #line 2075 "lib/PDL/Primitive.pd"
1372             if (bnorm == 0) {
1373             /*-- null-vector b(): set all vcos()=NAN --*/
1374             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
1375             #line 2078 "lib/PDL/Primitive.pd"
1376             continue;
1377             }
1378             bnorm = sqrtl(bnorm);
1379             /*-- usual case: compute values for N-slice of b() --*/
1380             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
1381             #line 2083 "lib/PDL/Primitive.pd"
1382             PDL_Double anorm = 0, vval = 0;
1383             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1384             #line 2085 "lib/PDL/Primitive.pd"
1385             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,D,a_badval_isnan)) continue;,)
1386             PDL_Double aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
1387             anorm += aval * aval;
1388             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,D,b_badval_isnan)) continue;,)
1389             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
1390             }} /* Close M */
1391             #line 2091 "lib/PDL/Primitive.pd"
1392             /*-- normalize --*/
1393             anorm = sqrtl(anorm);
1394             if (anorm != 0) {
1395             /*-- usual case a(), b() non-null --*/
1396             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
1397             } else {
1398             /*-- null-vector a(): set vcos()=NAN --*/
1399             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
1400             }
1401             }} /* Close N */
1402             #line 2101 "lib/PDL/Primitive.pd"
1403             PDL_BROADCASTLOOP_END_vcos_readdata
1404             #line 2102 "lib/PDL/Primitive.pd"
1405             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
1406             __privtrans->pdls[2]->state |= PDL_BADVAL;
1407             #line 1408 "lib/PDL/Primitive-pp-vcos.c"
1408             }
1409 4           } break;
1410 0           case PDL_LD: {
1411 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_LDouble,E,PDL_LDouble,E)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
1412             {
1413             #line 2069 "lib/PDL/Primitive.pd"
1414             PDL_BROADCASTLOOP_START_vcos_readdata
1415             #line 2070 "lib/PDL/Primitive.pd"
1416             PDL_LDouble bnorm = 0;
1417             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1418             #line 2072 "lib/PDL/Primitive.pd"
1419             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,E,b_badval_isnan)) continue;,)
1420             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
1421             }} /* Close M */
1422             #line 2075 "lib/PDL/Primitive.pd"
1423             if (bnorm == 0) {
1424             /*-- null-vector b(): set all vcos()=NAN --*/
1425             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
1426             #line 2078 "lib/PDL/Primitive.pd"
1427             continue;
1428             }
1429             bnorm = sqrtl(bnorm);
1430             /*-- usual case: compute values for N-slice of b() --*/
1431             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
1432             #line 2083 "lib/PDL/Primitive.pd"
1433             PDL_LDouble anorm = 0, vval = 0;
1434             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1435             #line 2085 "lib/PDL/Primitive.pd"
1436             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,E,a_badval_isnan)) continue;,)
1437             PDL_LDouble aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
1438             anorm += aval * aval;
1439             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,E,b_badval_isnan)) continue;,)
1440             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
1441             }} /* Close M */
1442             #line 2091 "lib/PDL/Primitive.pd"
1443             /*-- normalize --*/
1444             anorm = sqrtl(anorm);
1445             if (anorm != 0) {
1446             /*-- usual case a(), b() non-null --*/
1447             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
1448             } else {
1449             /*-- null-vector a(): set vcos()=NAN --*/
1450             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
1451             }
1452             }} /* Close N */
1453             #line 2101 "lib/PDL/Primitive.pd"
1454             PDL_BROADCASTLOOP_END_vcos_readdata
1455             #line 2102 "lib/PDL/Primitive.pd"
1456             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
1457             __privtrans->pdls[2]->state |= PDL_BADVAL;
1458             #line 1459 "lib/PDL/Primitive-pp-vcos.c"
1459             }
1460 0           } break;
1461 0           case PDL_CF: {
1462 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_CFloat,G,PDL_CFloat,G)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
1463             {
1464             #line 2069 "lib/PDL/Primitive.pd"
1465             PDL_BROADCASTLOOP_START_vcos_readdata
1466             #line 2070 "lib/PDL/Primitive.pd"
1467             PDL_CFloat bnorm = 0;
1468             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1469             #line 2072 "lib/PDL/Primitive.pd"
1470             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,G,b_badval_isnan)) continue;,)
1471             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
1472             }} /* Close M */
1473             #line 2075 "lib/PDL/Primitive.pd"
1474             if (bnorm == 0) {
1475             /*-- null-vector b(): set all vcos()=NAN --*/
1476             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
1477             #line 2078 "lib/PDL/Primitive.pd"
1478             continue;
1479             }
1480             bnorm = sqrtl(bnorm);
1481             /*-- usual case: compute values for N-slice of b() --*/
1482             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
1483             #line 2083 "lib/PDL/Primitive.pd"
1484             PDL_CFloat anorm = 0, vval = 0;
1485             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1486             #line 2085 "lib/PDL/Primitive.pd"
1487             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,G,a_badval_isnan)) continue;,)
1488             PDL_CFloat aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
1489             anorm += aval * aval;
1490             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,G,b_badval_isnan)) continue;,)
1491             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
1492             }} /* Close M */
1493             #line 2091 "lib/PDL/Primitive.pd"
1494             /*-- normalize --*/
1495             anorm = sqrtl(anorm);
1496             if (anorm != 0) {
1497             /*-- usual case a(), b() non-null --*/
1498             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
1499             } else {
1500             /*-- null-vector a(): set vcos()=NAN --*/
1501             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
1502             }
1503             }} /* Close N */
1504             #line 2101 "lib/PDL/Primitive.pd"
1505             PDL_BROADCASTLOOP_END_vcos_readdata
1506             #line 2102 "lib/PDL/Primitive.pd"
1507             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
1508             __privtrans->pdls[2]->state |= PDL_BADVAL;
1509             #line 1510 "lib/PDL/Primitive-pp-vcos.c"
1510             }
1511 0           } break;
1512 0           case PDL_CD: {
1513 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_CDouble,C,PDL_CDouble,C)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
1514             {
1515             #line 2069 "lib/PDL/Primitive.pd"
1516             PDL_BROADCASTLOOP_START_vcos_readdata
1517             #line 2070 "lib/PDL/Primitive.pd"
1518             PDL_CDouble bnorm = 0;
1519             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1520             #line 2072 "lib/PDL/Primitive.pd"
1521             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,C,b_badval_isnan)) continue;,)
1522             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
1523             }} /* Close M */
1524             #line 2075 "lib/PDL/Primitive.pd"
1525             if (bnorm == 0) {
1526             /*-- null-vector b(): set all vcos()=NAN --*/
1527             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
1528             #line 2078 "lib/PDL/Primitive.pd"
1529             continue;
1530             }
1531             bnorm = sqrtl(bnorm);
1532             /*-- usual case: compute values for N-slice of b() --*/
1533             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
1534             #line 2083 "lib/PDL/Primitive.pd"
1535             PDL_CDouble anorm = 0, vval = 0;
1536             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1537             #line 2085 "lib/PDL/Primitive.pd"
1538             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,C,a_badval_isnan)) continue;,)
1539             PDL_CDouble aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
1540             anorm += aval * aval;
1541             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,C,b_badval_isnan)) continue;,)
1542             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
1543             }} /* Close M */
1544             #line 2091 "lib/PDL/Primitive.pd"
1545             /*-- normalize --*/
1546             anorm = sqrtl(anorm);
1547             if (anorm != 0) {
1548             /*-- usual case a(), b() non-null --*/
1549             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
1550             } else {
1551             /*-- null-vector a(): set vcos()=NAN --*/
1552             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
1553             }
1554             }} /* Close N */
1555             #line 2101 "lib/PDL/Primitive.pd"
1556             PDL_BROADCASTLOOP_END_vcos_readdata
1557             #line 2102 "lib/PDL/Primitive.pd"
1558             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
1559             __privtrans->pdls[2]->state |= PDL_BADVAL;
1560             #line 1561 "lib/PDL/Primitive-pp-vcos.c"
1561             }
1562 0           } break;
1563 0           case PDL_CLD: {
1564 0 0         PDL_DECLARE_PARAMS_vcos_1(PDL_CLDouble,H,PDL_CLDouble,H)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
1565             {
1566             #line 2069 "lib/PDL/Primitive.pd"
1567             PDL_BROADCASTLOOP_START_vcos_readdata
1568             #line 2070 "lib/PDL/Primitive.pd"
1569             PDL_CLDouble bnorm = 0;
1570             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1571             #line 2072 "lib/PDL/Primitive.pd"
1572             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,H,b_badval_isnan)) continue;,)
1573             bnorm += (b_datap)[0+(__inc_b_M*(M))] * (b_datap)[0+(__inc_b_M*(M))];
1574             }} /* Close M */
1575             #line 2075 "lib/PDL/Primitive.pd"
1576             if (bnorm == 0) {
1577             /*-- null-vector b(): set all vcos()=NAN --*/
1578             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) { (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN; }} /* Close N */
1579             #line 2078 "lib/PDL/Primitive.pd"
1580             continue;
1581             }
1582             bnorm = sqrtl(bnorm);
1583             /*-- usual case: compute values for N-slice of b() --*/
1584             {/* Open N */ PDL_EXPAND2(register PDL_Indx N=0, __N_stop=(__N_size)); for(; N<__N_stop; N+=1) {
1585             #line 2083 "lib/PDL/Primitive.pd"
1586             PDL_CLDouble anorm = 0, vval = 0;
1587             {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) {
1588             #line 2085 "lib/PDL/Primitive.pd"
1589             PDL_IF_BAD(if (PDL_ISBAD2((a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))],a_badval,H,a_badval_isnan)) continue;,)
1590             PDL_CLDouble aval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_N*(N))];
1591             anorm += aval * aval;
1592             PDL_IF_BAD(if (PDL_ISBAD2((b_datap)[0+(__inc_b_M*(M))],b_badval,H,b_badval_isnan)) continue;,)
1593             vval += aval * (b_datap)[0+(__inc_b_M*(M))];
1594             }} /* Close M */
1595             #line 2091 "lib/PDL/Primitive.pd"
1596             /*-- normalize --*/
1597             anorm = sqrtl(anorm);
1598             if (anorm != 0) {
1599             /*-- usual case a(), b() non-null --*/
1600             (vcos_datap)[0+(__inc_vcos_N*(N))] = vval / (anorm * bnorm);
1601             } else {
1602             /*-- null-vector a(): set vcos()=NAN --*/
1603             (vcos_datap)[0+(__inc_vcos_N*(N))] = NAN;
1604             }
1605             }} /* Close N */
1606             #line 2101 "lib/PDL/Primitive.pd"
1607             PDL_BROADCASTLOOP_END_vcos_readdata
1608             #line 2102 "lib/PDL/Primitive.pd"
1609             if ( (__privtrans->pdls[0]->state & PDL_BADVAL) || (__privtrans->pdls[1]->state & PDL_BADVAL) )
1610             __privtrans->pdls[2]->state |= PDL_BADVAL;
1611             #line 1612 "lib/PDL/Primitive-pp-vcos.c"
1612             }
1613 0           } break;
1614 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in vcos: unhandled datatype(%d), only handles (ABSULKNPQFDEGCH)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
1615             }
1616             #undef PDL_IF_BAD
1617             }
1618 6           return PDL_err;
1619             }
1620              
1621             static pdl_datatypes pdl_vcos_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 };
1622             static PDL_Indx pdl_vcos_vtable_realdims[] = { 2, 1, 1 };
1623             static char *pdl_vcos_vtable_parnames[] = { "a","b","vcos" };
1624             static short pdl_vcos_vtable_parflags[] = {
1625             0,
1626             0,
1627             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISTPLUS|PDL_PARAM_ISTYPED|PDL_PARAM_ISWRITE
1628             };
1629             static pdl_datatypes pdl_vcos_vtable_partypes[] = { -1, -1, PDL_F };
1630             static PDL_Indx pdl_vcos_vtable_realdims_starts[] = { 0, 2, 3 };
1631             static PDL_Indx pdl_vcos_vtable_realdims_ind_ids[] = { 0, 1, 0, 1 };
1632             static char *pdl_vcos_vtable_indnames[] = { "M","N" };
1633             pdl_transvtable pdl_vcos_vtable = {
1634             PDL_TRANS_DO_BROADCAST|PDL_TRANS_BADPROCESS, 0, pdl_vcos_vtable_gentypes, 2, 3, NULL /*CORE21*/,
1635             pdl_vcos_vtable_realdims, pdl_vcos_vtable_parnames,
1636             pdl_vcos_vtable_parflags, pdl_vcos_vtable_partypes,
1637             pdl_vcos_vtable_realdims_starts, pdl_vcos_vtable_realdims_ind_ids, 4,
1638             2, pdl_vcos_vtable_indnames,
1639             NULL, pdl_vcos_readdata, NULL,
1640             NULL,
1641             0,"PDL::Primitive::vcos"
1642             };
1643              
1644              
1645 6           pdl_error pdl_run_vcos(pdl *a,pdl *b,pdl *vcos) {
1646 6           pdl_error PDL_err = {0, NULL, 0};
1647 6 50         if (!PDL) return (pdl_error){PDL_EFATAL, "PDL core struct is NULL, can't continue",0};
1648 6           pdl_trans *__privtrans = PDL->create_trans(&pdl_vcos_vtable);
1649 6 50         if (!__privtrans) return PDL->make_error_simple(PDL_EFATAL, "Couldn't create trans");
1650 6           __privtrans->pdls[0] = a;
1651 6           __privtrans->pdls[1] = b;
1652 6           __privtrans->pdls[2] = vcos;
1653 6 50         PDL_RETERROR(PDL_err, PDL->type_coerce(__privtrans));
1654 6 50         PDL_RETERROR(PDL_err, PDL->make_trans_mutual(__privtrans));
1655 6           return PDL_err;
1656             }