1# This file was automatically generated by SWIG (http://www.swig.org). 2# Version 4.0.1 3# 4# Do not make changes to this file unless you know what you are doing--modify 5# the SWIG interface file instead. 6 7package Math::GSL::Multifit; 8use base qw(Exporter); 9use base qw(DynaLoader); 10package Math::GSL::Multifitc; 11bootstrap Math::GSL::Multifit; 12package Math::GSL::Multifit; 13@EXPORT = qw(); 14 15# ---------- BASE METHODS ------------- 16 17package Math::GSL::Multifit; 18 19sub TIEHASH { 20 my ($classname,$obj) = @_; 21 return bless $obj, $classname; 22} 23 24sub CLEAR { } 25 26sub FIRSTKEY { } 27 28sub NEXTKEY { } 29 30sub FETCH { 31 my ($self,$field) = @_; 32 my $member_func = "swig_${field}_get"; 33 $self->$member_func(); 34} 35 36sub STORE { 37 my ($self,$field,$newval) = @_; 38 my $member_func = "swig_${field}_set"; 39 $self->$member_func($newval); 40} 41 42sub this { 43 my $ptr = shift; 44 return tied(%$ptr); 45} 46 47 48# ------- FUNCTION WRAPPERS -------- 49 50package Math::GSL::Multifit; 51 52*gsl_error = *Math::GSL::Multifitc::gsl_error; 53*gsl_stream_printf = *Math::GSL::Multifitc::gsl_stream_printf; 54*gsl_strerror = *Math::GSL::Multifitc::gsl_strerror; 55*gsl_set_error_handler = *Math::GSL::Multifitc::gsl_set_error_handler; 56*gsl_set_error_handler_off = *Math::GSL::Multifitc::gsl_set_error_handler_off; 57*gsl_set_stream_handler = *Math::GSL::Multifitc::gsl_set_stream_handler; 58*gsl_set_stream = *Math::GSL::Multifitc::gsl_set_stream; 59*gsl_permutation_alloc = *Math::GSL::Multifitc::gsl_permutation_alloc; 60*gsl_permutation_calloc = *Math::GSL::Multifitc::gsl_permutation_calloc; 61*gsl_permutation_init = *Math::GSL::Multifitc::gsl_permutation_init; 62*gsl_permutation_free = *Math::GSL::Multifitc::gsl_permutation_free; 63*gsl_permutation_memcpy = *Math::GSL::Multifitc::gsl_permutation_memcpy; 64*gsl_permutation_fread = *Math::GSL::Multifitc::gsl_permutation_fread; 65*gsl_permutation_fwrite = *Math::GSL::Multifitc::gsl_permutation_fwrite; 66*gsl_permutation_fscanf = *Math::GSL::Multifitc::gsl_permutation_fscanf; 67*gsl_permutation_fprintf = *Math::GSL::Multifitc::gsl_permutation_fprintf; 68*gsl_permutation_size = *Math::GSL::Multifitc::gsl_permutation_size; 69*gsl_permutation_data = *Math::GSL::Multifitc::gsl_permutation_data; 70*gsl_permutation_swap = *Math::GSL::Multifitc::gsl_permutation_swap; 71*gsl_permutation_valid = *Math::GSL::Multifitc::gsl_permutation_valid; 72*gsl_permutation_reverse = *Math::GSL::Multifitc::gsl_permutation_reverse; 73*gsl_permutation_inverse = *Math::GSL::Multifitc::gsl_permutation_inverse; 74*gsl_permutation_next = *Math::GSL::Multifitc::gsl_permutation_next; 75*gsl_permutation_prev = *Math::GSL::Multifitc::gsl_permutation_prev; 76*gsl_permutation_mul = *Math::GSL::Multifitc::gsl_permutation_mul; 77*gsl_permutation_linear_to_canonical = *Math::GSL::Multifitc::gsl_permutation_linear_to_canonical; 78*gsl_permutation_canonical_to_linear = *Math::GSL::Multifitc::gsl_permutation_canonical_to_linear; 79*gsl_permutation_inversions = *Math::GSL::Multifitc::gsl_permutation_inversions; 80*gsl_permutation_linear_cycles = *Math::GSL::Multifitc::gsl_permutation_linear_cycles; 81*gsl_permutation_canonical_cycles = *Math::GSL::Multifitc::gsl_permutation_canonical_cycles; 82*gsl_permutation_get = *Math::GSL::Multifitc::gsl_permutation_get; 83*gsl_multifit_linear_alloc = *Math::GSL::Multifitc::gsl_multifit_linear_alloc; 84*gsl_multifit_linear_free = *Math::GSL::Multifitc::gsl_multifit_linear_free; 85*gsl_multifit_linear = *Math::GSL::Multifitc::gsl_multifit_linear; 86*gsl_multifit_linear_svd = *Math::GSL::Multifitc::gsl_multifit_linear_svd; 87*gsl_multifit_linear_bsvd = *Math::GSL::Multifitc::gsl_multifit_linear_bsvd; 88*gsl_multifit_linear_solve = *Math::GSL::Multifitc::gsl_multifit_linear_solve; 89*gsl_multifit_linear_applyW = *Math::GSL::Multifitc::gsl_multifit_linear_applyW; 90*gsl_multifit_linear_stdform1 = *Math::GSL::Multifitc::gsl_multifit_linear_stdform1; 91*gsl_multifit_linear_wstdform1 = *Math::GSL::Multifitc::gsl_multifit_linear_wstdform1; 92*gsl_multifit_linear_L_decomp = *Math::GSL::Multifitc::gsl_multifit_linear_L_decomp; 93*gsl_multifit_linear_stdform2 = *Math::GSL::Multifitc::gsl_multifit_linear_stdform2; 94*gsl_multifit_linear_wstdform2 = *Math::GSL::Multifitc::gsl_multifit_linear_wstdform2; 95*gsl_multifit_linear_genform1 = *Math::GSL::Multifitc::gsl_multifit_linear_genform1; 96*gsl_multifit_linear_genform2 = *Math::GSL::Multifitc::gsl_multifit_linear_genform2; 97*gsl_multifit_linear_wgenform2 = *Math::GSL::Multifitc::gsl_multifit_linear_wgenform2; 98*gsl_multifit_linear_lreg = *Math::GSL::Multifitc::gsl_multifit_linear_lreg; 99*gsl_multifit_linear_lcurve = *Math::GSL::Multifitc::gsl_multifit_linear_lcurve; 100*gsl_multifit_linear_lcorner = *Math::GSL::Multifitc::gsl_multifit_linear_lcorner; 101*gsl_multifit_linear_lcorner2 = *Math::GSL::Multifitc::gsl_multifit_linear_lcorner2; 102*gsl_multifit_linear_Lk = *Math::GSL::Multifitc::gsl_multifit_linear_Lk; 103*gsl_multifit_linear_Lsobolev = *Math::GSL::Multifitc::gsl_multifit_linear_Lsobolev; 104*gsl_multifit_wlinear = *Math::GSL::Multifitc::gsl_multifit_wlinear; 105*gsl_multifit_wlinear_svd = *Math::GSL::Multifitc::gsl_multifit_wlinear_svd; 106*gsl_multifit_wlinear_usvd = *Math::GSL::Multifitc::gsl_multifit_wlinear_usvd; 107*gsl_multifit_linear_est = *Math::GSL::Multifitc::gsl_multifit_linear_est; 108*gsl_multifit_linear_rcond = *Math::GSL::Multifitc::gsl_multifit_linear_rcond; 109*gsl_multifit_linear_residuals = *Math::GSL::Multifitc::gsl_multifit_linear_residuals; 110*gsl_multifit_robust_alloc = *Math::GSL::Multifitc::gsl_multifit_robust_alloc; 111*gsl_multifit_robust_free = *Math::GSL::Multifitc::gsl_multifit_robust_free; 112*gsl_multifit_robust_tune = *Math::GSL::Multifitc::gsl_multifit_robust_tune; 113*gsl_multifit_robust_maxiter = *Math::GSL::Multifitc::gsl_multifit_robust_maxiter; 114*gsl_multifit_robust_name = *Math::GSL::Multifitc::gsl_multifit_robust_name; 115*gsl_multifit_robust_statistics = *Math::GSL::Multifitc::gsl_multifit_robust_statistics; 116*gsl_multifit_robust_weights = *Math::GSL::Multifitc::gsl_multifit_robust_weights; 117*gsl_multifit_robust = *Math::GSL::Multifitc::gsl_multifit_robust; 118*gsl_multifit_robust_est = *Math::GSL::Multifitc::gsl_multifit_robust_est; 119*gsl_multifit_robust_residuals = *Math::GSL::Multifitc::gsl_multifit_robust_residuals; 120*gsl_multifit_gradient = *Math::GSL::Multifitc::gsl_multifit_gradient; 121*gsl_multifit_covar = *Math::GSL::Multifitc::gsl_multifit_covar; 122*gsl_multifit_covar_QRPT = *Math::GSL::Multifitc::gsl_multifit_covar_QRPT; 123*gsl_multifit_fsolver_alloc = *Math::GSL::Multifitc::gsl_multifit_fsolver_alloc; 124*gsl_multifit_fsolver_free = *Math::GSL::Multifitc::gsl_multifit_fsolver_free; 125*gsl_multifit_fsolver_set = *Math::GSL::Multifitc::gsl_multifit_fsolver_set; 126*gsl_multifit_fsolver_iterate = *Math::GSL::Multifitc::gsl_multifit_fsolver_iterate; 127*gsl_multifit_fsolver_driver = *Math::GSL::Multifitc::gsl_multifit_fsolver_driver; 128*gsl_multifit_fsolver_name = *Math::GSL::Multifitc::gsl_multifit_fsolver_name; 129*gsl_multifit_fsolver_position = *Math::GSL::Multifitc::gsl_multifit_fsolver_position; 130*gsl_multifit_fdfsolver_alloc = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_alloc; 131*gsl_multifit_fdfsolver_set = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_set; 132*gsl_multifit_fdfsolver_wset = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_wset; 133*gsl_multifit_fdfsolver_iterate = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_iterate; 134*gsl_multifit_fdfsolver_driver = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_driver; 135*gsl_multifit_fdfsolver_jac = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_jac; 136*gsl_multifit_fdfsolver_free = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_free; 137*gsl_multifit_fdfsolver_name = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_name; 138*gsl_multifit_fdfsolver_position = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_position; 139*gsl_multifit_fdfsolver_residual = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_residual; 140*gsl_multifit_fdfsolver_niter = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_niter; 141*gsl_multifit_eval_wf = *Math::GSL::Multifitc::gsl_multifit_eval_wf; 142*gsl_multifit_eval_wdf = *Math::GSL::Multifitc::gsl_multifit_eval_wdf; 143*gsl_multifit_fdfsolver_test = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_test; 144*gsl_multifit_test_delta = *Math::GSL::Multifitc::gsl_multifit_test_delta; 145*gsl_multifit_test_gradient = *Math::GSL::Multifitc::gsl_multifit_test_gradient; 146*gsl_multifit_fdfsolver_dif_df = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_dif_df; 147*gsl_multifit_fdfridge_alloc = *Math::GSL::Multifitc::gsl_multifit_fdfridge_alloc; 148*gsl_multifit_fdfridge_free = *Math::GSL::Multifitc::gsl_multifit_fdfridge_free; 149*gsl_multifit_fdfridge_name = *Math::GSL::Multifitc::gsl_multifit_fdfridge_name; 150*gsl_multifit_fdfridge_position = *Math::GSL::Multifitc::gsl_multifit_fdfridge_position; 151*gsl_multifit_fdfridge_residual = *Math::GSL::Multifitc::gsl_multifit_fdfridge_residual; 152*gsl_multifit_fdfridge_niter = *Math::GSL::Multifitc::gsl_multifit_fdfridge_niter; 153*gsl_multifit_fdfridge_set = *Math::GSL::Multifitc::gsl_multifit_fdfridge_set; 154*gsl_multifit_fdfridge_wset = *Math::GSL::Multifitc::gsl_multifit_fdfridge_wset; 155*gsl_multifit_fdfridge_set2 = *Math::GSL::Multifitc::gsl_multifit_fdfridge_set2; 156*gsl_multifit_fdfridge_wset2 = *Math::GSL::Multifitc::gsl_multifit_fdfridge_wset2; 157*gsl_multifit_fdfridge_set3 = *Math::GSL::Multifitc::gsl_multifit_fdfridge_set3; 158*gsl_multifit_fdfridge_wset3 = *Math::GSL::Multifitc::gsl_multifit_fdfridge_wset3; 159*gsl_multifit_fdfridge_iterate = *Math::GSL::Multifitc::gsl_multifit_fdfridge_iterate; 160*gsl_multifit_fdfridge_driver = *Math::GSL::Multifitc::gsl_multifit_fdfridge_driver; 161 162############# Class : Math::GSL::Multifit::gsl_function_struct ############## 163 164package Math::GSL::Multifit::gsl_function_struct; 165use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); 166@ISA = qw( Math::GSL::Multifit ); 167%OWNER = (); 168%ITERATORS = (); 169*swig_function_get = *Math::GSL::Multifitc::gsl_function_struct_function_get; 170*swig_function_set = *Math::GSL::Multifitc::gsl_function_struct_function_set; 171*swig_params_get = *Math::GSL::Multifitc::gsl_function_struct_params_get; 172*swig_params_set = *Math::GSL::Multifitc::gsl_function_struct_params_set; 173sub new { 174 my $pkg = shift; 175 my $self = Math::GSL::Multifitc::new_gsl_function_struct(@_); 176 bless $self, $pkg if defined($self); 177} 178 179sub DESTROY { 180 return unless $_[0]->isa('HASH'); 181 my $self = tied(%{$_[0]}); 182 return unless defined $self; 183 delete $ITERATORS{$self}; 184 if (exists $OWNER{$self}) { 185 Math::GSL::Multifitc::delete_gsl_function_struct($self); 186 delete $OWNER{$self}; 187 } 188} 189 190sub DISOWN { 191 my $self = shift; 192 my $ptr = tied(%$self); 193 delete $OWNER{$ptr}; 194} 195 196sub ACQUIRE { 197 my $self = shift; 198 my $ptr = tied(%$self); 199 $OWNER{$ptr} = 1; 200} 201 202 203############# Class : Math::GSL::Multifit::gsl_function_fdf_struct ############## 204 205package Math::GSL::Multifit::gsl_function_fdf_struct; 206use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); 207@ISA = qw( Math::GSL::Multifit ); 208%OWNER = (); 209%ITERATORS = (); 210*swig_f_get = *Math::GSL::Multifitc::gsl_function_fdf_struct_f_get; 211*swig_f_set = *Math::GSL::Multifitc::gsl_function_fdf_struct_f_set; 212*swig_df_get = *Math::GSL::Multifitc::gsl_function_fdf_struct_df_get; 213*swig_df_set = *Math::GSL::Multifitc::gsl_function_fdf_struct_df_set; 214*swig_fdf_get = *Math::GSL::Multifitc::gsl_function_fdf_struct_fdf_get; 215*swig_fdf_set = *Math::GSL::Multifitc::gsl_function_fdf_struct_fdf_set; 216*swig_params_get = *Math::GSL::Multifitc::gsl_function_fdf_struct_params_get; 217*swig_params_set = *Math::GSL::Multifitc::gsl_function_fdf_struct_params_set; 218sub new { 219 my $pkg = shift; 220 my $self = Math::GSL::Multifitc::new_gsl_function_fdf_struct(@_); 221 bless $self, $pkg if defined($self); 222} 223 224sub DESTROY { 225 return unless $_[0]->isa('HASH'); 226 my $self = tied(%{$_[0]}); 227 return unless defined $self; 228 delete $ITERATORS{$self}; 229 if (exists $OWNER{$self}) { 230 Math::GSL::Multifitc::delete_gsl_function_fdf_struct($self); 231 delete $OWNER{$self}; 232 } 233} 234 235sub DISOWN { 236 my $self = shift; 237 my $ptr = tied(%$self); 238 delete $OWNER{$ptr}; 239} 240 241sub ACQUIRE { 242 my $self = shift; 243 my $ptr = tied(%$self); 244 $OWNER{$ptr} = 1; 245} 246 247 248############# Class : Math::GSL::Multifit::gsl_function_vec_struct ############## 249 250package Math::GSL::Multifit::gsl_function_vec_struct; 251use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); 252@ISA = qw( Math::GSL::Multifit ); 253%OWNER = (); 254%ITERATORS = (); 255*swig_function_get = *Math::GSL::Multifitc::gsl_function_vec_struct_function_get; 256*swig_function_set = *Math::GSL::Multifitc::gsl_function_vec_struct_function_set; 257*swig_params_get = *Math::GSL::Multifitc::gsl_function_vec_struct_params_get; 258*swig_params_set = *Math::GSL::Multifitc::gsl_function_vec_struct_params_set; 259sub new { 260 my $pkg = shift; 261 my $self = Math::GSL::Multifitc::new_gsl_function_vec_struct(@_); 262 bless $self, $pkg if defined($self); 263} 264 265sub DESTROY { 266 return unless $_[0]->isa('HASH'); 267 my $self = tied(%{$_[0]}); 268 return unless defined $self; 269 delete $ITERATORS{$self}; 270 if (exists $OWNER{$self}) { 271 Math::GSL::Multifitc::delete_gsl_function_vec_struct($self); 272 delete $OWNER{$self}; 273 } 274} 275 276sub DISOWN { 277 my $self = shift; 278 my $ptr = tied(%$self); 279 delete $OWNER{$ptr}; 280} 281 282sub ACQUIRE { 283 my $self = shift; 284 my $ptr = tied(%$self); 285 $OWNER{$ptr} = 1; 286} 287 288 289############# Class : Math::GSL::Multifit::gsl_permutation_struct ############## 290 291package Math::GSL::Multifit::gsl_permutation_struct; 292use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); 293@ISA = qw( Math::GSL::Multifit ); 294%OWNER = (); 295%ITERATORS = (); 296*swig_size_get = *Math::GSL::Multifitc::gsl_permutation_struct_size_get; 297*swig_size_set = *Math::GSL::Multifitc::gsl_permutation_struct_size_set; 298*swig_data_get = *Math::GSL::Multifitc::gsl_permutation_struct_data_get; 299*swig_data_set = *Math::GSL::Multifitc::gsl_permutation_struct_data_set; 300sub new { 301 my $pkg = shift; 302 my $self = Math::GSL::Multifitc::new_gsl_permutation_struct(@_); 303 bless $self, $pkg if defined($self); 304} 305 306sub DESTROY { 307 return unless $_[0]->isa('HASH'); 308 my $self = tied(%{$_[0]}); 309 return unless defined $self; 310 delete $ITERATORS{$self}; 311 if (exists $OWNER{$self}) { 312 Math::GSL::Multifitc::delete_gsl_permutation_struct($self); 313 delete $OWNER{$self}; 314 } 315} 316 317sub DISOWN { 318 my $self = shift; 319 my $ptr = tied(%$self); 320 delete $OWNER{$ptr}; 321} 322 323sub ACQUIRE { 324 my $self = shift; 325 my $ptr = tied(%$self); 326 $OWNER{$ptr} = 1; 327} 328 329 330############# Class : Math::GSL::Multifit::gsl_multifit_linear_workspace ############## 331 332package Math::GSL::Multifit::gsl_multifit_linear_workspace; 333use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); 334@ISA = qw( Math::GSL::Multifit ); 335%OWNER = (); 336%ITERATORS = (); 337*swig_nmax_get = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_nmax_get; 338*swig_nmax_set = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_nmax_set; 339*swig_pmax_get = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_pmax_get; 340*swig_pmax_set = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_pmax_set; 341*swig_n_get = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_n_get; 342*swig_n_set = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_n_set; 343*swig_p_get = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_p_get; 344*swig_p_set = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_p_set; 345*swig_A_get = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_A_get; 346*swig_A_set = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_A_set; 347*swig_Q_get = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_Q_get; 348*swig_Q_set = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_Q_set; 349*swig_QSI_get = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_QSI_get; 350*swig_QSI_set = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_QSI_set; 351*swig_S_get = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_S_get; 352*swig_S_set = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_S_set; 353*swig_t_get = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_t_get; 354*swig_t_set = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_t_set; 355*swig_xt_get = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_xt_get; 356*swig_xt_set = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_xt_set; 357*swig_D_get = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_D_get; 358*swig_D_set = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_D_set; 359*swig_rcond_get = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_rcond_get; 360*swig_rcond_set = *Math::GSL::Multifitc::gsl_multifit_linear_workspace_rcond_set; 361sub new { 362 my $pkg = shift; 363 my $self = Math::GSL::Multifitc::new_gsl_multifit_linear_workspace(@_); 364 bless $self, $pkg if defined($self); 365} 366 367sub DESTROY { 368 return unless $_[0]->isa('HASH'); 369 my $self = tied(%{$_[0]}); 370 return unless defined $self; 371 delete $ITERATORS{$self}; 372 if (exists $OWNER{$self}) { 373 Math::GSL::Multifitc::delete_gsl_multifit_linear_workspace($self); 374 delete $OWNER{$self}; 375 } 376} 377 378sub DISOWN { 379 my $self = shift; 380 my $ptr = tied(%$self); 381 delete $OWNER{$ptr}; 382} 383 384sub ACQUIRE { 385 my $self = shift; 386 my $ptr = tied(%$self); 387 $OWNER{$ptr} = 1; 388} 389 390 391############# Class : Math::GSL::Multifit::gsl_multifit_robust_type ############## 392 393package Math::GSL::Multifit::gsl_multifit_robust_type; 394use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); 395@ISA = qw( Math::GSL::Multifit ); 396%OWNER = (); 397%ITERATORS = (); 398*swig_name_get = *Math::GSL::Multifitc::gsl_multifit_robust_type_name_get; 399*swig_name_set = *Math::GSL::Multifitc::gsl_multifit_robust_type_name_set; 400*swig_wfun_get = *Math::GSL::Multifitc::gsl_multifit_robust_type_wfun_get; 401*swig_wfun_set = *Math::GSL::Multifitc::gsl_multifit_robust_type_wfun_set; 402*swig_psi_deriv_get = *Math::GSL::Multifitc::gsl_multifit_robust_type_psi_deriv_get; 403*swig_psi_deriv_set = *Math::GSL::Multifitc::gsl_multifit_robust_type_psi_deriv_set; 404*swig_tuning_default_get = *Math::GSL::Multifitc::gsl_multifit_robust_type_tuning_default_get; 405*swig_tuning_default_set = *Math::GSL::Multifitc::gsl_multifit_robust_type_tuning_default_set; 406sub new { 407 my $pkg = shift; 408 my $self = Math::GSL::Multifitc::new_gsl_multifit_robust_type(@_); 409 bless $self, $pkg if defined($self); 410} 411 412sub DESTROY { 413 return unless $_[0]->isa('HASH'); 414 my $self = tied(%{$_[0]}); 415 return unless defined $self; 416 delete $ITERATORS{$self}; 417 if (exists $OWNER{$self}) { 418 Math::GSL::Multifitc::delete_gsl_multifit_robust_type($self); 419 delete $OWNER{$self}; 420 } 421} 422 423sub DISOWN { 424 my $self = shift; 425 my $ptr = tied(%$self); 426 delete $OWNER{$ptr}; 427} 428 429sub ACQUIRE { 430 my $self = shift; 431 my $ptr = tied(%$self); 432 $OWNER{$ptr} = 1; 433} 434 435 436############# Class : Math::GSL::Multifit::gsl_multifit_robust_stats ############## 437 438package Math::GSL::Multifit::gsl_multifit_robust_stats; 439use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); 440@ISA = qw( Math::GSL::Multifit ); 441%OWNER = (); 442%ITERATORS = (); 443*swig_sigma_ols_get = *Math::GSL::Multifitc::gsl_multifit_robust_stats_sigma_ols_get; 444*swig_sigma_ols_set = *Math::GSL::Multifitc::gsl_multifit_robust_stats_sigma_ols_set; 445*swig_sigma_mad_get = *Math::GSL::Multifitc::gsl_multifit_robust_stats_sigma_mad_get; 446*swig_sigma_mad_set = *Math::GSL::Multifitc::gsl_multifit_robust_stats_sigma_mad_set; 447*swig_sigma_rob_get = *Math::GSL::Multifitc::gsl_multifit_robust_stats_sigma_rob_get; 448*swig_sigma_rob_set = *Math::GSL::Multifitc::gsl_multifit_robust_stats_sigma_rob_set; 449*swig_sigma_get = *Math::GSL::Multifitc::gsl_multifit_robust_stats_sigma_get; 450*swig_sigma_set = *Math::GSL::Multifitc::gsl_multifit_robust_stats_sigma_set; 451*swig_Rsq_get = *Math::GSL::Multifitc::gsl_multifit_robust_stats_Rsq_get; 452*swig_Rsq_set = *Math::GSL::Multifitc::gsl_multifit_robust_stats_Rsq_set; 453*swig_adj_Rsq_get = *Math::GSL::Multifitc::gsl_multifit_robust_stats_adj_Rsq_get; 454*swig_adj_Rsq_set = *Math::GSL::Multifitc::gsl_multifit_robust_stats_adj_Rsq_set; 455*swig_rmse_get = *Math::GSL::Multifitc::gsl_multifit_robust_stats_rmse_get; 456*swig_rmse_set = *Math::GSL::Multifitc::gsl_multifit_robust_stats_rmse_set; 457*swig_sse_get = *Math::GSL::Multifitc::gsl_multifit_robust_stats_sse_get; 458*swig_sse_set = *Math::GSL::Multifitc::gsl_multifit_robust_stats_sse_set; 459*swig_dof_get = *Math::GSL::Multifitc::gsl_multifit_robust_stats_dof_get; 460*swig_dof_set = *Math::GSL::Multifitc::gsl_multifit_robust_stats_dof_set; 461*swig_numit_get = *Math::GSL::Multifitc::gsl_multifit_robust_stats_numit_get; 462*swig_numit_set = *Math::GSL::Multifitc::gsl_multifit_robust_stats_numit_set; 463*swig_weights_get = *Math::GSL::Multifitc::gsl_multifit_robust_stats_weights_get; 464*swig_weights_set = *Math::GSL::Multifitc::gsl_multifit_robust_stats_weights_set; 465*swig_r_get = *Math::GSL::Multifitc::gsl_multifit_robust_stats_r_get; 466*swig_r_set = *Math::GSL::Multifitc::gsl_multifit_robust_stats_r_set; 467sub new { 468 my $pkg = shift; 469 my $self = Math::GSL::Multifitc::new_gsl_multifit_robust_stats(@_); 470 bless $self, $pkg if defined($self); 471} 472 473sub DESTROY { 474 return unless $_[0]->isa('HASH'); 475 my $self = tied(%{$_[0]}); 476 return unless defined $self; 477 delete $ITERATORS{$self}; 478 if (exists $OWNER{$self}) { 479 Math::GSL::Multifitc::delete_gsl_multifit_robust_stats($self); 480 delete $OWNER{$self}; 481 } 482} 483 484sub DISOWN { 485 my $self = shift; 486 my $ptr = tied(%$self); 487 delete $OWNER{$ptr}; 488} 489 490sub ACQUIRE { 491 my $self = shift; 492 my $ptr = tied(%$self); 493 $OWNER{$ptr} = 1; 494} 495 496 497############# Class : Math::GSL::Multifit::gsl_multifit_robust_workspace ############## 498 499package Math::GSL::Multifit::gsl_multifit_robust_workspace; 500use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); 501@ISA = qw( Math::GSL::Multifit ); 502%OWNER = (); 503%ITERATORS = (); 504*swig_n_get = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_n_get; 505*swig_n_set = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_n_set; 506*swig_p_get = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_p_get; 507*swig_p_set = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_p_set; 508*swig_numit_get = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_numit_get; 509*swig_numit_set = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_numit_set; 510*swig_maxiter_get = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_maxiter_get; 511*swig_maxiter_set = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_maxiter_set; 512*swig_type_get = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_type_get; 513*swig_type_set = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_type_set; 514*swig_tune_get = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_tune_get; 515*swig_tune_set = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_tune_set; 516*swig_r_get = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_r_get; 517*swig_r_set = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_r_set; 518*swig_weights_get = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_weights_get; 519*swig_weights_set = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_weights_set; 520*swig_c_prev_get = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_c_prev_get; 521*swig_c_prev_set = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_c_prev_set; 522*swig_resfac_get = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_resfac_get; 523*swig_resfac_set = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_resfac_set; 524*swig_psi_get = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_psi_get; 525*swig_psi_set = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_psi_set; 526*swig_dpsi_get = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_dpsi_get; 527*swig_dpsi_set = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_dpsi_set; 528*swig_QSI_get = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_QSI_get; 529*swig_QSI_set = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_QSI_set; 530*swig_D_get = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_D_get; 531*swig_D_set = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_D_set; 532*swig_workn_get = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_workn_get; 533*swig_workn_set = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_workn_set; 534*swig_stats_get = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_stats_get; 535*swig_stats_set = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_stats_set; 536*swig_multifit_p_get = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_multifit_p_get; 537*swig_multifit_p_set = *Math::GSL::Multifitc::gsl_multifit_robust_workspace_multifit_p_set; 538sub new { 539 my $pkg = shift; 540 my $self = Math::GSL::Multifitc::new_gsl_multifit_robust_workspace(@_); 541 bless $self, $pkg if defined($self); 542} 543 544sub DESTROY { 545 return unless $_[0]->isa('HASH'); 546 my $self = tied(%{$_[0]}); 547 return unless defined $self; 548 delete $ITERATORS{$self}; 549 if (exists $OWNER{$self}) { 550 Math::GSL::Multifitc::delete_gsl_multifit_robust_workspace($self); 551 delete $OWNER{$self}; 552 } 553} 554 555sub DISOWN { 556 my $self = shift; 557 my $ptr = tied(%$self); 558 delete $OWNER{$ptr}; 559} 560 561sub ACQUIRE { 562 my $self = shift; 563 my $ptr = tied(%$self); 564 $OWNER{$ptr} = 1; 565} 566 567 568############# Class : Math::GSL::Multifit::gsl_multifit_function_struct ############## 569 570package Math::GSL::Multifit::gsl_multifit_function_struct; 571use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); 572@ISA = qw( Math::GSL::Multifit ); 573%OWNER = (); 574%ITERATORS = (); 575*swig_f_get = *Math::GSL::Multifitc::gsl_multifit_function_struct_f_get; 576*swig_f_set = *Math::GSL::Multifitc::gsl_multifit_function_struct_f_set; 577*swig_n_get = *Math::GSL::Multifitc::gsl_multifit_function_struct_n_get; 578*swig_n_set = *Math::GSL::Multifitc::gsl_multifit_function_struct_n_set; 579*swig_p_get = *Math::GSL::Multifitc::gsl_multifit_function_struct_p_get; 580*swig_p_set = *Math::GSL::Multifitc::gsl_multifit_function_struct_p_set; 581*swig_params_get = *Math::GSL::Multifitc::gsl_multifit_function_struct_params_get; 582*swig_params_set = *Math::GSL::Multifitc::gsl_multifit_function_struct_params_set; 583sub new { 584 my $pkg = shift; 585 my $self = Math::GSL::Multifitc::new_gsl_multifit_function_struct(@_); 586 bless $self, $pkg if defined($self); 587} 588 589sub DESTROY { 590 return unless $_[0]->isa('HASH'); 591 my $self = tied(%{$_[0]}); 592 return unless defined $self; 593 delete $ITERATORS{$self}; 594 if (exists $OWNER{$self}) { 595 Math::GSL::Multifitc::delete_gsl_multifit_function_struct($self); 596 delete $OWNER{$self}; 597 } 598} 599 600sub DISOWN { 601 my $self = shift; 602 my $ptr = tied(%$self); 603 delete $OWNER{$ptr}; 604} 605 606sub ACQUIRE { 607 my $self = shift; 608 my $ptr = tied(%$self); 609 $OWNER{$ptr} = 1; 610} 611 612 613############# Class : Math::GSL::Multifit::gsl_multifit_fsolver_type ############## 614 615package Math::GSL::Multifit::gsl_multifit_fsolver_type; 616use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); 617@ISA = qw( Math::GSL::Multifit ); 618%OWNER = (); 619%ITERATORS = (); 620*swig_name_get = *Math::GSL::Multifitc::gsl_multifit_fsolver_type_name_get; 621*swig_name_set = *Math::GSL::Multifitc::gsl_multifit_fsolver_type_name_set; 622*swig_size_get = *Math::GSL::Multifitc::gsl_multifit_fsolver_type_size_get; 623*swig_size_set = *Math::GSL::Multifitc::gsl_multifit_fsolver_type_size_set; 624*swig_alloc_get = *Math::GSL::Multifitc::gsl_multifit_fsolver_type_alloc_get; 625*swig_alloc_set = *Math::GSL::Multifitc::gsl_multifit_fsolver_type_alloc_set; 626*swig_set_get = *Math::GSL::Multifitc::gsl_multifit_fsolver_type_set_get; 627*swig_set_set = *Math::GSL::Multifitc::gsl_multifit_fsolver_type_set_set; 628*swig_iterate_get = *Math::GSL::Multifitc::gsl_multifit_fsolver_type_iterate_get; 629*swig_iterate_set = *Math::GSL::Multifitc::gsl_multifit_fsolver_type_iterate_set; 630*swig_free_get = *Math::GSL::Multifitc::gsl_multifit_fsolver_type_free_get; 631*swig_free_set = *Math::GSL::Multifitc::gsl_multifit_fsolver_type_free_set; 632sub new { 633 my $pkg = shift; 634 my $self = Math::GSL::Multifitc::new_gsl_multifit_fsolver_type(@_); 635 bless $self, $pkg if defined($self); 636} 637 638sub DESTROY { 639 return unless $_[0]->isa('HASH'); 640 my $self = tied(%{$_[0]}); 641 return unless defined $self; 642 delete $ITERATORS{$self}; 643 if (exists $OWNER{$self}) { 644 Math::GSL::Multifitc::delete_gsl_multifit_fsolver_type($self); 645 delete $OWNER{$self}; 646 } 647} 648 649sub DISOWN { 650 my $self = shift; 651 my $ptr = tied(%$self); 652 delete $OWNER{$ptr}; 653} 654 655sub ACQUIRE { 656 my $self = shift; 657 my $ptr = tied(%$self); 658 $OWNER{$ptr} = 1; 659} 660 661 662############# Class : Math::GSL::Multifit::gsl_multifit_fsolver ############## 663 664package Math::GSL::Multifit::gsl_multifit_fsolver; 665use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); 666@ISA = qw( Math::GSL::Multifit ); 667%OWNER = (); 668%ITERATORS = (); 669*swig_type_get = *Math::GSL::Multifitc::gsl_multifit_fsolver_type_get; 670*swig_type_set = *Math::GSL::Multifitc::gsl_multifit_fsolver_type_set; 671*swig_function_get = *Math::GSL::Multifitc::gsl_multifit_fsolver_function_get; 672*swig_function_set = *Math::GSL::Multifitc::gsl_multifit_fsolver_function_set; 673*swig_x_get = *Math::GSL::Multifitc::gsl_multifit_fsolver_x_get; 674*swig_x_set = *Math::GSL::Multifitc::gsl_multifit_fsolver_x_set; 675*swig_f_get = *Math::GSL::Multifitc::gsl_multifit_fsolver_f_get; 676*swig_f_set = *Math::GSL::Multifitc::gsl_multifit_fsolver_f_set; 677*swig_dx_get = *Math::GSL::Multifitc::gsl_multifit_fsolver_dx_get; 678*swig_dx_set = *Math::GSL::Multifitc::gsl_multifit_fsolver_dx_set; 679*swig_state_get = *Math::GSL::Multifitc::gsl_multifit_fsolver_state_get; 680*swig_state_set = *Math::GSL::Multifitc::gsl_multifit_fsolver_state_set; 681sub new { 682 my $pkg = shift; 683 my $self = Math::GSL::Multifitc::new_gsl_multifit_fsolver(@_); 684 bless $self, $pkg if defined($self); 685} 686 687sub DESTROY { 688 return unless $_[0]->isa('HASH'); 689 my $self = tied(%{$_[0]}); 690 return unless defined $self; 691 delete $ITERATORS{$self}; 692 if (exists $OWNER{$self}) { 693 Math::GSL::Multifitc::delete_gsl_multifit_fsolver($self); 694 delete $OWNER{$self}; 695 } 696} 697 698sub DISOWN { 699 my $self = shift; 700 my $ptr = tied(%$self); 701 delete $OWNER{$ptr}; 702} 703 704sub ACQUIRE { 705 my $self = shift; 706 my $ptr = tied(%$self); 707 $OWNER{$ptr} = 1; 708} 709 710 711############# Class : Math::GSL::Multifit::gsl_multifit_function_fdf_struct ############## 712 713package Math::GSL::Multifit::gsl_multifit_function_fdf_struct; 714use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); 715@ISA = qw( Math::GSL::Multifit ); 716%OWNER = (); 717%ITERATORS = (); 718*swig_f_get = *Math::GSL::Multifitc::gsl_multifit_function_fdf_struct_f_get; 719*swig_f_set = *Math::GSL::Multifitc::gsl_multifit_function_fdf_struct_f_set; 720*swig_df_get = *Math::GSL::Multifitc::gsl_multifit_function_fdf_struct_df_get; 721*swig_df_set = *Math::GSL::Multifitc::gsl_multifit_function_fdf_struct_df_set; 722*swig_fdf_get = *Math::GSL::Multifitc::gsl_multifit_function_fdf_struct_fdf_get; 723*swig_fdf_set = *Math::GSL::Multifitc::gsl_multifit_function_fdf_struct_fdf_set; 724*swig_n_get = *Math::GSL::Multifitc::gsl_multifit_function_fdf_struct_n_get; 725*swig_n_set = *Math::GSL::Multifitc::gsl_multifit_function_fdf_struct_n_set; 726*swig_p_get = *Math::GSL::Multifitc::gsl_multifit_function_fdf_struct_p_get; 727*swig_p_set = *Math::GSL::Multifitc::gsl_multifit_function_fdf_struct_p_set; 728*swig_params_get = *Math::GSL::Multifitc::gsl_multifit_function_fdf_struct_params_get; 729*swig_params_set = *Math::GSL::Multifitc::gsl_multifit_function_fdf_struct_params_set; 730*swig_nevalf_get = *Math::GSL::Multifitc::gsl_multifit_function_fdf_struct_nevalf_get; 731*swig_nevalf_set = *Math::GSL::Multifitc::gsl_multifit_function_fdf_struct_nevalf_set; 732*swig_nevaldf_get = *Math::GSL::Multifitc::gsl_multifit_function_fdf_struct_nevaldf_get; 733*swig_nevaldf_set = *Math::GSL::Multifitc::gsl_multifit_function_fdf_struct_nevaldf_set; 734sub new { 735 my $pkg = shift; 736 my $self = Math::GSL::Multifitc::new_gsl_multifit_function_fdf_struct(@_); 737 bless $self, $pkg if defined($self); 738} 739 740sub DESTROY { 741 return unless $_[0]->isa('HASH'); 742 my $self = tied(%{$_[0]}); 743 return unless defined $self; 744 delete $ITERATORS{$self}; 745 if (exists $OWNER{$self}) { 746 Math::GSL::Multifitc::delete_gsl_multifit_function_fdf_struct($self); 747 delete $OWNER{$self}; 748 } 749} 750 751sub DISOWN { 752 my $self = shift; 753 my $ptr = tied(%$self); 754 delete $OWNER{$ptr}; 755} 756 757sub ACQUIRE { 758 my $self = shift; 759 my $ptr = tied(%$self); 760 $OWNER{$ptr} = 1; 761} 762 763 764############# Class : Math::GSL::Multifit::gsl_multifit_fdfsolver_type ############## 765 766package Math::GSL::Multifit::gsl_multifit_fdfsolver_type; 767use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); 768@ISA = qw( Math::GSL::Multifit ); 769%OWNER = (); 770%ITERATORS = (); 771*swig_name_get = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_type_name_get; 772*swig_name_set = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_type_name_set; 773*swig_size_get = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_type_size_get; 774*swig_size_set = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_type_size_set; 775*swig_alloc_get = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_type_alloc_get; 776*swig_alloc_set = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_type_alloc_set; 777*swig_set_get = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_type_set_get; 778*swig_set_set = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_type_set_set; 779*swig_iterate_get = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_type_iterate_get; 780*swig_iterate_set = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_type_iterate_set; 781*swig_gradient_get = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_type_gradient_get; 782*swig_gradient_set = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_type_gradient_set; 783*swig_jac_get = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_type_jac_get; 784*swig_jac_set = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_type_jac_set; 785*swig_free_get = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_type_free_get; 786*swig_free_set = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_type_free_set; 787sub new { 788 my $pkg = shift; 789 my $self = Math::GSL::Multifitc::new_gsl_multifit_fdfsolver_type(@_); 790 bless $self, $pkg if defined($self); 791} 792 793sub DESTROY { 794 return unless $_[0]->isa('HASH'); 795 my $self = tied(%{$_[0]}); 796 return unless defined $self; 797 delete $ITERATORS{$self}; 798 if (exists $OWNER{$self}) { 799 Math::GSL::Multifitc::delete_gsl_multifit_fdfsolver_type($self); 800 delete $OWNER{$self}; 801 } 802} 803 804sub DISOWN { 805 my $self = shift; 806 my $ptr = tied(%$self); 807 delete $OWNER{$ptr}; 808} 809 810sub ACQUIRE { 811 my $self = shift; 812 my $ptr = tied(%$self); 813 $OWNER{$ptr} = 1; 814} 815 816 817############# Class : Math::GSL::Multifit::gsl_multifit_fdfsolver ############## 818 819package Math::GSL::Multifit::gsl_multifit_fdfsolver; 820use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); 821@ISA = qw( Math::GSL::Multifit ); 822%OWNER = (); 823%ITERATORS = (); 824*swig_type_get = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_type_get; 825*swig_type_set = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_type_set; 826*swig_fdf_get = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_fdf_get; 827*swig_fdf_set = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_fdf_set; 828*swig_x_get = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_x_get; 829*swig_x_set = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_x_set; 830*swig_f_get = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_f_get; 831*swig_f_set = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_f_set; 832*swig_dx_get = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_dx_get; 833*swig_dx_set = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_dx_set; 834*swig_g_get = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_g_get; 835*swig_g_set = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_g_set; 836*swig_sqrt_wts_get = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_sqrt_wts_get; 837*swig_sqrt_wts_set = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_sqrt_wts_set; 838*swig_niter_get = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_niter_get; 839*swig_niter_set = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_niter_set; 840*swig_state_get = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_state_get; 841*swig_state_set = *Math::GSL::Multifitc::gsl_multifit_fdfsolver_state_set; 842sub new { 843 my $pkg = shift; 844 my $self = Math::GSL::Multifitc::new_gsl_multifit_fdfsolver(@_); 845 bless $self, $pkg if defined($self); 846} 847 848sub DESTROY { 849 return unless $_[0]->isa('HASH'); 850 my $self = tied(%{$_[0]}); 851 return unless defined $self; 852 delete $ITERATORS{$self}; 853 if (exists $OWNER{$self}) { 854 Math::GSL::Multifitc::delete_gsl_multifit_fdfsolver($self); 855 delete $OWNER{$self}; 856 } 857} 858 859sub DISOWN { 860 my $self = shift; 861 my $ptr = tied(%$self); 862 delete $OWNER{$ptr}; 863} 864 865sub ACQUIRE { 866 my $self = shift; 867 my $ptr = tied(%$self); 868 $OWNER{$ptr} = 1; 869} 870 871 872############# Class : Math::GSL::Multifit::gsl_multifit_fdfridge ############## 873 874package Math::GSL::Multifit::gsl_multifit_fdfridge; 875use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); 876@ISA = qw( Math::GSL::Multifit ); 877%OWNER = (); 878%ITERATORS = (); 879*swig_n_get = *Math::GSL::Multifitc::gsl_multifit_fdfridge_n_get; 880*swig_n_set = *Math::GSL::Multifitc::gsl_multifit_fdfridge_n_set; 881*swig_p_get = *Math::GSL::Multifitc::gsl_multifit_fdfridge_p_get; 882*swig_p_set = *Math::GSL::Multifitc::gsl_multifit_fdfridge_p_set; 883*swig_lambda_get = *Math::GSL::Multifitc::gsl_multifit_fdfridge_lambda_get; 884*swig_lambda_set = *Math::GSL::Multifitc::gsl_multifit_fdfridge_lambda_set; 885*swig_L_diag_get = *Math::GSL::Multifitc::gsl_multifit_fdfridge_L_diag_get; 886*swig_L_diag_set = *Math::GSL::Multifitc::gsl_multifit_fdfridge_L_diag_set; 887*swig_L_get = *Math::GSL::Multifitc::gsl_multifit_fdfridge_L_get; 888*swig_L_set = *Math::GSL::Multifitc::gsl_multifit_fdfridge_L_set; 889*swig_f_get = *Math::GSL::Multifitc::gsl_multifit_fdfridge_f_get; 890*swig_f_set = *Math::GSL::Multifitc::gsl_multifit_fdfridge_f_set; 891*swig_wts_get = *Math::GSL::Multifitc::gsl_multifit_fdfridge_wts_get; 892*swig_wts_set = *Math::GSL::Multifitc::gsl_multifit_fdfridge_wts_set; 893*swig_s_get = *Math::GSL::Multifitc::gsl_multifit_fdfridge_s_get; 894*swig_s_set = *Math::GSL::Multifitc::gsl_multifit_fdfridge_s_set; 895*swig_fdf_get = *Math::GSL::Multifitc::gsl_multifit_fdfridge_fdf_get; 896*swig_fdf_set = *Math::GSL::Multifitc::gsl_multifit_fdfridge_fdf_set; 897*swig_fdftik_get = *Math::GSL::Multifitc::gsl_multifit_fdfridge_fdftik_get; 898*swig_fdftik_set = *Math::GSL::Multifitc::gsl_multifit_fdfridge_fdftik_set; 899sub new { 900 my $pkg = shift; 901 my $self = Math::GSL::Multifitc::new_gsl_multifit_fdfridge(@_); 902 bless $self, $pkg if defined($self); 903} 904 905sub DESTROY { 906 return unless $_[0]->isa('HASH'); 907 my $self = tied(%{$_[0]}); 908 return unless defined $self; 909 delete $ITERATORS{$self}; 910 if (exists $OWNER{$self}) { 911 Math::GSL::Multifitc::delete_gsl_multifit_fdfridge($self); 912 delete $OWNER{$self}; 913 } 914} 915 916sub DISOWN { 917 my $self = shift; 918 my $ptr = tied(%$self); 919 delete $OWNER{$ptr}; 920} 921 922sub ACQUIRE { 923 my $self = shift; 924 my $ptr = tied(%$self); 925 $OWNER{$ptr} = 1; 926} 927 928 929# ------- VARIABLE STUBS -------- 930 931package Math::GSL::Multifit; 932 933*GSL_VERSION = *Math::GSL::Multifitc::GSL_VERSION; 934*GSL_MAJOR_VERSION = *Math::GSL::Multifitc::GSL_MAJOR_VERSION; 935*GSL_MINOR_VERSION = *Math::GSL::Multifitc::GSL_MINOR_VERSION; 936*GSL_POSZERO = *Math::GSL::Multifitc::GSL_POSZERO; 937*GSL_NEGZERO = *Math::GSL::Multifitc::GSL_NEGZERO; 938*GSL_SUCCESS = *Math::GSL::Multifitc::GSL_SUCCESS; 939*GSL_FAILURE = *Math::GSL::Multifitc::GSL_FAILURE; 940*GSL_CONTINUE = *Math::GSL::Multifitc::GSL_CONTINUE; 941*GSL_EDOM = *Math::GSL::Multifitc::GSL_EDOM; 942*GSL_ERANGE = *Math::GSL::Multifitc::GSL_ERANGE; 943*GSL_EFAULT = *Math::GSL::Multifitc::GSL_EFAULT; 944*GSL_EINVAL = *Math::GSL::Multifitc::GSL_EINVAL; 945*GSL_EFAILED = *Math::GSL::Multifitc::GSL_EFAILED; 946*GSL_EFACTOR = *Math::GSL::Multifitc::GSL_EFACTOR; 947*GSL_ESANITY = *Math::GSL::Multifitc::GSL_ESANITY; 948*GSL_ENOMEM = *Math::GSL::Multifitc::GSL_ENOMEM; 949*GSL_EBADFUNC = *Math::GSL::Multifitc::GSL_EBADFUNC; 950*GSL_ERUNAWAY = *Math::GSL::Multifitc::GSL_ERUNAWAY; 951*GSL_EMAXITER = *Math::GSL::Multifitc::GSL_EMAXITER; 952*GSL_EZERODIV = *Math::GSL::Multifitc::GSL_EZERODIV; 953*GSL_EBADTOL = *Math::GSL::Multifitc::GSL_EBADTOL; 954*GSL_ETOL = *Math::GSL::Multifitc::GSL_ETOL; 955*GSL_EUNDRFLW = *Math::GSL::Multifitc::GSL_EUNDRFLW; 956*GSL_EOVRFLW = *Math::GSL::Multifitc::GSL_EOVRFLW; 957*GSL_ELOSS = *Math::GSL::Multifitc::GSL_ELOSS; 958*GSL_EROUND = *Math::GSL::Multifitc::GSL_EROUND; 959*GSL_EBADLEN = *Math::GSL::Multifitc::GSL_EBADLEN; 960*GSL_ENOTSQR = *Math::GSL::Multifitc::GSL_ENOTSQR; 961*GSL_ESING = *Math::GSL::Multifitc::GSL_ESING; 962*GSL_EDIVERGE = *Math::GSL::Multifitc::GSL_EDIVERGE; 963*GSL_EUNSUP = *Math::GSL::Multifitc::GSL_EUNSUP; 964*GSL_EUNIMPL = *Math::GSL::Multifitc::GSL_EUNIMPL; 965*GSL_ECACHE = *Math::GSL::Multifitc::GSL_ECACHE; 966*GSL_ETABLE = *Math::GSL::Multifitc::GSL_ETABLE; 967*GSL_ENOPROG = *Math::GSL::Multifitc::GSL_ENOPROG; 968*GSL_ENOPROGJ = *Math::GSL::Multifitc::GSL_ENOPROGJ; 969*GSL_ETOLF = *Math::GSL::Multifitc::GSL_ETOLF; 970*GSL_ETOLX = *Math::GSL::Multifitc::GSL_ETOLX; 971*GSL_ETOLG = *Math::GSL::Multifitc::GSL_ETOLG; 972*GSL_EOF = *Math::GSL::Multifitc::GSL_EOF; 973*M_E = *Math::GSL::Multifitc::M_E; 974*M_LOG2E = *Math::GSL::Multifitc::M_LOG2E; 975*M_LOG10E = *Math::GSL::Multifitc::M_LOG10E; 976*M_SQRT2 = *Math::GSL::Multifitc::M_SQRT2; 977*M_SQRT1_2 = *Math::GSL::Multifitc::M_SQRT1_2; 978*M_SQRT3 = *Math::GSL::Multifitc::M_SQRT3; 979*M_PI = *Math::GSL::Multifitc::M_PI; 980*M_PI_2 = *Math::GSL::Multifitc::M_PI_2; 981*M_PI_4 = *Math::GSL::Multifitc::M_PI_4; 982*M_SQRTPI = *Math::GSL::Multifitc::M_SQRTPI; 983*M_2_SQRTPI = *Math::GSL::Multifitc::M_2_SQRTPI; 984*M_1_PI = *Math::GSL::Multifitc::M_1_PI; 985*M_2_PI = *Math::GSL::Multifitc::M_2_PI; 986*M_LN10 = *Math::GSL::Multifitc::M_LN10; 987*M_LN2 = *Math::GSL::Multifitc::M_LN2; 988*M_LNPI = *Math::GSL::Multifitc::M_LNPI; 989*M_EULER = *Math::GSL::Multifitc::M_EULER; 990 991my %__gsl_multifit_robust_default_hash; 992tie %__gsl_multifit_robust_default_hash,"Math::GSL::Multifit::gsl_multifit_robust_type", $Math::GSL::Multifitc::gsl_multifit_robust_default; 993$gsl_multifit_robust_default= \%__gsl_multifit_robust_default_hash; 994bless $gsl_multifit_robust_default, Math::GSL::Multifit::gsl_multifit_robust_type; 995 996my %__gsl_multifit_robust_bisquare_hash; 997tie %__gsl_multifit_robust_bisquare_hash,"Math::GSL::Multifit::gsl_multifit_robust_type", $Math::GSL::Multifitc::gsl_multifit_robust_bisquare; 998$gsl_multifit_robust_bisquare= \%__gsl_multifit_robust_bisquare_hash; 999bless $gsl_multifit_robust_bisquare, Math::GSL::Multifit::gsl_multifit_robust_type; 1000 1001my %__gsl_multifit_robust_cauchy_hash; 1002tie %__gsl_multifit_robust_cauchy_hash,"Math::GSL::Multifit::gsl_multifit_robust_type", $Math::GSL::Multifitc::gsl_multifit_robust_cauchy; 1003$gsl_multifit_robust_cauchy= \%__gsl_multifit_robust_cauchy_hash; 1004bless $gsl_multifit_robust_cauchy, Math::GSL::Multifit::gsl_multifit_robust_type; 1005 1006my %__gsl_multifit_robust_fair_hash; 1007tie %__gsl_multifit_robust_fair_hash,"Math::GSL::Multifit::gsl_multifit_robust_type", $Math::GSL::Multifitc::gsl_multifit_robust_fair; 1008$gsl_multifit_robust_fair= \%__gsl_multifit_robust_fair_hash; 1009bless $gsl_multifit_robust_fair, Math::GSL::Multifit::gsl_multifit_robust_type; 1010 1011my %__gsl_multifit_robust_huber_hash; 1012tie %__gsl_multifit_robust_huber_hash,"Math::GSL::Multifit::gsl_multifit_robust_type", $Math::GSL::Multifitc::gsl_multifit_robust_huber; 1013$gsl_multifit_robust_huber= \%__gsl_multifit_robust_huber_hash; 1014bless $gsl_multifit_robust_huber, Math::GSL::Multifit::gsl_multifit_robust_type; 1015 1016my %__gsl_multifit_robust_ols_hash; 1017tie %__gsl_multifit_robust_ols_hash,"Math::GSL::Multifit::gsl_multifit_robust_type", $Math::GSL::Multifitc::gsl_multifit_robust_ols; 1018$gsl_multifit_robust_ols= \%__gsl_multifit_robust_ols_hash; 1019bless $gsl_multifit_robust_ols, Math::GSL::Multifit::gsl_multifit_robust_type; 1020 1021my %__gsl_multifit_robust_welsch_hash; 1022tie %__gsl_multifit_robust_welsch_hash,"Math::GSL::Multifit::gsl_multifit_robust_type", $Math::GSL::Multifitc::gsl_multifit_robust_welsch; 1023$gsl_multifit_robust_welsch= \%__gsl_multifit_robust_welsch_hash; 1024bless $gsl_multifit_robust_welsch, Math::GSL::Multifit::gsl_multifit_robust_type; 1025 1026my %__gsl_multifit_fdfsolver_lmsder_hash; 1027tie %__gsl_multifit_fdfsolver_lmsder_hash,"Math::GSL::Multifit::gsl_multifit_fdfsolver_type", $Math::GSL::Multifitc::gsl_multifit_fdfsolver_lmsder; 1028$gsl_multifit_fdfsolver_lmsder= \%__gsl_multifit_fdfsolver_lmsder_hash; 1029bless $gsl_multifit_fdfsolver_lmsder, Math::GSL::Multifit::gsl_multifit_fdfsolver_type; 1030 1031my %__gsl_multifit_fdfsolver_lmder_hash; 1032tie %__gsl_multifit_fdfsolver_lmder_hash,"Math::GSL::Multifit::gsl_multifit_fdfsolver_type", $Math::GSL::Multifitc::gsl_multifit_fdfsolver_lmder; 1033$gsl_multifit_fdfsolver_lmder= \%__gsl_multifit_fdfsolver_lmder_hash; 1034bless $gsl_multifit_fdfsolver_lmder, Math::GSL::Multifit::gsl_multifit_fdfsolver_type; 1035 1036my %__gsl_multifit_fdfsolver_lmniel_hash; 1037tie %__gsl_multifit_fdfsolver_lmniel_hash,"Math::GSL::Multifit::gsl_multifit_fdfsolver_type", $Math::GSL::Multifitc::gsl_multifit_fdfsolver_lmniel; 1038$gsl_multifit_fdfsolver_lmniel= \%__gsl_multifit_fdfsolver_lmniel_hash; 1039bless $gsl_multifit_fdfsolver_lmniel, Math::GSL::Multifit::gsl_multifit_fdfsolver_type; 1040 1041@EXPORT_OK = qw/ 1042 gsl_multifit_linear_alloc 1043 gsl_multifit_linear_free 1044 gsl_multifit_linear 1045 gsl_multifit_linear_svd 1046 gsl_multifit_wlinear 1047 gsl_multifit_wlinear_svd 1048 gsl_multifit_linear_est 1049 gsl_multifit_linear_residuals 1050 gsl_multifit_gradient 1051 gsl_multifit_covar 1052 gsl_multifit_fsolver_alloc 1053 gsl_multifit_fsolver_free 1054 gsl_multifit_fsolver_set 1055 gsl_multifit_fsolver_iterate 1056 gsl_multifit_fsolver_name 1057 gsl_multifit_fsolver_position 1058 gsl_multifit_fdfsolver_alloc 1059 gsl_multifit_fdfsolver_set 1060 gsl_multifit_fdfsolver_iterate 1061 gsl_multifit_fdfsolver_free 1062 gsl_multifit_fdfsolver_name 1063 gsl_multifit_fdfsolver_position 1064 gsl_multifit_test_delta 1065 gsl_multifit_test_gradient 1066 $gsl_multifit_fdfsolver_lmder 1067 $gsl_multifit_fdfsolver_lmsder; 1068 /; 1069%EXPORT_TAGS = ( all => [ @EXPORT_OK ] ); 1070 1071__END__ 1072 1073=encoding utf8 1074 1075=head1 NAME 1076 1077Math::GSL::Multifit - Least-squares functions for a general linear model with multiple parameters 1078 1079=head1 SYNOPSIS 1080 1081 use Math::GSL::Multifit qw /:all/; 1082 1083=head1 DESCRIPTION 1084 1085NOTE: This module requires GSL 2.1 or higher. 1086 1087The functions in this module perform least-squares fits to a general linear model, y = X c where y is a vector of n observations, X is an n by p matrix of predictor variables, and the elements of the vector c are the p unknown best-fit parameters which are to be estimated. 1088 1089Here is a list of all the functions in this module : 1090 1091=over 1092 1093=item C<gsl_multifit_linear_alloc($n, $p)> - This function allocates a workspace for fitting a model to $n observations using $p parameters. 1094 1095=item C<gsl_multifit_linear_free($work)> - This function frees the memory associated with the workspace w. 1096 1097=item C<gsl_multifit_linear($X, $y, $c, $cov, $work)> - This function computes the best-fit parameters vector $c of the model y = X c for the observations vector $y and the matrix of predictor variables $X. The variance-covariance matrix of the model parameters vector $cov is estimated from the scatter of the observations about the best-fit. The sum of squares of the residuals from the best-fit, \chi^2, is returned after 0 if the operation succeeded, 1 otherwise. If the coefficient of determination is desired, it can be computed from the expression R^2 = 1 - \chi^2 / TSS, where the total sum of squares (TSS) of the observations y may be computed from gsl_stats_tss. The best-fit is found by singular value decomposition of the matrix $X using the preallocated workspace provided in $work. The modified Golub-Reinsch SVD algorithm is used, with column scaling to improve the accuracy of the singular values. Any components which have zero singular value (to machine precision) are discarded from the fit. 1098 1099=item C<gsl_multifit_linear_svd($X, $y, $tol, $c, $cov, $work)> - This function computes the best-fit parameters c of the model y = X c for the observations vector $y and the matrix of predictor variables $X. The variance-covariance matrix of the model parameters vector $cov is estimated from the scatter of the observations about the best-fit. The sum of squares of the residuals from the best-fit, \chi^2, is returned after 0 if the operation succeeded, 1 otherwise. If the coefficient of determination is desired, it can be computed from the expression R^2 = 1 - \chi^2 / TSS, where the total sum of squares (TSS) of the observations y may be computed from gsl_stats_tss. In this second form of the function the components are discarded if the ratio of singular values s_i/s_0 falls below the user-specified tolerance $tol, and the effective rank is returned after the sum of squares of the residuals from the best-fit. 1100 1101=item C<gsl_multifit_wlinear($X, $w, $y, $c, $cov, $work> - This function computes the best-fit parameters vector $c of the weighted model y = X c for the observations y with weights $w and the matrix of predictor variables $X. The covariance matrix of the model parameters $cov is computed with the given weights. The weighted sum of squares of the residuals from the best-fit, \chi^2, is returned after 0 if the operation succeeded, 1 otherwise. If the coefficient of determination is desired, it can be computed from the expression R^2 = 1 - \chi^2 / WTSS, where the weighted total sum of squares (WTSS) of the observations y may be computed from gsl_stats_wtss. The best-fit is found by singular value decomposition of the matrix $X using the preallocated workspace provided in $work. Any components which have zero singular value (to machine precision) are discarded from the fit. 1102 1103=item C<gsl_multifit_wlinear_svd($X, $w, $y, $tol, $rank, $c, $cov, $work) > This function computes the best-fit parameters vector $c of the weighted model y = X c for the observations y with weights $w and the matrix of predictor variables $X. The covariance matrix of the model parameters $cov is computed with the given weights. The weighted sum of squares of the residuals from the best-fit, \chi^2, is returned after 0 if the operation succeeded, 1 otherwise. If the coefficient of determination is desired, it can be computed from the expression R^2 = 1 - \chi^2 / WTSS, where the weighted total sum of squares (WTSS) of the observations y may be computed from gsl_stats_wtss. The best-fit is found by singular value decomposition of the matrix $X using the preallocated workspace provided in $work. In this second form of the function the components are discarded if the ratio of singular values s_i/s_0 falls below the user-specified tolerance $tol, and the effective rank is returned after the sum of squares of the residuals from the best-fit.. 1104 1105=item C<gsl_multifit_linear_est($x, $c, $cov)> - This function uses the best-fit multilinear regression coefficients vector $c and their covariance matrix $cov to compute the fitted function value $y and its standard deviation $y_err for the model y = x.c at the point $x, in the form of a vector. The functions returns 3 values in this order : 0 if the operation succeeded, 1 otherwise, the fittes function value and its standard deviation. 1106 1107=item C<gsl_multifit_linear_residuals($X, $y, $c, $r)> - This function computes the vector of residuals r = y - X c for the observations vector $y, coefficients vector $c and matrix of predictor variables $X. $r is also a vector. 1108 1109=item C<gsl_multifit_gradient($J, $f, $g)> - This function computes the gradient $g of \Phi(x) = (1/2) ||F(x)||^2 from the Jacobian matrix $J and the function values $f, using the formula $g = $J^T $f. $g and $f are vectors. 1110 1111=item C<gsl_multifit_test_gradient($g, $epsabas)> - This function tests the residual gradient vector $g against the absolute error bound $epsabs. Mathematically, the gradient should be exactly zero at the minimum. The test returns $GSL_SUCCESS if the following condition is achieved, \sum_i |g_i| < $epsabs and returns $GSL_CONTINUE otherwise. This criterion is suitable for situations where the precise location of the minimum, x, is unimportant provided a value can be found where the gradient is small enough. 1112 1113=item C<gsl_multifit_test_delta($dx, $x, $epsabs, $epsrel)> - This function tests for the convergence of the sequence by comparing the last step vector $dx with the absolute error $epsabs and relative error $epsrel to the current position x. The test returns $GSL_SUCCESS if the following condition is achieved, |dx_i| < epsabs + epsrel |x_i| for each component of x and returns $GSL_CONTINUE otherwise. 1114 1115=back 1116 1117The following functions are not yet implemented. Patches Welcome! 1118 1119=over 1120 1121=item C<gsl_multifit_covar > 1122 1123=item C<gsl_multifit_fsolver_alloc($T, $n, $p)> 1124 1125=item C<gsl_multifit_fsolver_free > 1126 1127=item C<gsl_multifit_fsolver_set > 1128 1129=item C<gsl_multifit_fsolver_iterate > 1130 1131=item C<gsl_multifit_fsolver_name > 1132 1133=item C<gsl_multifit_fsolver_position > 1134 1135=item C<gsl_multifit_fdfsolver_alloc > 1136 1137=item C<gsl_multifit_fdfsolver_set > 1138 1139=item C<gsl_multifit_fdfsolver_iterate > 1140 1141=item C<gsl_multifit_fdfsolver_free > 1142 1143=item C<gsl_multifit_fdfsolver_name > 1144 1145=item C<gsl_multifit_fdfsolver_position > 1146 1147 1148=back 1149 1150For more informations on the functions, we refer you to the GSL official 1151documentation: L<http://www.gnu.org/software/gsl/manual/html_node/> 1152 1153 1154 1155=head1 EXAMPLES 1156 1157 1158 1159=head1 AUTHORS 1160 1161Jonathan "Duke" Leto <jonathan@leto.net> and Thierry Moisan <thierry.moisan@gmail.com> 1162 1163=head1 COPYRIGHT AND LICENSE 1164 1165Copyright (C) 2008-2021 Jonathan "Duke" Leto and Thierry Moisan 1166 1167This program is free software; you can redistribute it and/or modify it 1168under the same terms as Perl itself. 1169 1170=cut 1171 11721; 1173