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::Heapsort;
8use base qw(Exporter);
9use base qw(DynaLoader);
10package Math::GSL::Heapsortc;
11bootstrap Math::GSL::Heapsort;
12package Math::GSL::Heapsort;
13@EXPORT = qw();
14
15# ---------- BASE METHODS -------------
16
17package Math::GSL::Heapsort;
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::Heapsort;
51
52*gsl_error = *Math::GSL::Heapsortc::gsl_error;
53*gsl_stream_printf = *Math::GSL::Heapsortc::gsl_stream_printf;
54*gsl_strerror = *Math::GSL::Heapsortc::gsl_strerror;
55*gsl_set_error_handler = *Math::GSL::Heapsortc::gsl_set_error_handler;
56*gsl_set_error_handler_off = *Math::GSL::Heapsortc::gsl_set_error_handler_off;
57*gsl_set_stream_handler = *Math::GSL::Heapsortc::gsl_set_stream_handler;
58*gsl_set_stream = *Math::GSL::Heapsortc::gsl_set_stream;
59*gsl_permutation_alloc = *Math::GSL::Heapsortc::gsl_permutation_alloc;
60*gsl_permutation_calloc = *Math::GSL::Heapsortc::gsl_permutation_calloc;
61*gsl_permutation_init = *Math::GSL::Heapsortc::gsl_permutation_init;
62*gsl_permutation_free = *Math::GSL::Heapsortc::gsl_permutation_free;
63*gsl_permutation_memcpy = *Math::GSL::Heapsortc::gsl_permutation_memcpy;
64*gsl_permutation_fread = *Math::GSL::Heapsortc::gsl_permutation_fread;
65*gsl_permutation_fwrite = *Math::GSL::Heapsortc::gsl_permutation_fwrite;
66*gsl_permutation_fscanf = *Math::GSL::Heapsortc::gsl_permutation_fscanf;
67*gsl_permutation_fprintf = *Math::GSL::Heapsortc::gsl_permutation_fprintf;
68*gsl_permutation_size = *Math::GSL::Heapsortc::gsl_permutation_size;
69*gsl_permutation_data = *Math::GSL::Heapsortc::gsl_permutation_data;
70*gsl_permutation_swap = *Math::GSL::Heapsortc::gsl_permutation_swap;
71*gsl_permutation_valid = *Math::GSL::Heapsortc::gsl_permutation_valid;
72*gsl_permutation_reverse = *Math::GSL::Heapsortc::gsl_permutation_reverse;
73*gsl_permutation_inverse = *Math::GSL::Heapsortc::gsl_permutation_inverse;
74*gsl_permutation_next = *Math::GSL::Heapsortc::gsl_permutation_next;
75*gsl_permutation_prev = *Math::GSL::Heapsortc::gsl_permutation_prev;
76*gsl_permutation_mul = *Math::GSL::Heapsortc::gsl_permutation_mul;
77*gsl_permutation_linear_to_canonical = *Math::GSL::Heapsortc::gsl_permutation_linear_to_canonical;
78*gsl_permutation_canonical_to_linear = *Math::GSL::Heapsortc::gsl_permutation_canonical_to_linear;
79*gsl_permutation_inversions = *Math::GSL::Heapsortc::gsl_permutation_inversions;
80*gsl_permutation_linear_cycles = *Math::GSL::Heapsortc::gsl_permutation_linear_cycles;
81*gsl_permutation_canonical_cycles = *Math::GSL::Heapsortc::gsl_permutation_canonical_cycles;
82*gsl_permutation_get = *Math::GSL::Heapsortc::gsl_permutation_get;
83*gsl_heapsort = *Math::GSL::Heapsortc::gsl_heapsort;
84*gsl_heapsort_index = *Math::GSL::Heapsortc::gsl_heapsort_index;
85
86############# Class : Math::GSL::Heapsort::gsl_permutation_struct ##############
87
88package Math::GSL::Heapsort::gsl_permutation_struct;
89use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
90@ISA = qw( Math::GSL::Heapsort );
91%OWNER = ();
92%ITERATORS = ();
93*swig_size_get = *Math::GSL::Heapsortc::gsl_permutation_struct_size_get;
94*swig_size_set = *Math::GSL::Heapsortc::gsl_permutation_struct_size_set;
95*swig_data_get = *Math::GSL::Heapsortc::gsl_permutation_struct_data_get;
96*swig_data_set = *Math::GSL::Heapsortc::gsl_permutation_struct_data_set;
97sub new {
98    my $pkg = shift;
99    my $self = Math::GSL::Heapsortc::new_gsl_permutation_struct(@_);
100    bless $self, $pkg if defined($self);
101}
102
103sub DESTROY {
104    return unless $_[0]->isa('HASH');
105    my $self = tied(%{$_[0]});
106    return unless defined $self;
107    delete $ITERATORS{$self};
108    if (exists $OWNER{$self}) {
109        Math::GSL::Heapsortc::delete_gsl_permutation_struct($self);
110        delete $OWNER{$self};
111    }
112}
113
114sub DISOWN {
115    my $self = shift;
116    my $ptr = tied(%$self);
117    delete $OWNER{$ptr};
118}
119
120sub ACQUIRE {
121    my $self = shift;
122    my $ptr = tied(%$self);
123    $OWNER{$ptr} = 1;
124}
125
126
127# ------- VARIABLE STUBS --------
128
129package Math::GSL::Heapsort;
130
131*GSL_VERSION = *Math::GSL::Heapsortc::GSL_VERSION;
132*GSL_MAJOR_VERSION = *Math::GSL::Heapsortc::GSL_MAJOR_VERSION;
133*GSL_MINOR_VERSION = *Math::GSL::Heapsortc::GSL_MINOR_VERSION;
134*GSL_POSZERO = *Math::GSL::Heapsortc::GSL_POSZERO;
135*GSL_NEGZERO = *Math::GSL::Heapsortc::GSL_NEGZERO;
136*GSL_SUCCESS = *Math::GSL::Heapsortc::GSL_SUCCESS;
137*GSL_FAILURE = *Math::GSL::Heapsortc::GSL_FAILURE;
138*GSL_CONTINUE = *Math::GSL::Heapsortc::GSL_CONTINUE;
139*GSL_EDOM = *Math::GSL::Heapsortc::GSL_EDOM;
140*GSL_ERANGE = *Math::GSL::Heapsortc::GSL_ERANGE;
141*GSL_EFAULT = *Math::GSL::Heapsortc::GSL_EFAULT;
142*GSL_EINVAL = *Math::GSL::Heapsortc::GSL_EINVAL;
143*GSL_EFAILED = *Math::GSL::Heapsortc::GSL_EFAILED;
144*GSL_EFACTOR = *Math::GSL::Heapsortc::GSL_EFACTOR;
145*GSL_ESANITY = *Math::GSL::Heapsortc::GSL_ESANITY;
146*GSL_ENOMEM = *Math::GSL::Heapsortc::GSL_ENOMEM;
147*GSL_EBADFUNC = *Math::GSL::Heapsortc::GSL_EBADFUNC;
148*GSL_ERUNAWAY = *Math::GSL::Heapsortc::GSL_ERUNAWAY;
149*GSL_EMAXITER = *Math::GSL::Heapsortc::GSL_EMAXITER;
150*GSL_EZERODIV = *Math::GSL::Heapsortc::GSL_EZERODIV;
151*GSL_EBADTOL = *Math::GSL::Heapsortc::GSL_EBADTOL;
152*GSL_ETOL = *Math::GSL::Heapsortc::GSL_ETOL;
153*GSL_EUNDRFLW = *Math::GSL::Heapsortc::GSL_EUNDRFLW;
154*GSL_EOVRFLW = *Math::GSL::Heapsortc::GSL_EOVRFLW;
155*GSL_ELOSS = *Math::GSL::Heapsortc::GSL_ELOSS;
156*GSL_EROUND = *Math::GSL::Heapsortc::GSL_EROUND;
157*GSL_EBADLEN = *Math::GSL::Heapsortc::GSL_EBADLEN;
158*GSL_ENOTSQR = *Math::GSL::Heapsortc::GSL_ENOTSQR;
159*GSL_ESING = *Math::GSL::Heapsortc::GSL_ESING;
160*GSL_EDIVERGE = *Math::GSL::Heapsortc::GSL_EDIVERGE;
161*GSL_EUNSUP = *Math::GSL::Heapsortc::GSL_EUNSUP;
162*GSL_EUNIMPL = *Math::GSL::Heapsortc::GSL_EUNIMPL;
163*GSL_ECACHE = *Math::GSL::Heapsortc::GSL_ECACHE;
164*GSL_ETABLE = *Math::GSL::Heapsortc::GSL_ETABLE;
165*GSL_ENOPROG = *Math::GSL::Heapsortc::GSL_ENOPROG;
166*GSL_ENOPROGJ = *Math::GSL::Heapsortc::GSL_ENOPROGJ;
167*GSL_ETOLF = *Math::GSL::Heapsortc::GSL_ETOLF;
168*GSL_ETOLX = *Math::GSL::Heapsortc::GSL_ETOLX;
169*GSL_ETOLG = *Math::GSL::Heapsortc::GSL_ETOLG;
170*GSL_EOF = *Math::GSL::Heapsortc::GSL_EOF;
171
172@EXPORT_OK = qw/
173               gsl_heapsort
174               gsl_heapsort_index
175             /;
176%EXPORT_TAGS = ( all => [ @EXPORT_OK ] );
177
178__END__
179
180=encoding utf8
181
182
183=head1 NAME
184
185Math::GSL::Heapsort - Functions for sorting data, both directly and indirectly (using an index)
186
187=head1 SYNOPSIS
188
189This module is not yet implemented. Patches Welcome!
190
191    use Math::GSL::Heapsort qw /:all/;
192
193=head1 DESCRIPTION
194
195Here is a list of all the functions in this module :
196
197=over
198
199=item * gsl_heapsort
200
201=item * gsl_heapsort_index
202
203=back
204
205For more informations on the functions, we refer you to the GSL official
206documentation: L<http://www.gnu.org/software/gsl/manual/html_node/>
207
208
209
210
211=head1 AUTHORS
212
213Jonathan "Duke" Leto <jonathan@leto.net> and Thierry Moisan <thierry.moisan@gmail.com>
214
215=head1 COPYRIGHT AND LICENSE
216
217Copyright (C) 2008-2021 Jonathan "Duke" Leto and Thierry Moisan
218
219This program is free software; you can redistribute it and/or modify it
220under the same terms as Perl itself.
221
222=cut
223
2241;
225