Struct rgsl::types::integration::IntegrationQawsTable [] [src]

pub struct IntegrationQawsTable {
    // some fields omitted
}

The QAWS algorithm is designed for integrands with algebraic-logarithmic singularities at the end-points of an integration region. In order to work efficiently the algorithm requires a precomputed table of Chebyshev moments.

Methods

impl IntegrationQawsTable
[src]

fn new(alpha: f64, beta: f64, mu: i32, nu: i32) -> Option<IntegrationQawsTable>

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 logmu (x-a) lognu (b-x)

where \alpha > -1f64, \beta > -1f64, 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.

fn set(&self, alpha: f64, beta: f64, mu: i32, nu: i32) -> Value

This function modifies the parameters (\alpha, \beta, \mu, \nu)

fn qaws<T>(&self, f: function<T>, arg: &mut T, a: f64, b: f64, epsabs: f64, epsrel: f64, limit: usize, workspace: &IntegrationWorkspace, result: &mut f64, abserr: &mut f64) -> Value

This function computes the integral of the function f(x) over the interval (a,b) with the singular weight function (x-a)\alpha (b-x)\beta \log\mu (x-a) \log\nu (b-x). The parameters of the weight function (\alpha, \beta, \mu, \nu) are taken from the table self. The integral is,

I = \int_ab dx f(x) (x-a)alpha (b-x)beta logmu (x-a) lognu (b-x).

The adaptive bisection algorithm of QAG is used. When a subinterval contains one of the endpoints then a special 25-point modified Clenshaw-Curtis rule is used to control the singularities. For subintervals which do not include the endpoints an ordinary 15-point Gauss-Kronrod integration rule is used.

Trait Implementations

impl Drop for IntegrationQawsTable
[src]

fn drop(&mut self)

A method called when the value goes out of scope. Read more