Integer type:  int32  int64  nag_int  show int32  show int32  show int64  show int64  show nag_int  show nag_int

Chapter Contents
Chapter Introduction
NAG Toolbox

## Purpose

nag_quad_md_numth_coeff_prime (d01gy) calculates the optimal coefficients for use by nag_quad_md_numth (d01gc) and nag_quad_md_numth_vec (d01gd), for prime numbers of points.

## Syntax

[vk, ifail] = d01gy(ndim, npts)

## Description

The Korobov (1963) procedure for calculating the optimal coefficients a1,a2,,an${a}_{1},{a}_{2},\dots ,{a}_{n}$ for p$p$-point integration over the n$n$-cube [0,1]n${\left[0,1\right]}^{n}$ imposes the constraint that
 a1 = 1  and  ai = ai − 1( mod p),  i = 1,2, … ,n (1)
where p$p$ is a prime number and a$a$ is an adjustable parameter. This parameter is computed to minimize the error in the integral
 1 1 n 3n ∫ dx1 ⋯ ∫ dxn ∏ (1 − 2xi)2, 0 0 i = 1
$3n∫01dx1⋯∫01dxn∏i=1n (1-2xi) 2,$
(2)
when computed using the number theoretic rule, and the resulting coefficients can be shown to fit the Korobov definition of optimality.
The computation for large values of p$p$ is extremely time consuming (the number of elementary operations varying as p2${p}^{2}$) and there is a practical upper limit to the number of points that can be used. Function nag_quad_md_numth_coeff_2prime (d01gz) is computationally more economical in this respect but the associated error is likely to be larger.

## References

Korobov N M (1963) Number Theoretic Methods in Approximate Analysis Fizmatgiz, Moscow

## Parameters

### Compulsory Input Parameters

1:     ndim – int64int32nag_int scalar
n$n$, the number of dimensions of the integral.
Constraint: ndim1${\mathbf{ndim}}\ge 1$.
2:     npts – int64int32nag_int scalar
p$p$, the number of points to be used.
Constraint: npts${\mathbf{npts}}$ must be a prime number 5$\text{}\ge 5$.

None.

None.

### Output Parameters

1:     vk(ndim) – double array
The n$n$ optimal coefficients.
2:     ifail – int64int32nag_int scalar
${\mathrm{ifail}}={\mathbf{0}}$ unless the function detects an error (see [Error Indicators and Warnings]).

## Error Indicators and Warnings

Errors or warnings detected by the function:

Cases prefixed with W are classified as warnings and do not generate an error of type NAG:error_n. See nag_issue_warnings.

ifail = 1${\mathbf{ifail}}=1$
 On entry, ndim < 1${\mathbf{ndim}}<1$.
ifail = 2${\mathbf{ifail}}=2$
 On entry, npts < 5${\mathbf{npts}}<5$.
ifail = 3${\mathbf{ifail}}=3$
 On entry, npts is not a prime number.
W ifail = 4${\mathbf{ifail}}=4$
The precision of the machine is insufficient to perform the computation exactly. Try a smaller value of npts, or use an implementation of higher precision.

## Accuracy

The optimal coefficients are returned as exact integers (though stored in a double array).

The time taken is approximately proportional to p2${p}^{2}$ (see Section [Description]).

## Example

ndim = int64(4);
npts = int64(631);

vk =

1
198
82
461

ifail =

0

function d01gy_example
ndim = int64(4);
npts = int64(631);
[vk, ifail] = d01gy(ndim, npts)

vk =

1
198
82
461

ifail =

0