NAME

Math::GSL - Perl interface to the GNU Scientific Library (GSL)

VERSION

Version 0.49

SYNOPSIS

use Math::GSL::Matrix;
my $matrix = Math::GSL::Matrix->new(5,5);   # 5x5 zero matrix
# note that columns and rows are zero-based
$matrix->set_col(0, [1..5])                 # set *first* column to 1,2,3,4,5
       ->set_row(2, [5..9]);                # set *third* column to 5,6,7,8,9
my @matrix = $matrix->as_list;              # matrix as Perl list
my $gsl_matrix = $matrix->raw;              # underlying GSL object

use Math::GSL::RNG;
my $rng = Math::GSL::RNG->new;
my @random_numbers = $rng->get(1000);

use Math::GSL::Deriv qw/:all/;
my $function = sub { my $x=shift; sin($x**2) };
my ($status,$val,$err) = gsl_deriv_central($function, 5, 0.01 );

use Math::GSL qw/gsl_version/;
# get a version object for the version of the underlying GSL library,
# which will stringify to a version number
my $gsl_version = gsl_version();

Each GSL subsystem has its own module. For example, the random number generator subsystem is Math::GSL::RNG. Many subsystems have a more Perlish and object-oriented frontend which can be used, as the above example shows. The raw GSL object is useful for using the low-level GSL functions, which in the case of the Matrix subsystem, would be of the form gsl_matrix_* . Each module has further documentation about the low-level C functions as well as using the more intuitive (but slightly slower) object-oriented interface.

SUBSYSTEMS

Math::GSL::BLAS - Linear Algebra Functions

Math::GSL::BSpline - BSplines

Math::GSL::CBLAS - Linear Algebra Functions

Math::GSL::CDF - Cumulative Distribution Functions

Math::GSL::Chebyshev - Chebyshev Polynomials

Math::GSL::Combination - Combinatoric Functions

Math::GSL::Complex - Complex Numbers

Math::GSL::Const - Various Constants

Math::GSL::DHT - Discrete Hankel Transforms

Math::GSL::Deriv - Numerical Derivative

Math::GSL::Eigen - Eigenvalues and Eigenvectors

Math::GSL::Errno - Error Handling

Math::GSL::FFT - Fast Fourier Transform

Math::GSL::Fit - Curve Fitting

Math::GSL::Heapsort - Sorting Heaps

Math::GSL::Histogram - Histograms

Math::GSL::Histogram2D - 2D Histograms

Math::GSL::Integration - Numerical Integration

Math::GSL::Interp - Interpolation

Math::GSL::Linalg - Linear Algebra

Math::GSL::Machine - Machine Specific Information

Math::GSL::Matrix - NxM Matrices

Math::GSL::Min - Minimization

Math::GSL::Monte - Monte Carlo Integrations

Math::GSL::Multifit - Multivariable Fitting

Math::GSL::Multimin - Multivariable Minimization

Math::GSL::Multiroots - Muiltvariable Root Finding

Math::GSL::NTuple - N Tuples

Math::GSL::ODEIV - Ordinary Differential Equation Solvers (Initial Value Problems)

Math::GSL::Permutation - Permutations

Math::GSL::Poly - Polynmials

Math::GSL::PowInt - Integer Power Functions

Math::GSL::QRNG - Quasi-Random Number Generators

Math::GSL::RNG - Random Number Generators

Math::GSL::Randist - Random Number Distributions

Math::GSL::Roots - Root Finding Algorithms

Math::GSL::Rstat - Running Statistics

Math::GSL::SF - Special Functions

Math::GSL::Siman - Simulated Annealing

Math::GSL::Sort - Sorting

Math::GSL::SparseMatrix - Sparse Matrices

Math::GSL::Spline - Splines

Math::GSL::Statistics - Statistics Functions

Math::GSL::Sum - Summation

Math::GSL::Sys - Sytem utility functions

Math::GSL::Vector - N-dimensional Vectors

Math::GSL::Wavelet - Basic Wavelets

Math::GSL::Wavelet2D - 2D Wavelets

AUTHORS

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

BUGS

This software is still in active development, we appreciate your detailed bug reports and documentation patches. Please report any bugs or feature requests to https://github.com/hakonhagland/perl-math-gsl/issues.

DEVELOPMENT

If you would like the help develop Math::GSL, visit us on Github https://github.com/hakonhagland/perl-math-gsl/issues and fork, send Pull Requests and/or create issues.

To view the latest source code online, go to https://github.com/hakonhagland/perl-math-gsl.

DEDICATION

This Perl module is dedicated in memory of Nick Ing-Simmons.

COPYRIGHT & LICENSE

Copyright (C) 2008-2024 Jonathan "Duke" Leto, Thierry Moisan all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.