NAME
Math::GSL::Integration - Routines for performing numerical integration (quadrature) of a function in one dimension
SYNOPSIS
This module is not yet implemented. Patches Welcome!
use Math::GSL::Integration qw /:all/;
DESCRIPTION
Here is a list of all the functions in this module :
gsl_integration_workspace_alloc($n)- This function allocates a workspace sufficient to hold $n double precision intervals, their integration results and error estimates.gsl_integration_workspace_free($w)- This function frees the memory associated with the workspace $w.gsl_integration_qaws_table_alloc($alpha, $beta, $mu, $nu)- This function allocates space for a gsl_integration_qaws_table struct describing a singular weight function W(x) with the parameters ($alpha, $beta, $mu, $nu), W(x) = (x-a)^alpha (b-x)^beta log^mu (x-a) log^nu (b-x) where $alpha > -1, $beta > -1, and $mu = 0, 1, $nu = 0, 1. The weight function can take four different forms depending on the values of $mu and $nu,W(x) = (x-a)^alpha (b-x)^beta (mu = 0, nu = 0) W(x) = (x-a)^alpha (b-x)^beta log(x-a) (mu = 1, nu = 0) W(x) = (x-a)^alpha (b-x)^beta log(b-x) (mu = 0, nu = 1) W(x) = (x-a)^alpha (b-x)^beta log(x-a) log(b-x) (mu = 1, nu = 1)The singular points (a,b) do not have to be specified until the integral is computed, where they are the endpoints of the integration range. The function returns a pointer to the newly allocated table gsl_integration_qaws_table if no errors were detected, and 0 in the case of error.
gsl_integration_qaws_table_set($t, $alpha, $beta, $mu, $nu)- This function modifies the parameters ($alpha, $beta, $mu, $nu) of an existing gsl_integration_qaws_table struct $t.gsl_integration_qaws_table_free($t)- This function frees all the memory associated with the gsl_integration_qaws_table struct $t.gsl_integration_qawo_table_alloc($omega, $L, $sine, $n)gsl_integration_qawo_table_set($t, $omega, $L, $sine, $n)- This function changes the parameters omega, L and sine of the existing workspace $t.gsl_integration_qawo_table_set_length($t, $L)- This function allows the length parameter $L of the workspace $t to be changed.gsl_integration_qawo_table_free($t)- This function frees all the memory associated with the workspace $t.gsl_integration_qk15gsl_integration_qk21gsl_integration_qk31gsl_integration_qk41gsl_integration_qk51gsl_integration_qk61gsl_integration_qchebgsl_integration_qkgsl_integration_qnggsl_integration_qaggsl_integration_qagigsl_integration_qagiugsl_integration_qagilgsl_integration_qags($func,$a,$b,$epsabs,$epsrel,$limit,$workspace)($status, $result, $abserr) = gsl_integration_qags ( sub { 1/$_[0]} , 1, 10, 0, 1e-7, 1000, $workspace, ); This function applies the Gauss-Kronrod 21-point integration rule adaptively until an estimate of the integral of $func over ($a,$b) is achieved within the desired absolute and relative error limits, $epsabs and $epsrel.gsl_integration_qagpgsl_integration_qawcgsl_integration_qawsgsl_integration_qawogsl_integration_qawf
This module also includes the following constants :
$GSL_INTEG_COSINE
$GSL_INTEG_SINE
$GSL_INTEG_GAUSS15
$GSL_INTEG_GAUSS21
$GSL_INTEG_GAUSS31
$GSL_INTEG_GAUSS41
$GSL_INTEG_GAUSS51
$GSL_INTEG_GAUSS61
The following errors constants are part of the Math::GSL::Errno module and can be returned by the gsl_integration functions :
$GSL_EMAXITER - the maximum number of subdivisions was exceeded.
$GSL_EROUND - cannot reach tolerance because of roundoff error, or roundoff error was detected in the extrapolation table.
GSL_ESING - a non-integrable singularity or other bad integrand behavior was found in the integration interval.
GSL_EDIVERGE - the integral is divergent, or too slowly convergent to be integrated numerically.
For more informations on the functions, we refer you to the GSL offcial documentation: http://www.gnu.org/software/gsl/manual/html_node/
Tip : search on google: site:http://www.gnu.org/software/gsl/manual/html_node/ name_of_the_function_you_want
AUTHORS
Jonathan Leto <jonathan@leto.net> and Thierry Moisan <thierry.moisan@gmail.com>
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.