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_qk15

  • gsl_integration_qk21

  • gsl_integration_qk31

  • gsl_integration_qk41

  • gsl_integration_qk51

  • gsl_integration_qk61

  • gsl_integration_qcheb

  • gsl_integration_qk

  • gsl_integration_qng

  • gsl_integration_qag

  • gsl_integration_qagi

  • gsl_integration_qagiu

  • gsl_integration_qagil

  • gsl_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_qagp

  • gsl_integration_qawc

  • gsl_integration_qaws

  • gsl_integration_qawo

  • gsl_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.