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::Multiroots;
8use base qw(Exporter);
9use base qw(DynaLoader);
10package Math::GSL::Multirootsc;
11bootstrap Math::GSL::Multiroots;
12package Math::GSL::Multiroots;
13@EXPORT = qw();
14
15# ---------- BASE METHODS -------------
16
17package Math::GSL::Multiroots;
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::Multiroots;
51
52*gsl_error = *Math::GSL::Multirootsc::gsl_error;
53*gsl_stream_printf = *Math::GSL::Multirootsc::gsl_stream_printf;
54*gsl_strerror = *Math::GSL::Multirootsc::gsl_strerror;
55*gsl_set_error_handler = *Math::GSL::Multirootsc::gsl_set_error_handler;
56*gsl_set_error_handler_off = *Math::GSL::Multirootsc::gsl_set_error_handler_off;
57*gsl_set_stream_handler = *Math::GSL::Multirootsc::gsl_set_stream_handler;
58*gsl_set_stream = *Math::GSL::Multirootsc::gsl_set_stream;
59*gsl_multiroot_fdjacobian = *Math::GSL::Multirootsc::gsl_multiroot_fdjacobian;
60*gsl_multiroot_fsolver_alloc = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_alloc;
61*gsl_multiroot_fsolver_free = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_free;
62*gsl_multiroot_fsolver_set = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_set;
63*gsl_multiroot_fsolver_iterate = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_iterate;
64*gsl_multiroot_fsolver_name = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_name;
65*gsl_multiroot_fsolver_root = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_root;
66*gsl_multiroot_fsolver_dx = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_dx;
67*gsl_multiroot_fsolver_f = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_f;
68*gsl_multiroot_fdfsolver_alloc = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_alloc;
69*gsl_multiroot_fdfsolver_set = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_set;
70*gsl_multiroot_fdfsolver_iterate = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_iterate;
71*gsl_multiroot_fdfsolver_free = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_free;
72*gsl_multiroot_fdfsolver_name = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_name;
73*gsl_multiroot_fdfsolver_root = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_root;
74*gsl_multiroot_fdfsolver_dx = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_dx;
75*gsl_multiroot_fdfsolver_f = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_f;
76*gsl_multiroot_test_delta = *Math::GSL::Multirootsc::gsl_multiroot_test_delta;
77*gsl_multiroot_test_residual = *Math::GSL::Multirootsc::gsl_multiroot_test_residual;
78
79############# Class : Math::GSL::Multiroots::gsl_multiroot_function_struct ##############
80
81package Math::GSL::Multiroots::gsl_multiroot_function_struct;
82use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
83@ISA = qw( Math::GSL::Multiroots );
84%OWNER = ();
85%ITERATORS = ();
86*swig_f_get = *Math::GSL::Multirootsc::gsl_multiroot_function_struct_f_get;
87*swig_f_set = *Math::GSL::Multirootsc::gsl_multiroot_function_struct_f_set;
88*swig_n_get = *Math::GSL::Multirootsc::gsl_multiroot_function_struct_n_get;
89*swig_n_set = *Math::GSL::Multirootsc::gsl_multiroot_function_struct_n_set;
90*swig_params_get = *Math::GSL::Multirootsc::gsl_multiroot_function_struct_params_get;
91*swig_params_set = *Math::GSL::Multirootsc::gsl_multiroot_function_struct_params_set;
92sub new {
93    my $pkg = shift;
94    my $self = Math::GSL::Multirootsc::new_gsl_multiroot_function_struct(@_);
95    bless $self, $pkg if defined($self);
96}
97
98sub DESTROY {
99    return unless $_[0]->isa('HASH');
100    my $self = tied(%{$_[0]});
101    return unless defined $self;
102    delete $ITERATORS{$self};
103    if (exists $OWNER{$self}) {
104        Math::GSL::Multirootsc::delete_gsl_multiroot_function_struct($self);
105        delete $OWNER{$self};
106    }
107}
108
109sub DISOWN {
110    my $self = shift;
111    my $ptr = tied(%$self);
112    delete $OWNER{$ptr};
113}
114
115sub ACQUIRE {
116    my $self = shift;
117    my $ptr = tied(%$self);
118    $OWNER{$ptr} = 1;
119}
120
121
122############# Class : Math::GSL::Multiroots::gsl_multiroot_fsolver_type ##############
123
124package Math::GSL::Multiroots::gsl_multiroot_fsolver_type;
125use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
126@ISA = qw( Math::GSL::Multiroots );
127%OWNER = ();
128%ITERATORS = ();
129*swig_name_get = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_type_name_get;
130*swig_name_set = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_type_name_set;
131*swig_size_get = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_type_size_get;
132*swig_size_set = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_type_size_set;
133*swig_alloc_get = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_type_alloc_get;
134*swig_alloc_set = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_type_alloc_set;
135*swig_set_get = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_type_set_get;
136*swig_set_set = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_type_set_set;
137*swig_iterate_get = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_type_iterate_get;
138*swig_iterate_set = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_type_iterate_set;
139*swig_free_get = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_type_free_get;
140*swig_free_set = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_type_free_set;
141sub new {
142    my $pkg = shift;
143    my $self = Math::GSL::Multirootsc::new_gsl_multiroot_fsolver_type(@_);
144    bless $self, $pkg if defined($self);
145}
146
147sub DESTROY {
148    return unless $_[0]->isa('HASH');
149    my $self = tied(%{$_[0]});
150    return unless defined $self;
151    delete $ITERATORS{$self};
152    if (exists $OWNER{$self}) {
153        Math::GSL::Multirootsc::delete_gsl_multiroot_fsolver_type($self);
154        delete $OWNER{$self};
155    }
156}
157
158sub DISOWN {
159    my $self = shift;
160    my $ptr = tied(%$self);
161    delete $OWNER{$ptr};
162}
163
164sub ACQUIRE {
165    my $self = shift;
166    my $ptr = tied(%$self);
167    $OWNER{$ptr} = 1;
168}
169
170
171############# Class : Math::GSL::Multiroots::gsl_multiroot_fsolver ##############
172
173package Math::GSL::Multiroots::gsl_multiroot_fsolver;
174use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
175@ISA = qw( Math::GSL::Multiroots );
176%OWNER = ();
177%ITERATORS = ();
178*swig_type_get = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_type_get;
179*swig_type_set = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_type_set;
180*swig_function_get = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_function_get;
181*swig_function_set = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_function_set;
182*swig_x_get = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_x_get;
183*swig_x_set = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_x_set;
184*swig_f_get = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_f_get;
185*swig_f_set = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_f_set;
186*swig_dx_get = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_dx_get;
187*swig_dx_set = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_dx_set;
188*swig_state_get = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_state_get;
189*swig_state_set = *Math::GSL::Multirootsc::gsl_multiroot_fsolver_state_set;
190sub new {
191    my $pkg = shift;
192    my $self = Math::GSL::Multirootsc::new_gsl_multiroot_fsolver(@_);
193    bless $self, $pkg if defined($self);
194}
195
196sub DESTROY {
197    return unless $_[0]->isa('HASH');
198    my $self = tied(%{$_[0]});
199    return unless defined $self;
200    delete $ITERATORS{$self};
201    if (exists $OWNER{$self}) {
202        Math::GSL::Multirootsc::delete_gsl_multiroot_fsolver($self);
203        delete $OWNER{$self};
204    }
205}
206
207sub DISOWN {
208    my $self = shift;
209    my $ptr = tied(%$self);
210    delete $OWNER{$ptr};
211}
212
213sub ACQUIRE {
214    my $self = shift;
215    my $ptr = tied(%$self);
216    $OWNER{$ptr} = 1;
217}
218
219
220############# Class : Math::GSL::Multiroots::gsl_multiroot_function_fdf_struct ##############
221
222package Math::GSL::Multiroots::gsl_multiroot_function_fdf_struct;
223use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
224@ISA = qw( Math::GSL::Multiroots );
225%OWNER = ();
226%ITERATORS = ();
227*swig_f_get = *Math::GSL::Multirootsc::gsl_multiroot_function_fdf_struct_f_get;
228*swig_f_set = *Math::GSL::Multirootsc::gsl_multiroot_function_fdf_struct_f_set;
229*swig_df_get = *Math::GSL::Multirootsc::gsl_multiroot_function_fdf_struct_df_get;
230*swig_df_set = *Math::GSL::Multirootsc::gsl_multiroot_function_fdf_struct_df_set;
231*swig_fdf_get = *Math::GSL::Multirootsc::gsl_multiroot_function_fdf_struct_fdf_get;
232*swig_fdf_set = *Math::GSL::Multirootsc::gsl_multiroot_function_fdf_struct_fdf_set;
233*swig_n_get = *Math::GSL::Multirootsc::gsl_multiroot_function_fdf_struct_n_get;
234*swig_n_set = *Math::GSL::Multirootsc::gsl_multiroot_function_fdf_struct_n_set;
235*swig_params_get = *Math::GSL::Multirootsc::gsl_multiroot_function_fdf_struct_params_get;
236*swig_params_set = *Math::GSL::Multirootsc::gsl_multiroot_function_fdf_struct_params_set;
237sub new {
238    my $pkg = shift;
239    my $self = Math::GSL::Multirootsc::new_gsl_multiroot_function_fdf_struct(@_);
240    bless $self, $pkg if defined($self);
241}
242
243sub DESTROY {
244    return unless $_[0]->isa('HASH');
245    my $self = tied(%{$_[0]});
246    return unless defined $self;
247    delete $ITERATORS{$self};
248    if (exists $OWNER{$self}) {
249        Math::GSL::Multirootsc::delete_gsl_multiroot_function_fdf_struct($self);
250        delete $OWNER{$self};
251    }
252}
253
254sub DISOWN {
255    my $self = shift;
256    my $ptr = tied(%$self);
257    delete $OWNER{$ptr};
258}
259
260sub ACQUIRE {
261    my $self = shift;
262    my $ptr = tied(%$self);
263    $OWNER{$ptr} = 1;
264}
265
266
267############# Class : Math::GSL::Multiroots::gsl_multiroot_fdfsolver_type ##############
268
269package Math::GSL::Multiroots::gsl_multiroot_fdfsolver_type;
270use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
271@ISA = qw( Math::GSL::Multiroots );
272%OWNER = ();
273%ITERATORS = ();
274*swig_name_get = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_type_name_get;
275*swig_name_set = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_type_name_set;
276*swig_size_get = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_type_size_get;
277*swig_size_set = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_type_size_set;
278*swig_alloc_get = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_type_alloc_get;
279*swig_alloc_set = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_type_alloc_set;
280*swig_set_get = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_type_set_get;
281*swig_set_set = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_type_set_set;
282*swig_iterate_get = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_type_iterate_get;
283*swig_iterate_set = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_type_iterate_set;
284*swig_free_get = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_type_free_get;
285*swig_free_set = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_type_free_set;
286sub new {
287    my $pkg = shift;
288    my $self = Math::GSL::Multirootsc::new_gsl_multiroot_fdfsolver_type(@_);
289    bless $self, $pkg if defined($self);
290}
291
292sub DESTROY {
293    return unless $_[0]->isa('HASH');
294    my $self = tied(%{$_[0]});
295    return unless defined $self;
296    delete $ITERATORS{$self};
297    if (exists $OWNER{$self}) {
298        Math::GSL::Multirootsc::delete_gsl_multiroot_fdfsolver_type($self);
299        delete $OWNER{$self};
300    }
301}
302
303sub DISOWN {
304    my $self = shift;
305    my $ptr = tied(%$self);
306    delete $OWNER{$ptr};
307}
308
309sub ACQUIRE {
310    my $self = shift;
311    my $ptr = tied(%$self);
312    $OWNER{$ptr} = 1;
313}
314
315
316############# Class : Math::GSL::Multiroots::gsl_multiroot_fdfsolver ##############
317
318package Math::GSL::Multiroots::gsl_multiroot_fdfsolver;
319use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
320@ISA = qw( Math::GSL::Multiroots );
321%OWNER = ();
322%ITERATORS = ();
323*swig_type_get = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_type_get;
324*swig_type_set = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_type_set;
325*swig_fdf_get = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_fdf_get;
326*swig_fdf_set = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_fdf_set;
327*swig_x_get = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_x_get;
328*swig_x_set = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_x_set;
329*swig_f_get = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_f_get;
330*swig_f_set = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_f_set;
331*swig_J_get = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_J_get;
332*swig_J_set = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_J_set;
333*swig_dx_get = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_dx_get;
334*swig_dx_set = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_dx_set;
335*swig_state_get = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_state_get;
336*swig_state_set = *Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_state_set;
337sub new {
338    my $pkg = shift;
339    my $self = Math::GSL::Multirootsc::new_gsl_multiroot_fdfsolver(@_);
340    bless $self, $pkg if defined($self);
341}
342
343sub DESTROY {
344    return unless $_[0]->isa('HASH');
345    my $self = tied(%{$_[0]});
346    return unless defined $self;
347    delete $ITERATORS{$self};
348    if (exists $OWNER{$self}) {
349        Math::GSL::Multirootsc::delete_gsl_multiroot_fdfsolver($self);
350        delete $OWNER{$self};
351    }
352}
353
354sub DISOWN {
355    my $self = shift;
356    my $ptr = tied(%$self);
357    delete $OWNER{$ptr};
358}
359
360sub ACQUIRE {
361    my $self = shift;
362    my $ptr = tied(%$self);
363    $OWNER{$ptr} = 1;
364}
365
366
367# ------- VARIABLE STUBS --------
368
369package Math::GSL::Multiroots;
370
371*GSL_VERSION = *Math::GSL::Multirootsc::GSL_VERSION;
372*GSL_MAJOR_VERSION = *Math::GSL::Multirootsc::GSL_MAJOR_VERSION;
373*GSL_MINOR_VERSION = *Math::GSL::Multirootsc::GSL_MINOR_VERSION;
374*GSL_POSZERO = *Math::GSL::Multirootsc::GSL_POSZERO;
375*GSL_NEGZERO = *Math::GSL::Multirootsc::GSL_NEGZERO;
376*GSL_SUCCESS = *Math::GSL::Multirootsc::GSL_SUCCESS;
377*GSL_FAILURE = *Math::GSL::Multirootsc::GSL_FAILURE;
378*GSL_CONTINUE = *Math::GSL::Multirootsc::GSL_CONTINUE;
379*GSL_EDOM = *Math::GSL::Multirootsc::GSL_EDOM;
380*GSL_ERANGE = *Math::GSL::Multirootsc::GSL_ERANGE;
381*GSL_EFAULT = *Math::GSL::Multirootsc::GSL_EFAULT;
382*GSL_EINVAL = *Math::GSL::Multirootsc::GSL_EINVAL;
383*GSL_EFAILED = *Math::GSL::Multirootsc::GSL_EFAILED;
384*GSL_EFACTOR = *Math::GSL::Multirootsc::GSL_EFACTOR;
385*GSL_ESANITY = *Math::GSL::Multirootsc::GSL_ESANITY;
386*GSL_ENOMEM = *Math::GSL::Multirootsc::GSL_ENOMEM;
387*GSL_EBADFUNC = *Math::GSL::Multirootsc::GSL_EBADFUNC;
388*GSL_ERUNAWAY = *Math::GSL::Multirootsc::GSL_ERUNAWAY;
389*GSL_EMAXITER = *Math::GSL::Multirootsc::GSL_EMAXITER;
390*GSL_EZERODIV = *Math::GSL::Multirootsc::GSL_EZERODIV;
391*GSL_EBADTOL = *Math::GSL::Multirootsc::GSL_EBADTOL;
392*GSL_ETOL = *Math::GSL::Multirootsc::GSL_ETOL;
393*GSL_EUNDRFLW = *Math::GSL::Multirootsc::GSL_EUNDRFLW;
394*GSL_EOVRFLW = *Math::GSL::Multirootsc::GSL_EOVRFLW;
395*GSL_ELOSS = *Math::GSL::Multirootsc::GSL_ELOSS;
396*GSL_EROUND = *Math::GSL::Multirootsc::GSL_EROUND;
397*GSL_EBADLEN = *Math::GSL::Multirootsc::GSL_EBADLEN;
398*GSL_ENOTSQR = *Math::GSL::Multirootsc::GSL_ENOTSQR;
399*GSL_ESING = *Math::GSL::Multirootsc::GSL_ESING;
400*GSL_EDIVERGE = *Math::GSL::Multirootsc::GSL_EDIVERGE;
401*GSL_EUNSUP = *Math::GSL::Multirootsc::GSL_EUNSUP;
402*GSL_EUNIMPL = *Math::GSL::Multirootsc::GSL_EUNIMPL;
403*GSL_ECACHE = *Math::GSL::Multirootsc::GSL_ECACHE;
404*GSL_ETABLE = *Math::GSL::Multirootsc::GSL_ETABLE;
405*GSL_ENOPROG = *Math::GSL::Multirootsc::GSL_ENOPROG;
406*GSL_ENOPROGJ = *Math::GSL::Multirootsc::GSL_ENOPROGJ;
407*GSL_ETOLF = *Math::GSL::Multirootsc::GSL_ETOLF;
408*GSL_ETOLX = *Math::GSL::Multirootsc::GSL_ETOLX;
409*GSL_ETOLG = *Math::GSL::Multirootsc::GSL_ETOLG;
410*GSL_EOF = *Math::GSL::Multirootsc::GSL_EOF;
411
412my %__gsl_multiroot_fsolver_dnewton_hash;
413tie %__gsl_multiroot_fsolver_dnewton_hash,"Math::GSL::Multiroots::gsl_multiroot_fsolver_type", $Math::GSL::Multirootsc::gsl_multiroot_fsolver_dnewton;
414$gsl_multiroot_fsolver_dnewton= \%__gsl_multiroot_fsolver_dnewton_hash;
415bless $gsl_multiroot_fsolver_dnewton, Math::GSL::Multiroots::gsl_multiroot_fsolver_type;
416
417my %__gsl_multiroot_fsolver_broyden_hash;
418tie %__gsl_multiroot_fsolver_broyden_hash,"Math::GSL::Multiroots::gsl_multiroot_fsolver_type", $Math::GSL::Multirootsc::gsl_multiroot_fsolver_broyden;
419$gsl_multiroot_fsolver_broyden= \%__gsl_multiroot_fsolver_broyden_hash;
420bless $gsl_multiroot_fsolver_broyden, Math::GSL::Multiroots::gsl_multiroot_fsolver_type;
421
422my %__gsl_multiroot_fsolver_hybrid_hash;
423tie %__gsl_multiroot_fsolver_hybrid_hash,"Math::GSL::Multiroots::gsl_multiroot_fsolver_type", $Math::GSL::Multirootsc::gsl_multiroot_fsolver_hybrid;
424$gsl_multiroot_fsolver_hybrid= \%__gsl_multiroot_fsolver_hybrid_hash;
425bless $gsl_multiroot_fsolver_hybrid, Math::GSL::Multiroots::gsl_multiroot_fsolver_type;
426
427my %__gsl_multiroot_fsolver_hybrids_hash;
428tie %__gsl_multiroot_fsolver_hybrids_hash,"Math::GSL::Multiroots::gsl_multiroot_fsolver_type", $Math::GSL::Multirootsc::gsl_multiroot_fsolver_hybrids;
429$gsl_multiroot_fsolver_hybrids= \%__gsl_multiroot_fsolver_hybrids_hash;
430bless $gsl_multiroot_fsolver_hybrids, Math::GSL::Multiroots::gsl_multiroot_fsolver_type;
431
432my %__gsl_multiroot_fdfsolver_newton_hash;
433tie %__gsl_multiroot_fdfsolver_newton_hash,"Math::GSL::Multiroots::gsl_multiroot_fdfsolver_type", $Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_newton;
434$gsl_multiroot_fdfsolver_newton= \%__gsl_multiroot_fdfsolver_newton_hash;
435bless $gsl_multiroot_fdfsolver_newton, Math::GSL::Multiroots::gsl_multiroot_fdfsolver_type;
436
437my %__gsl_multiroot_fdfsolver_gnewton_hash;
438tie %__gsl_multiroot_fdfsolver_gnewton_hash,"Math::GSL::Multiroots::gsl_multiroot_fdfsolver_type", $Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_gnewton;
439$gsl_multiroot_fdfsolver_gnewton= \%__gsl_multiroot_fdfsolver_gnewton_hash;
440bless $gsl_multiroot_fdfsolver_gnewton, Math::GSL::Multiroots::gsl_multiroot_fdfsolver_type;
441
442my %__gsl_multiroot_fdfsolver_hybridj_hash;
443tie %__gsl_multiroot_fdfsolver_hybridj_hash,"Math::GSL::Multiroots::gsl_multiroot_fdfsolver_type", $Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_hybridj;
444$gsl_multiroot_fdfsolver_hybridj= \%__gsl_multiroot_fdfsolver_hybridj_hash;
445bless $gsl_multiroot_fdfsolver_hybridj, Math::GSL::Multiroots::gsl_multiroot_fdfsolver_type;
446
447my %__gsl_multiroot_fdfsolver_hybridsj_hash;
448tie %__gsl_multiroot_fdfsolver_hybridsj_hash,"Math::GSL::Multiroots::gsl_multiroot_fdfsolver_type", $Math::GSL::Multirootsc::gsl_multiroot_fdfsolver_hybridsj;
449$gsl_multiroot_fdfsolver_hybridsj= \%__gsl_multiroot_fdfsolver_hybridsj_hash;
450bless $gsl_multiroot_fdfsolver_hybridsj, Math::GSL::Multiroots::gsl_multiroot_fdfsolver_type;
451
452@EXPORT_OK = qw/
453               gsl_multiroot_fdjacobian
454               gsl_multiroot_fsolver_alloc
455               gsl_multiroot_fsolver_free
456               gsl_multiroot_fsolver_set
457               gsl_multiroot_fsolver_iterate
458               gsl_multiroot_fsolver_name
459               gsl_multiroot_fsolver_root
460               gsl_multiroot_fsolver_dx
461               gsl_multiroot_fsolver_f
462               gsl_multiroot_fdfsolver_alloc
463               gsl_multiroot_fdfsolver_set
464               gsl_multiroot_fdfsolver_iterate
465               gsl_multiroot_fdfsolver_free
466               gsl_multiroot_fdfsolver_name
467               gsl_multiroot_fdfsolver_root
468               gsl_multiroot_fdfsolver_dx
469               gsl_multiroot_fdfsolver_f
470               gsl_multiroot_test_delta
471               gsl_multiroot_test_residual
472               $gsl_multiroot_fsolver_dnewton
473               $gsl_multiroot_fsolver_broyden
474               $gsl_multiroot_fsolver_hybrid
475               $gsl_multiroot_fsolver_hybrids
476               $gsl_multiroot_fdfsolver_newton
477               $gsl_multiroot_fdfsolver_gnewton
478               $gsl_multiroot_fdfsolver_hybridj
479               $gsl_multiroot_fdfsolver_hybridsj
480             /;
481%EXPORT_TAGS = ( all => [ @EXPORT_OK ] );
482
483__END__
484
485=encoding utf8
486
487=head1 NAME
488
489Math::GSL::Multiroots - Multidimensional root-finding
490
491
492=head1 SYNOPSIS
493
494This module is not yet implemented. Patches Welcome!
495
496    use Math::GSL::Multiroots qw/:all/;
497
498Solving nonlinear systems with n equations in n unknowns.
499
500=head1 DESCRIPTION
501
502Here is a list of all the functions in this module :
503
504=over
505
506=item * C<gsl_multiroot_fdjacobian >
507
508=item * C<gsl_multiroot_fsolver_alloc >
509
510=item * C<gsl_multiroot_fsolver_free >
511
512=item * C<gsl_multiroot_fsolver_set >
513
514=item * C<gsl_multiroot_fsolver_iterate >
515
516=item * C<gsl_multiroot_fsolver_name >
517
518=item * C<gsl_multiroot_fsolver_root >
519
520=item * C<gsl_multiroot_fsolver_dx >
521
522=item * C<gsl_multiroot_fsolver_f >
523
524=item * C<gsl_multiroot_fdfsolver_alloc >
525
526=item * C<gsl_multiroot_fdfsolver_set >
527
528=item * C<gsl_multiroot_fdfsolver_iterate >
529
530=item * C<gsl_multiroot_fdfsolver_free >
531
532=item * C<gsl_multiroot_fdfsolver_name >
533
534=item * C<gsl_multiroot_fdfsolver_root >
535
536=item * C<gsl_multiroot_fdfsolver_dx >
537
538=item * C<gsl_multiroot_fdfsolver_f >
539
540=item * C<gsl_multiroot_test_delta >
541
542=item * C<gsl_multiroot_test_residual >
543
544=back
545
546For more informations on the functions, we refer you to the GSL official
547documentation: L<http://www.gnu.org/software/gsl/manual/html_node/>
548
549=head1 AUTHORS
550
551Jonathan "Duke" Leto <jonathan@leto.net> and Thierry Moisan <thierry.moisan@gmail.com>
552
553=head1 COPYRIGHT AND LICENSE
554
555Copyright (C) 2008-2021 Jonathan "Duke" Leto and Thierry Moisan
556
557This program is free software; you can redistribute it and/or modify it
558under the same terms as Perl itself.
559
560=cut
561
5621;
563