%perlcode %{
use Data::Dumper;
use Carp qw/croak/;
use Math::GSL::Errno qw/:all/;

@EXPORT_OK = qw/
               gsl_ntuple_open
               gsl_ntuple_create
               gsl_ntuple_write
               gsl_ntuple_read
               gsl_ntuple_bookdata
               gsl_ntuple_project
               gsl_ntuple_close
             /;
%EXPORT_TAGS = ( all => [ @EXPORT_OK ] );

=head1 NAME

Math::GSL::NTuple - Functions for creating and manipulating ntuples, sets of values

=head1 SYNOPSIS

This module is partially implemented. Patches Welcome!

    use Math::GSL::NTuple qw /:all/;

=head1 DESCRIPTION

Here is a list of all the functions in this module :

=over

=cut 

sub new
{
    my ($class,$values) = @_;
    my $this = {};
    my $ntuple = Math::GSL::NTuple::gsl_ntuple->new;
    $this->{_ntuple} = $ntuple;

    bless $this, $class;
}

sub raw
{
    return (shift)->{_ntuple};
}
=item * <gsl_ntuple_open($filename, $ntuple_data, $size)> - This function opens an existing ntuple file $filename for reading and returns a pointer to a corresponding ntuple struct. The ntuples in the file must have size $size. A pointer to memory for the current ntuple row $ntuple_data, which is an array reference, must be supplied -- this is used to copy ntuples in and out of the file.

=item * <gsl_ntuple_create > - This function creates a new write-only ntuple file $filename for ntuples of size $size and returns a pointer to the newly created ntuple struct. Any existing file with the same name is truncated to zero length and overwritten. A pointer to memory for the current ntuple row $ntuple_data, which is an array reference, must be supplied -- this is used to copy ntuples in and out of the file.


=item * <gsl_ntuple_write($ntuple)> - This function writes the current $ntuple $ntuple->{ntuple_data} of size $ntuple->{size} to the corresponding file.

=item * <gsl_ntuple_bookdata($ntuple)> - This function is a synonym for gsl_ntuple_write.

=item * <gsl_ntuple_read($ntuple)> - This function reads the current row of the ntuple file for ntuple and stores the values in $ntuple->{data}.

=item * <gsl_ntuple_project >

=item * <gsl_ntuple_close($ntuple)> - This function closes the ntuple file ntuple and frees its associated allocated memory.

=back

For more informations on the functions, we refer you to the GSL offcial
documentation: L<http://www.gnu.org/software/gsl/manual/html_node/>

 


=head1 AUTHORS

Jonathan "Duke" Leto <jonathan@leto.net> and Thierry Moisan <thierry.moisan@gmail.com>

=head1 COPYRIGHT AND LICENSE

Copyright (C) 2008-2011-2011 Jonathan "Duke" 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

%}

