File Coverage

pp-levmar_der_lb.c
Criterion Covered Total %
statement 0 126 0.0
branch 0 232 0.0
condition n/a
subroutine n/a
pod n/a
total 0 358 0.0


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 levmar.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_Fit_Levmar
21             extern Core* PDL; /* Structure hold core C functions */
22             #line 23 "pp-levmar_der_lb.c"
23              
24             #include
25             #include
26             #include
27             #include
28             #include "pdlperlfunc.h"
29             #include "levmar.h"
30              
31             #line 1846 "lib/PDL/PP.pm"
32             typedef struct pdl_params_levmar_der_lb {
33             #line 34 "pp-levmar_der_lb.c"
34             IV funcn;
35             IV sfuncn;
36             IV jacn;
37             IV sjacn;
38             IV indat;
39             int want_covar;
40             } pdl_params_levmar_der_lb;
41              
42              
43             #line 1857 "lib/PDL/PP.pm"
44             pdl_error pdl_levmar_der_lb_redodims(pdl_trans *__privtrans) {
45             pdl_error PDL_err = {0, NULL, 0};
46             #line 47 "pp-levmar_der_lb.c"
47 0           pdl_params_levmar_der_lb *__params = __privtrans->params; (void)__params;
48 0           __privtrans->ind_sizes[5] = 10;
49             #ifndef PDL_DECLARE_PARAMS_levmar_der_lb_0
50             #define PDL_DECLARE_PARAMS_levmar_der_lb_0(PDL_TYPE_OP,PDL_PPSYM_OP,PDL_TYPE_PARAM_iopts,PDL_PPSYM_PARAM_iopts,PDL_TYPE_PARAM_returnval,PDL_PPSYM_PARAM_returnval) \
51             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, p, (__privtrans->pdls[0]), 0, PDL_PPSYM_OP) \
52             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, x, (__privtrans->pdls[1]), 0, PDL_PPSYM_OP) \
53             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, t, (__privtrans->pdls[2]), 0, PDL_PPSYM_OP) \
54             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, lb, (__privtrans->pdls[3]), 0, PDL_PPSYM_OP) \
55             PDL_DECLARE_PARAMETER(PDL_TYPE_PARAM_iopts, iopts, (__privtrans->pdls[4]), 0, PDL_PPSYM_PARAM_iopts) \
56             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, opts, (__privtrans->pdls[5]), 0, PDL_PPSYM_OP) \
57             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, work, (__privtrans->pdls[6]), 0, PDL_PPSYM_OP) \
58             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, covar, (__privtrans->pdls[7]), 0, PDL_PPSYM_OP) \
59             PDL_DECLARE_PARAMETER(PDL_TYPE_PARAM_returnval, returnval, (__privtrans->pdls[8]), 0, PDL_PPSYM_PARAM_returnval) \
60             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, pout, (__privtrans->pdls[9]), 0, PDL_PPSYM_OP) \
61             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, info, (__privtrans->pdls[10]), 0, PDL_PPSYM_OP)
62             #endif
63             #define PDL_IF_BAD(t,f) f
64 0           switch (__privtrans->__datatype) { /* Start generic switch */
65 0           case PDL_F: {
66 0 0         PDL_DECLARE_PARAMS_levmar_der_lb_0(PDL_Float,F,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
67             {
68 0           int im = __privtrans->pdls[0]->dims[0];
69 0           int in = __privtrans->pdls[1]->dims[0];
70 0           int min = 2*in + 4*im + in*im + im*im;
71 0           int inw = __privtrans->pdls[6]->dims[0];
72 0           __privtrans->ind_sizes[6] = inw >= min ? inw : min;
73             }
74 0           } break;
75 0           case PDL_D: {
76 0 0         PDL_DECLARE_PARAMS_levmar_der_lb_0(PDL_Double,D,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
77             {
78 0           int im = __privtrans->pdls[0]->dims[0];
79 0           int in = __privtrans->pdls[1]->dims[0];
80 0           int min = 2*in + 4*im + in*im + im*im;
81 0           int inw = __privtrans->pdls[6]->dims[0];
82 0           __privtrans->ind_sizes[6] = inw >= min ? inw : min;
83             }
84 0           } break;
85 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in levmar_der_lb: unhandled datatype(%d), only handles (FD)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
86             }
87             #undef PDL_IF_BAD
88              
89 0 0         PDL_RETERROR(PDL_err, PDL->redodims_default(__privtrans));
90 0           return PDL_err;
91             }
92              
93              
94             #line 1857 "lib/PDL/PP.pm"
95             pdl_error pdl_levmar_der_lb_readdata(pdl_trans *__privtrans) {
96             pdl_error PDL_err = {0, NULL, 0};
97             #line 98 "pp-levmar_der_lb.c"
98 0           pdl_params_levmar_der_lb *__params = __privtrans->params; (void)__params;
99 0           register PDL_Indx __m_size = __privtrans->ind_sizes[1];
100 0 0         if (!__privtrans->broadcast.incs) return PDL->make_error(PDL_EUSERERROR, "Error in levmar_der_lb:" "broadcast.incs NULL");
101             /* broadcastloop declarations */
102             int __brcloopval;
103             register PDL_Indx __tind0,__tind1; /* counters along dim */
104 0           register PDL_Indx __tnpdls = __privtrans->broadcast.npdls;
105             /* dims here are how many steps along those dims */
106 0           register PDL_Indx __tinc0_p = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,0);
107 0           register PDL_Indx __tinc0_x = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,0);
108 0           register PDL_Indx __tinc0_t = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,2,0);
109 0           register PDL_Indx __tinc0_lb = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,3,0);
110 0           register PDL_Indx __tinc0_iopts = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,4,0);
111 0           register PDL_Indx __tinc0_opts = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,5,0);
112 0           register PDL_Indx __tinc0_work = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,6,0);
113 0           register PDL_Indx __tinc0_covar = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,7,0);
114 0           register PDL_Indx __tinc0_returnval = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,8,0);
115 0           register PDL_Indx __tinc0_pout = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,9,0);
116 0           register PDL_Indx __tinc0_info = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,10,0);
117 0           register PDL_Indx __tinc1_p = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,0,1);
118 0           register PDL_Indx __tinc1_x = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,1,1);
119 0           register PDL_Indx __tinc1_t = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,2,1);
120 0           register PDL_Indx __tinc1_lb = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,3,1);
121 0           register PDL_Indx __tinc1_iopts = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,4,1);
122 0           register PDL_Indx __tinc1_opts = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,5,1);
123 0           register PDL_Indx __tinc1_work = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,6,1);
124 0           register PDL_Indx __tinc1_covar = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,7,1);
125 0           register PDL_Indx __tinc1_returnval = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,8,1);
126 0           register PDL_Indx __tinc1_pout = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,9,1);
127 0           register PDL_Indx __tinc1_info = PDL_BRC_INC(__privtrans->broadcast.incs,__tnpdls,10,1);
128             #define PDL_BROADCASTLOOP_START_levmar_der_lb_readdata PDL_BROADCASTLOOP_START( \
129             readdata, \
130             __privtrans->broadcast, \
131             __privtrans->vtable, \
132             p_datap += __offsp[0]; \
133             x_datap += __offsp[1]; \
134             t_datap += __offsp[2]; \
135             lb_datap += __offsp[3]; \
136             iopts_datap += __offsp[4]; \
137             opts_datap += __offsp[5]; \
138             work_datap += __offsp[6]; \
139             covar_datap += __offsp[7]; \
140             returnval_datap += __offsp[8]; \
141             pout_datap += __offsp[9]; \
142             info_datap += __offsp[10]; \
143             , \
144             ( ,p_datap += __tinc1_p - __tinc0_p * __tdims0 \
145             ,x_datap += __tinc1_x - __tinc0_x * __tdims0 \
146             ,t_datap += __tinc1_t - __tinc0_t * __tdims0 \
147             ,lb_datap += __tinc1_lb - __tinc0_lb * __tdims0 \
148             ,iopts_datap += __tinc1_iopts - __tinc0_iopts * __tdims0 \
149             ,opts_datap += __tinc1_opts - __tinc0_opts * __tdims0 \
150             ,work_datap += __tinc1_work - __tinc0_work * __tdims0 \
151             ,covar_datap += __tinc1_covar - __tinc0_covar * __tdims0 \
152             ,returnval_datap += __tinc1_returnval - __tinc0_returnval * __tdims0 \
153             ,pout_datap += __tinc1_pout - __tinc0_pout * __tdims0 \
154             ,info_datap += __tinc1_info - __tinc0_info * __tdims0 \
155             ), \
156             ( ,p_datap += __tinc0_p \
157             ,x_datap += __tinc0_x \
158             ,t_datap += __tinc0_t \
159             ,lb_datap += __tinc0_lb \
160             ,iopts_datap += __tinc0_iopts \
161             ,opts_datap += __tinc0_opts \
162             ,work_datap += __tinc0_work \
163             ,covar_datap += __tinc0_covar \
164             ,returnval_datap += __tinc0_returnval \
165             ,pout_datap += __tinc0_pout \
166             ,info_datap += __tinc0_info \
167             ) \
168             )
169             #define PDL_BROADCASTLOOP_END_levmar_der_lb_readdata PDL_BROADCASTLOOP_END( \
170             __privtrans->broadcast, \
171             p_datap -= __tinc1_p * __tdims1 + __offsp[0]; \
172             x_datap -= __tinc1_x * __tdims1 + __offsp[1]; \
173             t_datap -= __tinc1_t * __tdims1 + __offsp[2]; \
174             lb_datap -= __tinc1_lb * __tdims1 + __offsp[3]; \
175             iopts_datap -= __tinc1_iopts * __tdims1 + __offsp[4]; \
176             opts_datap -= __tinc1_opts * __tdims1 + __offsp[5]; \
177             work_datap -= __tinc1_work * __tdims1 + __offsp[6]; \
178             covar_datap -= __tinc1_covar * __tdims1 + __offsp[7]; \
179             returnval_datap -= __tinc1_returnval * __tdims1 + __offsp[8]; \
180             pout_datap -= __tinc1_pout * __tdims1 + __offsp[9]; \
181             info_datap -= __tinc1_info * __tdims1 + __offsp[10]; \
182             )
183 0           register PDL_Indx __inc_covar_m0 = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,7,0)]; (void)__inc_covar_m0;register PDL_Indx __inc_covar_m1 = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,7,1)]; (void)__inc_covar_m1;
184 0           register PDL_Indx __inc_info_q = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,10,0)]; (void)__inc_info_q;
185 0           register PDL_Indx __inc_iopts_in = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,4,0)]; (void)__inc_iopts_in;
186 0           register PDL_Indx __inc_lb_m = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,3,0)]; (void)__inc_lb_m;
187 0           register PDL_Indx __inc_opts_nopt = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,5,0)]; (void)__inc_opts_nopt;
188 0           register PDL_Indx __inc_p_m = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,0,0)]; (void)__inc_p_m;
189 0           register PDL_Indx __inc_pout_m = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,9,0)]; (void)__inc_pout_m;
190 0           register PDL_Indx __inc_t_nt = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,2,0)]; (void)__inc_t_nt;
191 0           register PDL_Indx __inc_work_wn = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,6,0)]; (void)__inc_work_wn;
192 0           register PDL_Indx __inc_x_n = __privtrans->inc_sizes[PDL_INC_ID(__privtrans->vtable,1,0)]; (void)__inc_x_n;
193             #ifndef PDL_DECLARE_PARAMS_levmar_der_lb_1
194             #define PDL_DECLARE_PARAMS_levmar_der_lb_1(PDL_TYPE_OP,PDL_PPSYM_OP,PDL_TYPE_PARAM_iopts,PDL_PPSYM_PARAM_iopts,PDL_TYPE_PARAM_returnval,PDL_PPSYM_PARAM_returnval) \
195             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, p, (__privtrans->pdls[0]), 1, PDL_PPSYM_OP) \
196             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, x, (__privtrans->pdls[1]), 1, PDL_PPSYM_OP) \
197             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, t, (__privtrans->pdls[2]), 1, PDL_PPSYM_OP) \
198             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, lb, (__privtrans->pdls[3]), 1, PDL_PPSYM_OP) \
199             PDL_DECLARE_PARAMETER(PDL_TYPE_PARAM_iopts, iopts, (__privtrans->pdls[4]), 1, PDL_PPSYM_PARAM_iopts) \
200             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, opts, (__privtrans->pdls[5]), 1, PDL_PPSYM_OP) \
201             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, work, (__privtrans->pdls[6]), 1, PDL_PPSYM_OP) \
202             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, covar, (__privtrans->pdls[7]), 1, PDL_PPSYM_OP) \
203             PDL_DECLARE_PARAMETER(PDL_TYPE_PARAM_returnval, returnval, (__privtrans->pdls[8]), 1, PDL_PPSYM_PARAM_returnval) \
204             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, pout, (__privtrans->pdls[9]), 1, PDL_PPSYM_OP) \
205             PDL_DECLARE_PARAMETER(PDL_TYPE_OP, info, (__privtrans->pdls[10]), 1, PDL_PPSYM_OP)
206             #endif
207             #define PDL_IF_BAD(t,f) f
208 0           switch (__privtrans->__datatype) { /* Start generic switch */
209 0           case PDL_F: {
210 0 0         PDL_DECLARE_PARAMS_levmar_der_lb_1(PDL_Float,F,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
211             {
212             int * iopts;
213             int maxits;
214 0           void * tfuncn = (void *) __params->funcn;
215 0           void * tsfuncn = (void *) __params->sfuncn;
216             PDL_Float * pcovar;
217             PDL_Float * pwork;
218 0           void * tjacn = (void *) __params->jacn;
219 0           void * tsjacn = (void *) __params->sjacn;;
220 0           DFP *dat = (void *) __params->indat;
221 0           DFP_check( &dat, PDL_F, __privtrans->ind_sizes[1], __privtrans->ind_sizes[2],
222 0           __privtrans->ind_sizes[4], t_datap );
223 0 0         PDL_BROADCASTLOOP_START_levmar_der_lb_readdata
    0          
    0          
    0          
    0          
    0          
    0          
224 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
225 0           (pout_datap)[0+(__inc_pout_m*(m))] = (p_datap)[0+(__inc_p_m*(m))];
226             }} /* Close m */
227 0           iopts = iopts_datap;
228 0 0         pcovar = __params->want_covar == 1 ? covar_datap : NULL;
229 0           pwork = 0 == 1 ? NULL : work_datap;
230 0           maxits = iopts[0]; /* for clarity. we hope optimized away */
231 0           (returnval_datap)[0] = slevmar_bc_der (
232             tsfuncn , tsjacn,
233 0           pout_datap, x_datap, __privtrans->ind_sizes[1], __privtrans->ind_sizes[2], lb_datap, NULL,NULL,
234             maxits, opts_datap, info_datap, pwork, pcovar, dat);
235 0 0         PDL_BROADCASTLOOP_END_levmar_der_lb_readdata
    0          
236             }
237 0           } break;
238 0           case PDL_D: {
239 0 0         PDL_DECLARE_PARAMS_levmar_der_lb_1(PDL_Double,D,PDL_Long,L,PDL_Long,L)
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
240             {
241             int * iopts;
242             int maxits;
243 0           void * tfuncn = (void *) __params->funcn;
244 0           void * tsfuncn = (void *) __params->sfuncn;
245             PDL_Double * pcovar;
246             PDL_Double * pwork;
247 0           void * tjacn = (void *) __params->jacn;
248 0           void * tsjacn = (void *) __params->sjacn;;
249 0           DFP *dat = (void *) __params->indat;
250 0           DFP_check( &dat, PDL_D, __privtrans->ind_sizes[1], __privtrans->ind_sizes[2],
251 0           __privtrans->ind_sizes[4], t_datap );
252 0 0         PDL_BROADCASTLOOP_START_levmar_der_lb_readdata
    0          
    0          
    0          
    0          
    0          
    0          
253 0 0         {/* Open m */ PDL_EXPAND2(register PDL_Indx m=0, __m_stop=(__m_size)); for(; m<__m_stop; m+=1) {
254 0           (pout_datap)[0+(__inc_pout_m*(m))] = (p_datap)[0+(__inc_p_m*(m))];
255             }} /* Close m */
256 0           iopts = iopts_datap;
257 0 0         pcovar = __params->want_covar == 1 ? covar_datap : NULL;
258 0           pwork = 0 == 1 ? NULL : work_datap;
259 0           maxits = iopts[0]; /* for clarity. we hope optimized away */
260 0           (returnval_datap)[0] = dlevmar_bc_der (
261             tfuncn , tjacn,
262 0           pout_datap, x_datap, __privtrans->ind_sizes[1], __privtrans->ind_sizes[2], lb_datap, NULL,NULL,
263             maxits, opts_datap, info_datap, pwork, pcovar, dat);
264 0 0         PDL_BROADCASTLOOP_END_levmar_der_lb_readdata
    0          
265             }
266 0           } break;
267 0           default: return PDL->make_error(PDL_EUSERERROR, "PP INTERNAL ERROR in levmar_der_lb: unhandled datatype(%d), only handles (FD)! PLEASE MAKE A BUG REPORT\n", __privtrans->__datatype);
268             }
269             #undef PDL_IF_BAD
270 0           return PDL_err;
271             }
272              
273             static pdl_datatypes pdl_levmar_der_lb_vtable_gentypes[] = { PDL_F, PDL_D, -1 };
274             static PDL_Indx pdl_levmar_der_lb_vtable_realdims[] = { 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, 1 };
275             static char *pdl_levmar_der_lb_vtable_parnames[] = { "p","x","t","lb","iopts","opts","work","covar","returnval","pout","info" };
276             static short pdl_levmar_der_lb_vtable_parflags[] = {
277             0,
278             PDL_PARAM_ISPHYS,
279             PDL_PARAM_ISPHYS,
280             PDL_PARAM_ISPHYS,
281             PDL_PARAM_ISPHYS|PDL_PARAM_ISTYPED,
282             PDL_PARAM_ISPHYS,
283             PDL_PARAM_ISCREAT|PDL_PARAM_ISPHYS|PDL_PARAM_ISTEMP|PDL_PARAM_ISWRITE,
284             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISPHYS|PDL_PARAM_ISWRITE,
285             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISTYPED|PDL_PARAM_ISWRITE,
286             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISPHYS|PDL_PARAM_ISWRITE,
287             PDL_PARAM_ISCREAT|PDL_PARAM_ISOUT|PDL_PARAM_ISPHYS|PDL_PARAM_ISWRITE
288             };
289             static pdl_datatypes pdl_levmar_der_lb_vtable_partypes[] = { -1, -1, -1, -1, PDL_L, -1, -1, -1, PDL_L, -1, -1 };
290             static PDL_Indx pdl_levmar_der_lb_vtable_realdims_starts[] = { 0, 1, 2, 3, 4, 5, 6, 7, 9, 9, 10 };
291             static PDL_Indx pdl_levmar_der_lb_vtable_realdims_ind_ids[] = { 1, 2, 4, 1, 0, 3, 6, 1, 1, 1, 5 };
292             static char *pdl_levmar_der_lb_vtable_indnames[] = { "in","m","n","nopt","nt","q","wn" };
293             pdl_transvtable pdl_levmar_der_lb_vtable = {
294             PDL_TRANS_DO_BROADCAST, 0, pdl_levmar_der_lb_vtable_gentypes, 6, 11, NULL /*CORE21*/,
295             pdl_levmar_der_lb_vtable_realdims, pdl_levmar_der_lb_vtable_parnames,
296             pdl_levmar_der_lb_vtable_parflags, pdl_levmar_der_lb_vtable_partypes,
297             pdl_levmar_der_lb_vtable_realdims_starts, pdl_levmar_der_lb_vtable_realdims_ind_ids, 11,
298             7, pdl_levmar_der_lb_vtable_indnames,
299             pdl_levmar_der_lb_redodims, pdl_levmar_der_lb_readdata, NULL,
300             NULL,
301             sizeof(pdl_params_levmar_der_lb),"PDL::Fit::Levmar::levmar_der_lb"
302             };
303              
304              
305 0           pdl_error pdl_run_levmar_der_lb(pdl *p,pdl *x,pdl *t,pdl *lb,pdl *iopts,pdl *opts,pdl *covar,pdl *returnval,pdl *pout,pdl *info,IV funcn,IV sfuncn,IV jacn,IV sjacn,IV indat,int want_covar) {
306 0           pdl_error PDL_err = {0, NULL, 0};
307 0 0         if (!PDL) return (pdl_error){PDL_EFATAL, "PDL core struct is NULL, can't continue",0};
308 0           pdl_trans *__privtrans = PDL->create_trans(&pdl_levmar_der_lb_vtable);
309 0 0         if (!__privtrans) return PDL->make_error_simple(PDL_EFATAL, "Couldn't create trans");
310 0           pdl_params_levmar_der_lb *__params = __privtrans->params;
311 0           __privtrans->pdls[0] = p;
312 0           __privtrans->pdls[1] = x;
313 0           __privtrans->pdls[2] = t;
314 0           __privtrans->pdls[3] = lb;
315 0           __privtrans->pdls[4] = iopts;
316 0           __privtrans->pdls[5] = opts;
317 0           __privtrans->pdls[7] = covar;
318 0           __privtrans->pdls[8] = returnval;
319 0           __privtrans->pdls[9] = pout;
320 0           __privtrans->pdls[10] = info;
321 0 0         PDL_RETERROR(PDL_err, PDL->type_coerce(__privtrans));
322 0           (__params->funcn) = (funcn); /* CType.get_copy */
323 0           (__params->sfuncn) = (sfuncn); /* CType.get_copy */
324 0           (__params->jacn) = (jacn); /* CType.get_copy */
325 0           (__params->sjacn) = (sjacn); /* CType.get_copy */
326 0           (__params->indat) = (indat); /* CType.get_copy */
327 0           (__params->want_covar) = (want_covar); /* CType.get_copy */
328 0 0         PDL_RETERROR(PDL_err, PDL->make_trans_mutual(__privtrans));
329 0           return PDL_err;
330             }