naginterfaces.library.quad.dim1_fin_bad_vec(f, a, b, epsabs, epsrel, lw=800, liw=None, data=None)[source]

dim1_fin_bad_vec is a general purpose integrator which calculates an approximation to the integral of a function over a finite interval :

Deprecated since version dim1_fin_bad_vec will be removed in naginterfaces Please use dim1_fin_general() instead. See also the Replacement Calls document.

For full information please refer to the NAG Library document for d01at

fcallable fv = f(x, data=None)

must return the values of the integrand at a set of points.

xfloat, ndarray, shape

The points at which the integrand must be evaluated.

dataarbitrary, optional, modifiable in place

User-communication data for callback functions.

fvfloat, array-like, shape

must contain the value of at the point , for .


, the lower limit of integration.


, the upper limit of integration. It is not necessary that .


The absolute accuracy required. If is negative, the absolute value is used. See Accuracy.


The relative accuracy required. If is negative, the absolute value is used. See Accuracy.

lwint, optional

The value of (together with that of ) imposes a bound on the number of sub-intervals into which the interval of integration may be divided by the function. The number of sub-intervals cannot exceed . The more difficult the integrand, the larger should be.

liwNone or int, optional

Note: if this argument is None then a default value will be used, determined as follows: .

The number of sub-intervals into which the interval of integration may be divided cannot exceed .

dataarbitrary, optional

User-communication data for callback functions.


The approximation to the integral .


An estimate of the modulus of the absolute error, which should be an upper bound for .

wfloat, ndarray, shape

Details of the computation see Further Comments for more information.

iwint, ndarray, shape

contains the actual number of sub-intervals used. The rest of the array is used as workspace.

(errno )

On entry, .

Constraint: .

(errno )

On entry, .

Constraint: .

(errno )

The maximum number of subdivisions () has been reached: , and .

(errno )

Round-off error prevents the requested tolerance from being achieved: and .

(errno )

Extremely bad integrand behaviour occurs around the sub-interval .

(errno )

Round-off error is detected in the extrapolation table.

(errno )

The integral is probably divergent or slowly convergent.


No equivalent traditional C interface for this routine exists in the NAG Library.

dim1_fin_bad_vec is based on the QUADPACK routine QAGS (see Piessens et al. (1983)). It is an adaptive function, using the Gauss -point and Kronrod -point rules. The algorithm, described in de Doncker (1978), incorporates a global acceptance criterion (as defined by Malcolm and Simpson (1976)) together with the -algorithm (see Wynn (1956)) to perform extrapolation. The local error estimation is described in Piessens et al. (1983).

The function is suitable as a general purpose integrator, and can be used when the integrand has singularities, especially when these are of algebraic or logarithmic type.

dim1_fin_bad_vec requires a function to evaluate the integrand at an array of different points and is, therefore, amenable to parallel execution. Otherwise the algorithm is identical to that used by dim1_fin_bad().


de Doncker, E, 1978, An adaptive extrapolation algorithm for automatic integration, ACM SIGNUM Newsl. (13(2)), 12–18

Malcolm, M A and Simpson, R B, 1976, Local versus global strategies for adaptive quadrature, ACM Trans. Math. Software (1), 129–146

Piessens, R, de Doncker–Kapenga, E, Überhuber, C and Kahaner, D, 1983, QUADPACK, A Subroutine Package for Automatic Integration, Springer–Verlag

Wynn, P, 1956, On a device for computing the transformation, Math. Tables Aids Comput. (10), 91–96