GaussQuadIntegration

Non-adaptive Gaussian quadrature for numeric integraton

Latest on Hackage:0.1

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD3 licensed and maintained by Grigory Sarnitsky

This package provides means for numeric integration with a Gaussian quadrature. Precisely, it incorporates non-adaptive approximation for definite integrals using 128-, 256-, 512- and 1024-point Gaussian quadrature rule. For example, to find the approximation of an integral with a 256-point rule:

╭ a
│   f(x) dx = nIntegrate256 f a b
╯ b
> nIntegrate256 (\x -> x^999) 0 1
9.999999999999887e-4

The type of a function here is not confined only by Double -> Double, indeed one can use any instance of Fractional:

> nIntegrate256 (\x -> x^999 :: Fixed Prec50) 0 1
0.00100000000000000000000000000000000000000000000009

128 and 256 rules are given with the accuracy of 50 digits, 512 --- with 35 digits (roughly quad), all of them were computed by myself. 1024-point rule was taken from the Gauss-Legendre Quadrature C/C++ library by Pavel Holoborodko (http://www.holoborodko.com/pavel/numerical-methods/numerical-integration/) and goes with the accuracy of 25 decimal digits (fixed point).

Depends on:
Used by 1 package:
comments powered byDisqus