File Coverage

pp-levmar_der_.c
Criterion Covered Total %
statement 120 122 98.3
branch 116 216 53.7
condition n/a
subroutine n/a
pod n/a
total 236 338 69.8


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