# This file was automatically generated by SWIG (http://www.swig.org). # Version 1.3.31 # # Don't modify this file, modify the SWIG interface instead. package Math::GSL::FFT; require Exporter; require DynaLoader; @ISA = qw(Exporter DynaLoader); package Math::GSL::FFTc; bootstrap Math::GSL::FFT; package Math::GSL::FFT; @EXPORT = qw( ); # ---------- BASE METHODS ------------- package Math::GSL::FFT; sub TIEHASH { my ($classname,$obj) = @_; return bless $obj, $classname; } sub CLEAR { } sub FIRSTKEY { } sub NEXTKEY { } sub FETCH { my ($self,$field) = @_; my $member_func = "swig_${field}_get"; $self->$member_func(); } sub STORE { my ($self,$field,$newval) = @_; my $member_func = "swig_${field}_set"; $self->$member_func($newval); } sub this { my $ptr = shift; return tied(%$ptr); } # ------- FUNCTION WRAPPERS -------- package Math::GSL::FFT; *gsl_fft_complex_radix2_forward = *Math::GSL::FFTc::gsl_fft_complex_radix2_forward; *gsl_fft_complex_radix2_backward = *Math::GSL::FFTc::gsl_fft_complex_radix2_backward; *gsl_fft_complex_radix2_inverse = *Math::GSL::FFTc::gsl_fft_complex_radix2_inverse; *gsl_fft_complex_radix2_transform = *Math::GSL::FFTc::gsl_fft_complex_radix2_transform; *gsl_fft_complex_radix2_dif_forward = *Math::GSL::FFTc::gsl_fft_complex_radix2_dif_forward; *gsl_fft_complex_radix2_dif_backward = *Math::GSL::FFTc::gsl_fft_complex_radix2_dif_backward; *gsl_fft_complex_radix2_dif_inverse = *Math::GSL::FFTc::gsl_fft_complex_radix2_dif_inverse; *gsl_fft_complex_radix2_dif_transform = *Math::GSL::FFTc::gsl_fft_complex_radix2_dif_transform; *gsl_fft_complex_wavetable_alloc = *Math::GSL::FFTc::gsl_fft_complex_wavetable_alloc; *gsl_fft_complex_wavetable_free = *Math::GSL::FFTc::gsl_fft_complex_wavetable_free; *gsl_fft_complex_workspace_alloc = *Math::GSL::FFTc::gsl_fft_complex_workspace_alloc; *gsl_fft_complex_workspace_free = *Math::GSL::FFTc::gsl_fft_complex_workspace_free; *gsl_fft_complex_memcpy = *Math::GSL::FFTc::gsl_fft_complex_memcpy; *gsl_fft_complex_forward = *Math::GSL::FFTc::gsl_fft_complex_forward; *gsl_fft_complex_backward = *Math::GSL::FFTc::gsl_fft_complex_backward; *gsl_fft_complex_inverse = *Math::GSL::FFTc::gsl_fft_complex_inverse; *gsl_fft_complex_transform = *Math::GSL::FFTc::gsl_fft_complex_transform; *gsl_fft_halfcomplex_radix2_backward = *Math::GSL::FFTc::gsl_fft_halfcomplex_radix2_backward; *gsl_fft_halfcomplex_radix2_inverse = *Math::GSL::FFTc::gsl_fft_halfcomplex_radix2_inverse; *gsl_fft_halfcomplex_radix2_transform = *Math::GSL::FFTc::gsl_fft_halfcomplex_radix2_transform; *gsl_fft_halfcomplex_wavetable_alloc = *Math::GSL::FFTc::gsl_fft_halfcomplex_wavetable_alloc; *gsl_fft_halfcomplex_wavetable_free = *Math::GSL::FFTc::gsl_fft_halfcomplex_wavetable_free; *gsl_fft_halfcomplex_backward = *Math::GSL::FFTc::gsl_fft_halfcomplex_backward; *gsl_fft_halfcomplex_inverse = *Math::GSL::FFTc::gsl_fft_halfcomplex_inverse; *gsl_fft_halfcomplex_transform = *Math::GSL::FFTc::gsl_fft_halfcomplex_transform; *gsl_fft_halfcomplex_unpack = *Math::GSL::FFTc::gsl_fft_halfcomplex_unpack; *gsl_fft_halfcomplex_radix2_unpack = *Math::GSL::FFTc::gsl_fft_halfcomplex_radix2_unpack; *gsl_fft_real_radix2_transform = *Math::GSL::FFTc::gsl_fft_real_radix2_transform; *gsl_fft_real_wavetable_alloc = *Math::GSL::FFTc::gsl_fft_real_wavetable_alloc; *gsl_fft_real_wavetable_free = *Math::GSL::FFTc::gsl_fft_real_wavetable_free; *gsl_fft_real_workspace_alloc = *Math::GSL::FFTc::gsl_fft_real_workspace_alloc; *gsl_fft_real_workspace_free = *Math::GSL::FFTc::gsl_fft_real_workspace_free; *gsl_fft_real_transform = *Math::GSL::FFTc::gsl_fft_real_transform; *gsl_fft_real_unpack = *Math::GSL::FFTc::gsl_fft_real_unpack; ############# Class : Math::GSL::FFT::gsl_complex_long_double ############## package Math::GSL::FFT::gsl_complex_long_double; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::FFT ); %OWNER = (); %ITERATORS = (); *swig_dat_get = *Math::GSL::FFTc::gsl_complex_long_double_dat_get; *swig_dat_set = *Math::GSL::FFTc::gsl_complex_long_double_dat_set; sub new { my $pkg = shift; my $self = Math::GSL::FFTc::new_gsl_complex_long_double(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::FFTc::delete_gsl_complex_long_double($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::FFT::gsl_complex ############## package Math::GSL::FFT::gsl_complex; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::FFT ); %OWNER = (); %ITERATORS = (); *swig_dat_get = *Math::GSL::FFTc::gsl_complex_dat_get; *swig_dat_set = *Math::GSL::FFTc::gsl_complex_dat_set; sub new { my $pkg = shift; my $self = Math::GSL::FFTc::new_gsl_complex(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::FFTc::delete_gsl_complex($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::FFT::gsl_complex_float ############## package Math::GSL::FFT::gsl_complex_float; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::FFT ); %OWNER = (); %ITERATORS = (); *swig_dat_get = *Math::GSL::FFTc::gsl_complex_float_dat_get; *swig_dat_set = *Math::GSL::FFTc::gsl_complex_float_dat_set; sub new { my $pkg = shift; my $self = Math::GSL::FFTc::new_gsl_complex_float(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::FFTc::delete_gsl_complex_float($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::FFT::gsl_fft_complex_wavetable ############## package Math::GSL::FFT::gsl_fft_complex_wavetable; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::FFT ); %OWNER = (); %ITERATORS = (); *swig_n_get = *Math::GSL::FFTc::gsl_fft_complex_wavetable_n_get; *swig_n_set = *Math::GSL::FFTc::gsl_fft_complex_wavetable_n_set; *swig_nf_get = *Math::GSL::FFTc::gsl_fft_complex_wavetable_nf_get; *swig_nf_set = *Math::GSL::FFTc::gsl_fft_complex_wavetable_nf_set; *swig_factor_get = *Math::GSL::FFTc::gsl_fft_complex_wavetable_factor_get; *swig_factor_set = *Math::GSL::FFTc::gsl_fft_complex_wavetable_factor_set; *swig_twiddle_get = *Math::GSL::FFTc::gsl_fft_complex_wavetable_twiddle_get; *swig_twiddle_set = *Math::GSL::FFTc::gsl_fft_complex_wavetable_twiddle_set; *swig_trig_get = *Math::GSL::FFTc::gsl_fft_complex_wavetable_trig_get; *swig_trig_set = *Math::GSL::FFTc::gsl_fft_complex_wavetable_trig_set; sub new { my $pkg = shift; my $self = Math::GSL::FFTc::new_gsl_fft_complex_wavetable(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::FFTc::delete_gsl_fft_complex_wavetable($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::FFT::gsl_fft_complex_workspace ############## package Math::GSL::FFT::gsl_fft_complex_workspace; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::FFT ); %OWNER = (); %ITERATORS = (); *swig_n_get = *Math::GSL::FFTc::gsl_fft_complex_workspace_n_get; *swig_n_set = *Math::GSL::FFTc::gsl_fft_complex_workspace_n_set; *swig_scratch_get = *Math::GSL::FFTc::gsl_fft_complex_workspace_scratch_get; *swig_scratch_set = *Math::GSL::FFTc::gsl_fft_complex_workspace_scratch_set; sub new { my $pkg = shift; my $self = Math::GSL::FFTc::new_gsl_fft_complex_workspace(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::FFTc::delete_gsl_fft_complex_workspace($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::FFT::gsl_fft_halfcomplex_wavetable ############## package Math::GSL::FFT::gsl_fft_halfcomplex_wavetable; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::FFT ); %OWNER = (); %ITERATORS = (); *swig_n_get = *Math::GSL::FFTc::gsl_fft_halfcomplex_wavetable_n_get; *swig_n_set = *Math::GSL::FFTc::gsl_fft_halfcomplex_wavetable_n_set; *swig_nf_get = *Math::GSL::FFTc::gsl_fft_halfcomplex_wavetable_nf_get; *swig_nf_set = *Math::GSL::FFTc::gsl_fft_halfcomplex_wavetable_nf_set; *swig_factor_get = *Math::GSL::FFTc::gsl_fft_halfcomplex_wavetable_factor_get; *swig_factor_set = *Math::GSL::FFTc::gsl_fft_halfcomplex_wavetable_factor_set; *swig_twiddle_get = *Math::GSL::FFTc::gsl_fft_halfcomplex_wavetable_twiddle_get; *swig_twiddle_set = *Math::GSL::FFTc::gsl_fft_halfcomplex_wavetable_twiddle_set; *swig_trig_get = *Math::GSL::FFTc::gsl_fft_halfcomplex_wavetable_trig_get; *swig_trig_set = *Math::GSL::FFTc::gsl_fft_halfcomplex_wavetable_trig_set; sub new { my $pkg = shift; my $self = Math::GSL::FFTc::new_gsl_fft_halfcomplex_wavetable(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::FFTc::delete_gsl_fft_halfcomplex_wavetable($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::FFT::gsl_fft_real_wavetable ############## package Math::GSL::FFT::gsl_fft_real_wavetable; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::FFT ); %OWNER = (); %ITERATORS = (); *swig_n_get = *Math::GSL::FFTc::gsl_fft_real_wavetable_n_get; *swig_n_set = *Math::GSL::FFTc::gsl_fft_real_wavetable_n_set; *swig_nf_get = *Math::GSL::FFTc::gsl_fft_real_wavetable_nf_get; *swig_nf_set = *Math::GSL::FFTc::gsl_fft_real_wavetable_nf_set; *swig_factor_get = *Math::GSL::FFTc::gsl_fft_real_wavetable_factor_get; *swig_factor_set = *Math::GSL::FFTc::gsl_fft_real_wavetable_factor_set; *swig_twiddle_get = *Math::GSL::FFTc::gsl_fft_real_wavetable_twiddle_get; *swig_twiddle_set = *Math::GSL::FFTc::gsl_fft_real_wavetable_twiddle_set; *swig_trig_get = *Math::GSL::FFTc::gsl_fft_real_wavetable_trig_get; *swig_trig_set = *Math::GSL::FFTc::gsl_fft_real_wavetable_trig_set; sub new { my $pkg = shift; my $self = Math::GSL::FFTc::new_gsl_fft_real_wavetable(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::FFTc::delete_gsl_fft_real_wavetable($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::FFT::gsl_fft_real_workspace ############## package Math::GSL::FFT::gsl_fft_real_workspace; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::FFT ); %OWNER = (); %ITERATORS = (); *swig_n_get = *Math::GSL::FFTc::gsl_fft_real_workspace_n_get; *swig_n_set = *Math::GSL::FFTc::gsl_fft_real_workspace_n_set; *swig_scratch_get = *Math::GSL::FFTc::gsl_fft_real_workspace_scratch_get; *swig_scratch_set = *Math::GSL::FFTc::gsl_fft_real_workspace_scratch_set; sub new { my $pkg = shift; my $self = Math::GSL::FFTc::new_gsl_fft_real_workspace(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::FFTc::delete_gsl_fft_real_workspace($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } # ------- VARIABLE STUBS -------- package Math::GSL::FFT; *forward = *Math::GSL::FFTc::forward; *backward = *Math::GSL::FFTc::backward; *gsl_fft_forward = *Math::GSL::FFTc::gsl_fft_forward; *gsl_fft_backward = *Math::GSL::FFTc::gsl_fft_backward; @EXPORT_complex = qw/ gsl_fft_complex_radix2_forward gsl_fft_complex_radix2_backward gsl_fft_complex_radix2_inverse gsl_fft_complex_radix2_transform gsl_fft_complex_radix2_dif_forward gsl_fft_complex_radix2_dif_backward gsl_fft_complex_radix2_dif_inverse gsl_fft_complex_radix2_dif_transform gsl_fft_complex_wavetable_alloc gsl_fft_complex_wavetable_free gsl_fft_complex_workspace_alloc gsl_fft_complex_workspace_free gsl_fft_complex_memcpy gsl_fft_complex_forward gsl_fft_complex_backward gsl_fft_complex_inverse gsl_fft_complex_transform /; @EXPORT_halfcomplex = qw/ gsl_fft_halfcomplex_radix2_backward gsl_fft_halfcomplex_radix2_inverse gsl_fft_halfcomplex_radix2_transform gsl_fft_halfcomplex_wavetable_alloc gsl_fft_halfcomplex_wavetable_free gsl_fft_halfcomplex_backward gsl_fft_halfcomplex_inverse gsl_fft_halfcomplex_transform gsl_fft_halfcomplex_unpack gsl_fft_halfcomplex_radix2_unpack /; @EXPORT_real = qw/ gsl_fft_real_radix2_transform gsl_fft_real_wavetable_alloc gsl_fft_real_wavetable_free gsl_fft_real_workspace_alloc gsl_fft_real_workspace_free gsl_fft_real_transform gsl_fft_real_unpack /; @EXPORT_vars = qw/ $gsl_fft_forward $gsl_fft_backward /; @EXPORT_OK = ( @EXPORT_real, @EXPORT_complex, @EXPORT_halfcomplex, @EXPORT_vars, ); %EXPORT_TAGS = ( all => \@EXPORT_OK, real => \@EXPORT_real, complex => \@EXPORT_complex, halfcomplex => \@EXPORT_halfcomplex, vars => \@EXPORT_vars, ); __END__ =head1 NAME Math::GSL::FFT - Functions for performing Fast Fourier Transforms (FFT) =head1 SYNOPSIS use Math::GSL::FFT qw /:all/; =head1 DESCRIPTION Here is a list of all the functions in this module : =over =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =back This module also includes the following constants : =over =item * C<$gsl_fft_forward> =item * C<$gsl_fft_backward> =back For more informations on the functions, we refer you to the GSL offcial documentation: L Tip : search on google: site:http://www.gnu.org/software/gsl/manual/html_node/ name_of_the_function_you_want =head1 AUTHORS Jonathan Leto and Thierry Moisan =head1 COPYRIGHT AND LICENSE Copyright (C) 2008 Jonathan Leto and Thierry Moisan This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut 1;