File Coverage

lib/PDL/Primitive-pp-hclip.c
Criterion Covered Total %
statement 27 145 18.6
branch 31 1140 2.7
condition n/a
subroutine n/a
pod n/a
total 58 1285 4.5


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_hclip_readdata(pdl_trans *__privtrans) {
25             pdl_error PDL_err = {0, NULL, 0};
26             #line 27 "lib/PDL/Primitive-pp-hclip.c"
27 2 50         if (!__privtrans->broadcast.incs) return PDL->make_error(PDL_EUSERERROR, "Error in hclip:" "broadcast.incs NULL");
28             /* broadcastloop declarations */
29             int __brcloopval;
30             register PDL_Indx __tind0,__tind1; /* counters along dim */
31 2           register PDL_Indx __tnpdls = __privtrans->broadcast.npdls;
32             /* dims here are how many steps along those dims */
33 2           register PDL_Indx __tinc0_a = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,0);
34 2           register PDL_Indx __tinc0_b = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,0);
35 2           register PDL_Indx __tinc0_c = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,2,0);
36 2           register PDL_Indx __tinc1_a = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,1);
37 2           register PDL_Indx __tinc1_b = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,1);
38 2           register PDL_Indx __tinc1_c = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,2,1);
39             #define PDL_BROADCASTLOOP_START_hclip_readdata PDL_BROADCASTLOOP_START( \
40             readdata, \
41             __privtrans->broadcast, \
42             __privtrans->vtable, \
43             a_datap += __offsp[0]; \
44             b_datap += __offsp[1]; \
45             c_datap += __offsp[2]; \
46             , \
47             ( ,a_datap += __tinc1_a - __tinc0_a * __tdims0 \
48             ,b_datap += __tinc1_b - __tinc0_b * __tdims0 \
49             ,c_datap += __tinc1_c - __tinc0_c * __tdims0 \
50             ), \
51             ( ,a_datap += __tinc0_a \
52             ,b_datap += __tinc0_b \
53             ,c_datap += __tinc0_c \
54             ) \
55             )
56             #define PDL_BROADCASTLOOP_END_hclip_readdata PDL_BROADCASTLOOP_END( \
57             __privtrans->broadcast, \
58             a_datap -= __tinc1_a * __tdims1 + __offsp[0]; \
59             b_datap -= __tinc1_b * __tdims1 + __offsp[1]; \
60             c_datap -= __tinc1_c * __tdims1 + __offsp[2]; \
61             )
62             #ifndef PDL_DECLARE_PARAMS_hclip_1
63             #define PDL_DECLARE_PARAMS_hclip_1(PDL_TYPE_OP,PDL_PPSYM_OP) \
64             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, a, (__privtrans->pdls[0]), 1, PDL_PPSYM_OP) \
65             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, b, (__privtrans->pdls[1]), 1, PDL_PPSYM_OP) \
66             PDL_DECLARE_PARAMETER_BADVAL(PDL_TYPE_OP, c, (__privtrans->pdls[2]), 1, PDL_PPSYM_OP)
67             #endif
68 2 50         if ( __privtrans->bvalflag ) { /* ** do 'bad' Code ** */
69             #define PDL_BAD_CODE
70             #define PDL_IF_BAD(t,f) t
71 0           switch (__privtrans->__datatype) { /* Start generic switch */
72 0           case PDL_SB: {
73 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_SByte,A)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
74 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,A,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,A,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
75             (c_datap)[0]=c_badval;
76 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
77 0           } break;
78 0           case PDL_B: {
79 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_Byte,B)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
80 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,B,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,B,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
81             (c_datap)[0]=c_badval;
82 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
83 0           } break;
84 0           case PDL_S: {
85 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_Short,S)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
86 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,S,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,S,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
87             (c_datap)[0]=c_badval;
88 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
89 0           } break;
90 0           case PDL_US: {
91 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_Ushort,U)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
92 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,U,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,U,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
93             (c_datap)[0]=c_badval;
94 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
95 0           } break;
96 0           case PDL_L: {
97 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
98 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,L,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,L,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
99             (c_datap)[0]=c_badval;
100 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
101 0           } break;
102 0           case PDL_UL: {
103 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_ULong,K)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
104 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,K,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,K,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
105             (c_datap)[0]=c_badval;
106 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
107 0           } break;
108 0           case PDL_IND: {
109 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
110 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,N,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,N,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
111             (c_datap)[0]=c_badval;
112 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
113 0           } break;
114 0           case PDL_ULL: {
115 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_ULongLong,P)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
116 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,P,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,P,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
117             (c_datap)[0]=c_badval;
118 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
119 0           } break;
120 0           case PDL_LL: {
121 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_LongLong,Q)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
122 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,Q,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,Q,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
123             (c_datap)[0]=c_badval;
124 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
125 0           } break;
126 0           case PDL_F: {
127 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
128 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,F,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,F,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
129             (c_datap)[0]=c_badval;
130 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
    0          
131 0           } break;
132 0           case PDL_D: {
133 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_Double,D)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
134 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,D,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,D,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
135             (c_datap)[0]=c_badval;
136 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
    0          
137 0           } break;
138 0           case PDL_LD: {
139 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_LDouble,E)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
140 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,E,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,E,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
141             (c_datap)[0]=c_badval;
142 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
    0          
143 0           } break;
144 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in hclip: unhandled datatype(%d), only handles (ABSULKNPQFDE)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
145             }
146             #undef PDL_BAD_CODE
147             #undef PDL_IF_BAD
148             } else { /* ** else do 'good' Code ** */
149             #define PDL_IF_BAD(t,f) f
150 2           switch (__privtrans->__datatype) { /* Start generic switch */
151 0           case PDL_SB: {
152 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_SByte,A)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
153 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,A,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,A,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
154             (c_datap)[0]=c_badval;
155 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
156 0           } break;
157 0           case PDL_B: {
158 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_Byte,B)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
159 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,B,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,B,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
160             (c_datap)[0]=c_badval;
161 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
162 0           } break;
163 0           case PDL_S: {
164 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_Short,S)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
165 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,S,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,S,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
166             (c_datap)[0]=c_badval;
167 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
168 0           } break;
169 0           case PDL_US: {
170 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_Ushort,U)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
171 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,U,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,U,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
172             (c_datap)[0]=c_badval;
173 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
174 0           } break;
175 0           case PDL_L: {
176 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
177 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,L,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,L,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
178             (c_datap)[0]=c_badval;
179 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
180 0           } break;
181 0           case PDL_UL: {
182 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_ULong,K)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
183 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,K,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,K,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
184             (c_datap)[0]=c_badval;
185 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
186 0           } break;
187 0           case PDL_IND: {
188 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_Indx,N)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
189 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,N,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,N,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
190             (c_datap)[0]=c_badval;
191 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
192 0           } break;
193 0           case PDL_ULL: {
194 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_ULongLong,P)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
195 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,P,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,P,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
196             (c_datap)[0]=c_badval;
197 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
198 0           } break;
199 0           case PDL_LL: {
200 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_LongLong,Q)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
201 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,Q,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,Q,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
202             (c_datap)[0]=c_badval;
203 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
204 0           } break;
205 0           case PDL_F: {
206 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_Float,F)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
207 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,F,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,F,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
208             (c_datap)[0]=c_badval;
209 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
    0          
210 0           } break;
211 2           case PDL_D: {
212 2 50         PDL_DECLARE_PARAMS_hclip_1(PDL_Double,D)
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
    50          
213 64 50         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,D,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,D,b_badval_isnan) ) {
    50          
    50          
    50          
    50          
    100          
    100          
214             (c_datap)[0]=c_badval;
215 52 100         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    50          
    50          
216 2           } break;
217 0           case PDL_LD: {
218 0 0         PDL_DECLARE_PARAMS_hclip_1(PDL_LDouble,E)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
219 0 0         PDL_BROADCASTLOOP_START_hclip_readdata {PDL_IF_BAD(if ( PDL_ISBAD2((a_datap)[0],a_badval,E,a_badval_isnan) || PDL_ISBAD2((b_datap)[0],b_badval,E,b_badval_isnan) ) {
    0          
    0          
    0          
    0          
    0          
    0          
220             (c_datap)[0]=c_badval;
221 0 0         } else,) { (c_datap)[0] = PDLMIN((b_datap)[0], (a_datap)[0]); }}PDL_BROADCASTLOOP_END_hclip_readdata
    0          
    0          
222 0           } break;
223 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in hclip: unhandled datatype(%d), only handles (ABSULKNPQFDE)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
224             }
225             #undef PDL_IF_BAD
226             }
227 2           return PDL_err;
228             }
229              
230             static pdl_datatypes pdl_hclip_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 };
231             static PDL_Indx pdl_hclip_vtable_realdims[] = { 0, 0, 0 };
232             static char *pdl_hclip_vtable_parnames[] = { "a","b","c" };
233             static short pdl_hclip_vtable_parflags[] = {
234             0,
235             0,
236             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISWRITE
237             };
238             static pdl_datatypes pdl_hclip_vtable_partypes[] = { -1, -1, -1 };
239             static PDL_Indx pdl_hclip_vtable_realdims_starts[] = { 0, 0, 0 };
240             static PDL_Indx pdl_hclip_vtable_realdims_ind_ids[] = { 0 };
241             static char *pdl_hclip_vtable_indnames[] = { "" };
242             pdl_transvtable pdl_hclip_vtable = {
243             PDL_TRANS_DO_BROADCAST|PDL_TRANS_BADPROCESS, 0, pdl_hclip_vtable_gentypes, 2, 3, NULL /*CORE21*/,
244             pdl_hclip_vtable_realdims, pdl_hclip_vtable_parnames,
245             pdl_hclip_vtable_parflags, pdl_hclip_vtable_partypes,
246             pdl_hclip_vtable_realdims_starts, pdl_hclip_vtable_realdims_ind_ids, 0,
247             0, pdl_hclip_vtable_indnames,
248             NULL, pdl_hclip_readdata, NULL,
249             NULL,
250             0,"PDL::Primitive::hclip"
251             };
252              
253              
254 2           pdl_error pdl_run_hclip(pdl *a,pdl *b,pdl *c) {
255 2           pdl_error PDL_err = {0, NULL, 0};
256 2 50         if (!PDL) return (pdl_error){PDL_EFATAL, "PDL core struct is NULL, can't continue",0};
257 2           pdl_trans *__privtrans = PDL->create_trans(&pdl_hclip_vtable);
258 2 50         if (!__privtrans) return PDL->make_error_simple(PDL_EFATAL, "Couldn't create trans");
259 2           __privtrans->pdls[0] = a;
260 2           __privtrans->pdls[1] = b;
261 2           __privtrans->pdls[2] = c;
262 2 50         PDL_RETERROR(PDL_err, PDL->type_coerce(__privtrans));
263 2 50         PDL_RETERROR(PDL_err, PDL->make_trans_mutual(__privtrans));
264 2           return PDL_err;
265             }