hmatrix-0.15.0.1: Linear algebra and numerical computation

Portabilityuses ffi
Stabilityprovisional
MaintainerAlberto Ruiz (aruiz at um dot es)
Safe HaskellNone

Numeric.GSL.Integration

Description

Synopsis

Documentation

integrateQNGSource

Arguments

:: Double

precision (e.g. 1E-9)

-> (Double -> Double)

function to be integrated on the interval (a,b)

-> Double

a

-> Double

b

-> (Double, Double)

result of the integration and error

Numerical integration using gsl_integration_qng (useful for fast integration of smooth functions). For example:

> let quad = integrateQNG 1E-6 
> quad (\x -> 4/(1+x*x)) 0 1 
(3.141592653589793,3.487868498008632e-14)

integrateQAGSSource

Arguments

:: Double

precision (e.g. 1E-9)

-> Int

size of auxiliary workspace (e.g. 1000)

-> (Double -> Double)

function to be integrated on the interval (a,b)

-> Double

a

-> Double

b

-> (Double, Double)

result of the integration and error

Numerical integration using gsl_integration_qags (adaptive integration with singularities). For example:

> let quad = integrateQAGS 1E-9 1000 
> let f a x = x**(-0.5) * log (a*x)
> quad (f 1) 0 1
(-3.999999999999974,4.871658632055187e-13)

integrateQAGISource

Arguments

:: Double

precision (e.g. 1E-9)

-> Int

size of auxiliary workspace (e.g. 1000)

-> (Double -> Double)

function to be integrated on the interval (-Inf,Inf)

-> (Double, Double)

result of the integration and error

Numerical integration using gsl_integration_qagi (integration over the infinite integral -Inf..Inf using QAGS). For example:

> let quad = integrateQAGI 1E-9 1000 
> let f a x = exp(-a * x^2)
> quad (f 0.5) 
(2.5066282746310002,6.229215880648858e-11)

integrateQAGIUSource

Arguments

:: Double

precision (e.g. 1E-9)

-> Int

size of auxiliary workspace (e.g. 1000)

-> (Double -> Double)

function to be integrated on the interval (a,Inf)

-> Double

a

-> (Double, Double)

result of the integration and error

Numerical integration using gsl_integration_qagiu (integration over the semi-infinite integral a..Inf). For example:

> let quad = integrateQAGIU 1E-9 1000 
> let f a x = exp(-a * x^2)
> quad (f 0.5) 0
(1.2533141373155001,3.114607940324429e-11)

integrateQAGILSource

Arguments

:: Double

precision (e.g. 1E-9)

-> Int

size of auxiliary workspace (e.g. 1000)

-> (Double -> Double)

function to be integrated on the interval (a,Inf)

-> Double

b

-> (Double, Double)

result of the integration and error

Numerical integration using gsl_integration_qagil (integration over the semi-infinite integral -Inf..b). For example:

> let quad = integrateQAGIL 1E-9 1000 
> let f a x = exp(-a * x^2)
> quad (f 0.5) 0 
(1.2533141373155001,3.114607940324429e-11)