File Coverage

lib/PDL/Primitive-pp-unionvec.c
Criterion Covered Total %
statement 80 321 24.9
branch 111 876 12.6
condition n/a
subroutine n/a
pod n/a
total 191 1197 15.9


line stmt bran cond sub pod time code
1              
2             #line 453 "lib/PDL/PP.pm"
3             /*
4             * THIS FILE WAS GENERATED BY PDL::PP from lib/PDL/Primitive.pd! Do not modify!
5             */
6              
7             #define PDL_FREE_CODE(trans, destroy, comp_free_code, ntpriv_free_code) \
8             if (destroy) { \
9             comp_free_code \
10             } \
11             if ((trans)->dims_redone) { \
12             ntpriv_free_code \
13             }
14              
15             #include "EXTERN.h"
16             #include "perl.h"
17             #include "XSUB.h"
18             #include "pdl.h"
19             #include "pdlcore.h"
20             #define PDL PDL_Primitive
21             extern Core* PDL; /* Structure hold core C functions */
22              
23             #line 1857 "lib/PDL/PP.pm"
24             pdl_error pdl_unionvec_redodims(pdl_trans *__privtrans) {
25             pdl_error PDL_err = {0, NULL, 0};
26             #line 27 "lib/PDL/Primitive-pp-unionvec.c"
27 12           __privtrans->ind_sizes[3] = __privtrans->ind_sizes[1] + __privtrans->ind_sizes[2];
28 12 50         PDL_RETERROR(PDL_err, PDL->redodims_default(__privtrans));
29 12           return PDL_err;
30             }
31              
32              
33             #line 1857 "lib/PDL/PP.pm"
34             pdl_error pdl_unionvec_readdata(pdl_trans *__privtrans) {
35             pdl_error PDL_err = {0, NULL, 0};
36             #line 37 "lib/PDL/Primitive-pp-unionvec.c"
37 12           register PDL_Indx __M_size = __privtrans->ind_sizes[0];
38 12           register PDL_Indx __NC_size = __privtrans->ind_sizes[3];
39 12 50         if (!__privtrans->broadcast.incs) return PDL->make_error(PDL_EUSERERROR, "Error in unionvec:" "broadcast.incs NULL");
40             /* broadcastloop declarations */
41             int __brcloopval;
42             register PDL_Indx __tind0,__tind1; /* counters along dim */
43 12           register PDL_Indx __tnpdls = __privtrans->broadcast.npdls;
44             /* dims here are how many steps along those dims */
45 12           register PDL_Indx __tinc0_a = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,0);
46 12           register PDL_Indx __tinc0_b = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,0);
47 12           register PDL_Indx __tinc0_c = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,2,0);
48 12           register PDL_Indx __tinc0_nc = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,3,0);
49 12           register PDL_Indx __tinc1_a = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,1);
50 12           register PDL_Indx __tinc1_b = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,1);
51 12           register PDL_Indx __tinc1_c = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,2,1);
52 12           register PDL_Indx __tinc1_nc = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,3,1);
53             #define PDL_BROADCASTLOOP_START_unionvec_readdata PDL_BROADCASTLOOP_START( \
54             readdata, \
55             __privtrans->broadcast, \
56             __privtrans->vtable, \
57             a_datap += __offsp[0]; \
58             b_datap += __offsp[1]; \
59             c_datap += __offsp[2]; \
60             nc_datap += __offsp[3]; \
61             , \
62             ( ,a_datap += __tinc1_a - __tinc0_a * __tdims0 \
63             ,b_datap += __tinc1_b - __tinc0_b * __tdims0 \
64             ,c_datap += __tinc1_c - __tinc0_c * __tdims0 \
65             ,nc_datap += __tinc1_nc - __tinc0_nc * __tdims0 \
66             ), \
67             ( ,a_datap += __tinc0_a \
68             ,b_datap += __tinc0_b \
69             ,c_datap += __tinc0_c \
70             ,nc_datap += __tinc0_nc \
71             ) \
72             )
73             #define PDL_BROADCASTLOOP_END_unionvec_readdata PDL_BROADCASTLOOP_END( \
74             __privtrans->broadcast, \
75             a_datap -= __tinc1_a * __tdims1 + __offsp[0]; \
76             b_datap -= __tinc1_b * __tdims1 + __offsp[1]; \
77             c_datap -= __tinc1_c * __tdims1 + __offsp[2]; \
78             nc_datap -= __tinc1_nc * __tdims1 + __offsp[3]; \
79             )
80 12           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_NA = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,0,1)]; (void)__inc_a_NA;
81 12           register PDL_Indx __inc_b_M = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,1,0)]; (void)__inc_b_M;register PDL_Indx __inc_b_NB = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,1,1)]; (void)__inc_b_NB;
82 12           register PDL_Indx __inc_c_M = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,2,0)]; (void)__inc_c_M;register PDL_Indx __inc_c_NC = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,2,1)]; (void)__inc_c_NC;
83             #ifndef PDL_DECLARE_PARAMS_unionvec_1
84             #define PDL_DECLARE_PARAMS_unionvec_1(PDL_TYPE_OP,PDL_PPSYM_OP,PDL_TYPE_PARAM_nc,PDL_PPSYM_PARAM_nc) \
85             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, a, (__privtrans->pdls[0]), 1, PDL_PPSYM_OP) \
86             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, b, (__privtrans->pdls[1]), 1, PDL_PPSYM_OP) \
87             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, c, (__privtrans->pdls[2]), 1, PDL_PPSYM_OP) \
88             PDL_DECLARE_PARAMETER(PDL_TYPE_PARAM_nc, nc, (__privtrans->pdls[3]), 1, PDL_PPSYM_PARAM_nc)
89             #endif
90             #define PDL_IF_BAD(t,f) f
91 12           switch (__privtrans->__datatype) { /* Start generic switch */
92 0           case PDL_SB: {
93 0 0         PDL_DECLARE_PARAMS_unionvec_1(PDL_SByte,A,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
94 0 0         PDL_BROADCASTLOOP_START_unionvec_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
95 0           PDL_Indx nai=0, nbi=0, nci=__privtrans->ind_sizes[3], sizeNA=__privtrans->ind_sizes[1], sizeNB=__privtrans->ind_sizes[2];
96             int cmpval;
97 0 0         {/* Open NC */ PDL_EXPAND2(register PDL_Indx NC=0, __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {
98 0 0         if (nai < sizeNA && nbi < sizeNB) {
    0          
99 0           cmpval = 0;
100 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { if ((a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] != (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]) { cmpval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] < (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))] ? -1 : 1; break; } }} /* Close M */
    0          
    0          
101             ;
102             }
103 0 0         else if (nai < sizeNA) { cmpval = -1; }
104 0 0         else if (nbi < sizeNB) { cmpval = 1; }
105 0           else { nci=NC; break; }
106 0 0         if (cmpval < 0) {
107 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
108 0           nai++;
109             }
110 0 0         else if (cmpval > 0) {
111 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]; }} /* Close M */
112 0           nbi++;
113             }
114             else {
115 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
116 0           nai++;
117 0           nbi++;
118             }
119             }} /* Close NC */
120 0           (nc_datap)[0] = nci;
121 0 0         {/* Open NC=nci */ PDL_EXPAND2(register PDL_Indx NC=PDLMAX((nci),0), __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {{/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = 0; }} /* Close NC=nci */}} /* Close M */
    0          
122 0 0         }PDL_BROADCASTLOOP_END_unionvec_readdata
    0          
123 0           } break;
124 0           case PDL_B: {
125 0 0         PDL_DECLARE_PARAMS_unionvec_1(PDL_Byte,B,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
126 0 0         PDL_BROADCASTLOOP_START_unionvec_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
127 0           PDL_Indx nai=0, nbi=0, nci=__privtrans->ind_sizes[3], sizeNA=__privtrans->ind_sizes[1], sizeNB=__privtrans->ind_sizes[2];
128             int cmpval;
129 0 0         {/* Open NC */ PDL_EXPAND2(register PDL_Indx NC=0, __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {
130 0 0         if (nai < sizeNA && nbi < sizeNB) {
    0          
131 0           cmpval = 0;
132 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { if ((a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] != (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]) { cmpval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] < (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))] ? -1 : 1; break; } }} /* Close M */
    0          
    0          
133             ;
134             }
135 0 0         else if (nai < sizeNA) { cmpval = -1; }
136 0 0         else if (nbi < sizeNB) { cmpval = 1; }
137 0           else { nci=NC; break; }
138 0 0         if (cmpval < 0) {
139 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
140 0           nai++;
141             }
142 0 0         else if (cmpval > 0) {
143 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]; }} /* Close M */
144 0           nbi++;
145             }
146             else {
147 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
148 0           nai++;
149 0           nbi++;
150             }
151             }} /* Close NC */
152 0           (nc_datap)[0] = nci;
153 0 0         {/* Open NC=nci */ PDL_EXPAND2(register PDL_Indx NC=PDLMAX((nci),0), __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {{/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = 0; }} /* Close NC=nci */}} /* Close M */
    0          
154 0 0         }PDL_BROADCASTLOOP_END_unionvec_readdata
    0          
155 0           } break;
156 0           case PDL_S: {
157 0 0         PDL_DECLARE_PARAMS_unionvec_1(PDL_Short,S,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
158 0 0         PDL_BROADCASTLOOP_START_unionvec_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
159 0           PDL_Indx nai=0, nbi=0, nci=__privtrans->ind_sizes[3], sizeNA=__privtrans->ind_sizes[1], sizeNB=__privtrans->ind_sizes[2];
160             int cmpval;
161 0 0         {/* Open NC */ PDL_EXPAND2(register PDL_Indx NC=0, __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {
162 0 0         if (nai < sizeNA && nbi < sizeNB) {
    0          
163 0           cmpval = 0;
164 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { if ((a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] != (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]) { cmpval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] < (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))] ? -1 : 1; break; } }} /* Close M */
    0          
    0          
165             ;
166             }
167 0 0         else if (nai < sizeNA) { cmpval = -1; }
168 0 0         else if (nbi < sizeNB) { cmpval = 1; }
169 0           else { nci=NC; break; }
170 0 0         if (cmpval < 0) {
171 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
172 0           nai++;
173             }
174 0 0         else if (cmpval > 0) {
175 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]; }} /* Close M */
176 0           nbi++;
177             }
178             else {
179 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
180 0           nai++;
181 0           nbi++;
182             }
183             }} /* Close NC */
184 0           (nc_datap)[0] = nci;
185 0 0         {/* Open NC=nci */ PDL_EXPAND2(register PDL_Indx NC=PDLMAX((nci),0), __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {{/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = 0; }} /* Close NC=nci */}} /* Close M */
    0          
186 0 0         }PDL_BROADCASTLOOP_END_unionvec_readdata
    0          
187 0           } break;
188 0           case PDL_US: {
189 0 0         PDL_DECLARE_PARAMS_unionvec_1(PDL_Ushort,U,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
190 0 0         PDL_BROADCASTLOOP_START_unionvec_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
191 0           PDL_Indx nai=0, nbi=0, nci=__privtrans->ind_sizes[3], sizeNA=__privtrans->ind_sizes[1], sizeNB=__privtrans->ind_sizes[2];
192             int cmpval;
193 0 0         {/* Open NC */ PDL_EXPAND2(register PDL_Indx NC=0, __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {
194 0 0         if (nai < sizeNA && nbi < sizeNB) {
    0          
195 0           cmpval = 0;
196 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { if ((a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] != (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]) { cmpval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] < (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))] ? -1 : 1; break; } }} /* Close M */
    0          
    0          
197             ;
198             }
199 0 0         else if (nai < sizeNA) { cmpval = -1; }
200 0 0         else if (nbi < sizeNB) { cmpval = 1; }
201 0           else { nci=NC; break; }
202 0 0         if (cmpval < 0) {
203 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
204 0           nai++;
205             }
206 0 0         else if (cmpval > 0) {
207 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]; }} /* Close M */
208 0           nbi++;
209             }
210             else {
211 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
212 0           nai++;
213 0           nbi++;
214             }
215             }} /* Close NC */
216 0           (nc_datap)[0] = nci;
217 0 0         {/* Open NC=nci */ PDL_EXPAND2(register PDL_Indx NC=PDLMAX((nci),0), __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {{/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = 0; }} /* Close NC=nci */}} /* Close M */
    0          
218 0 0         }PDL_BROADCASTLOOP_END_unionvec_readdata
    0          
219 0           } break;
220 2           case PDL_L: {
221 2 50         PDL_DECLARE_PARAMS_unionvec_1(PDL_Long,L,PDL_Indx,N)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
222 8 50         PDL_BROADCASTLOOP_START_unionvec_readdata {
    50          
    50          
    50          
    50          
    100          
    100          
223 2           PDL_Indx nai=0, nbi=0, nci=__privtrans->ind_sizes[3], sizeNA=__privtrans->ind_sizes[1], sizeNB=__privtrans->ind_sizes[2];
224             int cmpval;
225 10 50         {/* Open NC */ PDL_EXPAND2(register PDL_Indx NC=0, __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {
226 10 100         if (nai < sizeNA && nbi < sizeNB) {
    50          
227 6           cmpval = 0;
228 16 100         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { if ((a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] != (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]) { cmpval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] < (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))] ? -1 : 1; break; } }} /* Close M */
    50          
    100          
229             ;
230             }
231 4 50         else if (nai < sizeNA) { cmpval = -1; }
232 4 100         else if (nbi < sizeNB) { cmpval = 1; }
233 2           else { nci=NC; break; }
234 8 100         if (cmpval < 0) {
235 6 100         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
236 2           nai++;
237             }
238 6 100         else if (cmpval > 0) {
239 6 100         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]; }} /* Close M */
240 2           nbi++;
241             }
242             else {
243 12 100         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
244 4           nai++;
245 4           nbi++;
246             }
247             }} /* Close NC */
248 2           (nc_datap)[0] = nci;
249 14 100         {/* Open NC=nci */ PDL_EXPAND2(register PDL_Indx NC=PDLMAX((nci),0), __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {{/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = 0; }} /* Close NC=nci */}} /* Close M */
    100          
250 2 50         }PDL_BROADCASTLOOP_END_unionvec_readdata
    50          
251 2           } break;
252 0           case PDL_UL: {
253 0 0         PDL_DECLARE_PARAMS_unionvec_1(PDL_ULong,K,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
254 0 0         PDL_BROADCASTLOOP_START_unionvec_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
255 0           PDL_Indx nai=0, nbi=0, nci=__privtrans->ind_sizes[3], sizeNA=__privtrans->ind_sizes[1], sizeNB=__privtrans->ind_sizes[2];
256             int cmpval;
257 0 0         {/* Open NC */ PDL_EXPAND2(register PDL_Indx NC=0, __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {
258 0 0         if (nai < sizeNA && nbi < sizeNB) {
    0          
259 0           cmpval = 0;
260 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { if ((a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] != (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]) { cmpval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] < (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))] ? -1 : 1; break; } }} /* Close M */
    0          
    0          
261             ;
262             }
263 0 0         else if (nai < sizeNA) { cmpval = -1; }
264 0 0         else if (nbi < sizeNB) { cmpval = 1; }
265 0           else { nci=NC; break; }
266 0 0         if (cmpval < 0) {
267 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
268 0           nai++;
269             }
270 0 0         else if (cmpval > 0) {
271 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]; }} /* Close M */
272 0           nbi++;
273             }
274             else {
275 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
276 0           nai++;
277 0           nbi++;
278             }
279             }} /* Close NC */
280 0           (nc_datap)[0] = nci;
281 0 0         {/* Open NC=nci */ PDL_EXPAND2(register PDL_Indx NC=PDLMAX((nci),0), __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {{/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = 0; }} /* Close NC=nci */}} /* Close M */
    0          
282 0 0         }PDL_BROADCASTLOOP_END_unionvec_readdata
    0          
283 0           } break;
284 0           case PDL_IND: {
285 0 0         PDL_DECLARE_PARAMS_unionvec_1(PDL_Indx,N,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
286 0 0         PDL_BROADCASTLOOP_START_unionvec_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
287 0           PDL_Indx nai=0, nbi=0, nci=__privtrans->ind_sizes[3], sizeNA=__privtrans->ind_sizes[1], sizeNB=__privtrans->ind_sizes[2];
288             int cmpval;
289 0 0         {/* Open NC */ PDL_EXPAND2(register PDL_Indx NC=0, __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {
290 0 0         if (nai < sizeNA && nbi < sizeNB) {
    0          
291 0           cmpval = 0;
292 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { if ((a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] != (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]) { cmpval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] < (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))] ? -1 : 1; break; } }} /* Close M */
    0          
    0          
293             ;
294             }
295 0 0         else if (nai < sizeNA) { cmpval = -1; }
296 0 0         else if (nbi < sizeNB) { cmpval = 1; }
297 0           else { nci=NC; break; }
298 0 0         if (cmpval < 0) {
299 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
300 0           nai++;
301             }
302 0 0         else if (cmpval > 0) {
303 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]; }} /* Close M */
304 0           nbi++;
305             }
306             else {
307 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
308 0           nai++;
309 0           nbi++;
310             }
311             }} /* Close NC */
312 0           (nc_datap)[0] = nci;
313 0 0         {/* Open NC=nci */ PDL_EXPAND2(register PDL_Indx NC=PDLMAX((nci),0), __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {{/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = 0; }} /* Close NC=nci */}} /* Close M */
    0          
314 0 0         }PDL_BROADCASTLOOP_END_unionvec_readdata
    0          
315 0           } break;
316 0           case PDL_ULL: {
317 0 0         PDL_DECLARE_PARAMS_unionvec_1(PDL_ULongLong,P,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
318 0 0         PDL_BROADCASTLOOP_START_unionvec_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
319 0           PDL_Indx nai=0, nbi=0, nci=__privtrans->ind_sizes[3], sizeNA=__privtrans->ind_sizes[1], sizeNB=__privtrans->ind_sizes[2];
320             int cmpval;
321 0 0         {/* Open NC */ PDL_EXPAND2(register PDL_Indx NC=0, __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {
322 0 0         if (nai < sizeNA && nbi < sizeNB) {
    0          
323 0           cmpval = 0;
324 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { if ((a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] != (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]) { cmpval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] < (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))] ? -1 : 1; break; } }} /* Close M */
    0          
    0          
325             ;
326             }
327 0 0         else if (nai < sizeNA) { cmpval = -1; }
328 0 0         else if (nbi < sizeNB) { cmpval = 1; }
329 0           else { nci=NC; break; }
330 0 0         if (cmpval < 0) {
331 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
332 0           nai++;
333             }
334 0 0         else if (cmpval > 0) {
335 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]; }} /* Close M */
336 0           nbi++;
337             }
338             else {
339 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
340 0           nai++;
341 0           nbi++;
342             }
343             }} /* Close NC */
344 0           (nc_datap)[0] = nci;
345 0 0         {/* Open NC=nci */ PDL_EXPAND2(register PDL_Indx NC=PDLMAX((nci),0), __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {{/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = 0; }} /* Close NC=nci */}} /* Close M */
    0          
346 0 0         }PDL_BROADCASTLOOP_END_unionvec_readdata
    0          
347 0           } break;
348 0           case PDL_LL: {
349 0 0         PDL_DECLARE_PARAMS_unionvec_1(PDL_LongLong,Q,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
350 0 0         PDL_BROADCASTLOOP_START_unionvec_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
351 0           PDL_Indx nai=0, nbi=0, nci=__privtrans->ind_sizes[3], sizeNA=__privtrans->ind_sizes[1], sizeNB=__privtrans->ind_sizes[2];
352             int cmpval;
353 0 0         {/* Open NC */ PDL_EXPAND2(register PDL_Indx NC=0, __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {
354 0 0         if (nai < sizeNA && nbi < sizeNB) {
    0          
355 0           cmpval = 0;
356 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { if ((a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] != (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]) { cmpval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] < (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))] ? -1 : 1; break; } }} /* Close M */
    0          
    0          
357             ;
358             }
359 0 0         else if (nai < sizeNA) { cmpval = -1; }
360 0 0         else if (nbi < sizeNB) { cmpval = 1; }
361 0           else { nci=NC; break; }
362 0 0         if (cmpval < 0) {
363 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
364 0           nai++;
365             }
366 0 0         else if (cmpval > 0) {
367 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]; }} /* Close M */
368 0           nbi++;
369             }
370             else {
371 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
372 0           nai++;
373 0           nbi++;
374             }
375             }} /* Close NC */
376 0           (nc_datap)[0] = nci;
377 0 0         {/* Open NC=nci */ PDL_EXPAND2(register PDL_Indx NC=PDLMAX((nci),0), __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {{/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = 0; }} /* Close NC=nci */}} /* Close M */
    0          
378 0 0         }PDL_BROADCASTLOOP_END_unionvec_readdata
    0          
379 0           } break;
380 0           case PDL_F: {
381 0 0         PDL_DECLARE_PARAMS_unionvec_1(PDL_Float,F,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
382 0 0         PDL_BROADCASTLOOP_START_unionvec_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
383 0           PDL_Indx nai=0, nbi=0, nci=__privtrans->ind_sizes[3], sizeNA=__privtrans->ind_sizes[1], sizeNB=__privtrans->ind_sizes[2];
384             int cmpval;
385 0 0         {/* Open NC */ PDL_EXPAND2(register PDL_Indx NC=0, __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {
386 0 0         if (nai < sizeNA && nbi < sizeNB) {
    0          
387 0           cmpval = 0;
388 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { if ((a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] != (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]) { cmpval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] < (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))] ? -1 : 1; break; } }} /* Close M */
    0          
    0          
389             ;
390             }
391 0 0         else if (nai < sizeNA) { cmpval = -1; }
392 0 0         else if (nbi < sizeNB) { cmpval = 1; }
393 0           else { nci=NC; break; }
394 0 0         if (cmpval < 0) {
395 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
396 0           nai++;
397             }
398 0 0         else if (cmpval > 0) {
399 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]; }} /* Close M */
400 0           nbi++;
401             }
402             else {
403 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
404 0           nai++;
405 0           nbi++;
406             }
407             }} /* Close NC */
408 0           (nc_datap)[0] = nci;
409 0 0         {/* Open NC=nci */ PDL_EXPAND2(register PDL_Indx NC=PDLMAX((nci),0), __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {{/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = 0; }} /* Close NC=nci */}} /* Close M */
    0          
410 0 0         }PDL_BROADCASTLOOP_END_unionvec_readdata
    0          
411 0           } break;
412 10           case PDL_D: {
413 10 100         PDL_DECLARE_PARAMS_unionvec_1(PDL_Double,D,PDL_Indx,N)
    100          
    50          
    50          
    100          
    50          
    50          
    100          
    50          
    50          
    50          
    50          
414 45 50         PDL_BROADCASTLOOP_START_unionvec_readdata {
    50          
    50          
    50          
    50          
    100          
    100          
415 15           PDL_Indx nai=0, nbi=0, nci=__privtrans->ind_sizes[3], sizeNA=__privtrans->ind_sizes[1], sizeNB=__privtrans->ind_sizes[2];
416             int cmpval;
417 48 100         {/* Open NC */ PDL_EXPAND2(register PDL_Indx NC=0, __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {
418 36 100         if (nai < sizeNA && nbi < sizeNB) {
    100          
419 12           cmpval = 0;
420 21 100         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { if ((a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] != (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]) { cmpval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] < (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))] ? -1 : 1; break; } }} /* Close M */
    50          
    100          
421             ;
422             }
423 24 100         else if (nai < sizeNA) { cmpval = -1; }
424 18 100         else if (nbi < sizeNB) { cmpval = 1; }
425 3           else { nci=NC; break; }
426 33 100         if (cmpval < 0) {
427 60 100         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
428 15           nai++;
429             }
430 18 100         else if (cmpval > 0) {
431 60 100         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]; }} /* Close M */
432 15           nbi++;
433             }
434             else {
435 12 100         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
436 3           nai++;
437 3           nbi++;
438             }
439             }} /* Close NC */
440 15           (nc_datap)[0] = nci;
441 27 100         {/* Open NC=nci */ PDL_EXPAND2(register PDL_Indx NC=PDLMAX((nci),0), __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {{/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = 0; }} /* Close NC=nci */}} /* Close M */
    100          
442 10 50         }PDL_BROADCASTLOOP_END_unionvec_readdata
    50          
443 10           } break;
444 0           case PDL_LD: {
445 0 0         PDL_DECLARE_PARAMS_unionvec_1(PDL_LDouble,E,PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
446 0 0         PDL_BROADCASTLOOP_START_unionvec_readdata {
    0          
    0          
    0          
    0          
    0          
    0          
447 0           PDL_Indx nai=0, nbi=0, nci=__privtrans->ind_sizes[3], sizeNA=__privtrans->ind_sizes[1], sizeNB=__privtrans->ind_sizes[2];
448             int cmpval;
449 0 0         {/* Open NC */ PDL_EXPAND2(register PDL_Indx NC=0, __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {
450 0 0         if (nai < sizeNA && nbi < sizeNB) {
    0          
451 0           cmpval = 0;
452 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { if ((a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] != (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]) { cmpval = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))] < (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))] ? -1 : 1; break; } }} /* Close M */
    0          
    0          
453             ;
454             }
455 0 0         else if (nai < sizeNA) { cmpval = -1; }
456 0 0         else if (nbi < sizeNB) { cmpval = 1; }
457 0           else { nci=NC; break; }
458 0 0         if (cmpval < 0) {
459 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
460 0           nai++;
461             }
462 0 0         else if (cmpval > 0) {
463 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (b_datap)[0+(__inc_b_M*(M))+(__inc_b_NB*(nbi))]; }} /* Close M */
464 0           nbi++;
465             }
466             else {
467 0 0         {/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = (a_datap)[0+(__inc_a_M*(M))+(__inc_a_NA*(nai))]; }} /* Close M */
468 0           nai++;
469 0           nbi++;
470             }
471             }} /* Close NC */
472 0           (nc_datap)[0] = nci;
473 0 0         {/* Open NC=nci */ PDL_EXPAND2(register PDL_Indx NC=PDLMAX((nci),0), __NC_stop=(__NC_size)); for(; NC<__NC_stop; NC+=1) {{/* Open M */ PDL_EXPAND2(register PDL_Indx M=0, __M_stop=(__M_size)); for(; M<__M_stop; M+=1) { (c_datap)[0+(__inc_c_M*(M))+(__inc_c_NC*(NC))] = 0; }} /* Close NC=nci */}} /* Close M */
    0          
474 0 0         }PDL_BROADCASTLOOP_END_unionvec_readdata
    0          
475 0           } break;
476 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in unionvec: unhandled datatype(%d), only handles (ABSULKNPQFDE)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
477             }
478             #undef PDL_IF_BAD
479 12           return PDL_err;
480             }
481              
482             static pdl_datatypes pdl_unionvec_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, -1 };
483             static PDL_Indx pdl_unionvec_vtable_realdims[] = { 2, 2, 2, 0 };
484             static char *pdl_unionvec_vtable_parnames[] = { "a","b","c","nc" };
485             static short pdl_unionvec_vtable_parflags[] = {
486             0,
487             0,
488             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISWRITE,
489             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISTYPED|PDL_PARAM_ISWRITE
490             };
491             static pdl_datatypes pdl_unionvec_vtable_partypes[] = { -1, -1, -1, PDL_IND };
492             static PDL_Indx pdl_unionvec_vtable_realdims_starts[] = { 0, 2, 4, 6 };
493             static PDL_Indx pdl_unionvec_vtable_realdims_ind_ids[] = { 0, 1, 0, 2, 0, 3 };
494             static char *pdl_unionvec_vtable_indnames[] = { "M","NA","NB","NC" };
495             pdl_transvtable pdl_unionvec_vtable = {
496             PDL_TRANS_DO_BROADCAST, 0, pdl_unionvec_vtable_gentypes, 2, 4, NULL /*CORE21*/,
497             pdl_unionvec_vtable_realdims, pdl_unionvec_vtable_parnames,
498             pdl_unionvec_vtable_parflags, pdl_unionvec_vtable_partypes,
499             pdl_unionvec_vtable_realdims_starts, pdl_unionvec_vtable_realdims_ind_ids, 6,
500             4, pdl_unionvec_vtable_indnames,
501             pdl_unionvec_redodims, pdl_unionvec_readdata, NULL,
502             NULL,
503             0,"PDL::Primitive::unionvec"
504             };
505              
506              
507 12           pdl_error pdl_run_unionvec(pdl *a,pdl *b,pdl *c,pdl *nc) {
508 12           pdl_error PDL_err = {0, NULL, 0};
509 12 50         if (!PDL) return (pdl_error){PDL_EFATAL, "PDL core struct is NULL, can't continue",0};
510 12           pdl_trans *__privtrans = PDL->create_trans(&pdl_unionvec_vtable);
511 12 50         if (!__privtrans) return PDL->make_error_simple(PDL_EFATAL, "Couldn't create trans");
512 12           __privtrans->pdls[0] = a;
513 12           __privtrans->pdls[1] = b;
514 12           __privtrans->pdls[2] = c;
515 12           __privtrans->pdls[3] = nc;
516 12 50         PDL_RETERROR(PDL_err, PDL->type_coerce(__privtrans));
517 12 50         PDL_RETERROR(PDL_err, PDL->make_trans_mutual(__privtrans));
518 12           return PDL_err;
519             }