d01 Chapter Contents
d01 Chapter Introduction
NAG C Library Manual

# NAG Library Function Documentnag_quad_md_numth_coeff_2prime (d01gzc)

## 1  Purpose

nag_quad_md_numth_coeff_2prime (d01gzc) calculates the optimal coefficients for use by nag_quad_md_numth_vec (d01gdc), when the number of points is the product of two primes.

## 2  Specification

 #include #include
 void nag_quad_md_numth_coeff_2prime (Integer ndim, Integer np1, Integer np2, double vk[], NagError *fail)

## 3  Description

Korobov (1963) gives a procedure for calculating optimal coefficients for $p$-point integration over the $n$-cube ${\left[0,1\right]}^{n}$, when the number of points is
 $p=p1p2$ (1)
where ${p}_{1}$ and ${p}_{2}$ are distinct prime numbers.
The advantage of this procedure is that if ${p}_{1}$ is chosen to be the nearest prime integer to ${p}_{2}^{2}$, then the number of elementary operations required to compute the rule is of the order of ${p}^{4/3}$ which grows less rapidly than the number of operations required by nag_quad_md_numth_coeff_prime (d01gyc). The associated error is likely to be larger although it may be the only practical alternative for high values of $p$.

## 4  References

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

## 5  Arguments

1:     ndimIntegerInput
On entry: $n$, the number of dimensions of the integral.
Constraint: ${\mathbf{ndim}}\ge 1$.
2:     np1IntegerInput
On entry: the larger prime factor ${p}_{1}$ of the number of points in the integration rule.
Constraint: ${\mathbf{np1}}$ must be a prime number $\text{}\ge 5$.
3:     np2IntegerInput
On entry: the smaller prime factor ${p}_{2}$ of the number of points in the integration rule. For maximum efficiency, ${p}_{2}^{2}$ should be close to ${p}_{1}$.
Constraint: ${\mathbf{np2}}$ must be a prime number such that ${\mathbf{np1}}>{\mathbf{np2}}\ge 2$.
4:     vk[ndim]doubleOutput
On exit: the $n$ optimal coefficients.
5:     failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

## 6  Error Indicators and Warnings

NE_ACCURACY
The machine precision is insufficient to perform the computation exactly. Try reducing np1 or np2: ${\mathbf{np1}}=〈\mathit{\text{value}}〉$ and ${\mathbf{np2}}=〈\mathit{\text{value}}〉$.
On entry, argument $〈\mathit{\text{value}}〉$ had an illegal value.
NE_INT
On entry, ${\mathbf{ndim}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{ndim}}\ge 1$.
On entry, ${\mathbf{np1}}=〈\mathit{\text{value}}〉$.
Constraint: np1 must be a prime number.
On entry, ${\mathbf{np1}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{np1}}\ge 5$.
On entry, ${\mathbf{np2}}=〈\mathit{\text{value}}〉$.
Constraint: np2 must be a prime number.
On entry, ${\mathbf{np2}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{np2}}\ge 2$.
NE_INT_2
On entry, ${\mathbf{np1}}×{\mathbf{np2}}$ exceeds largest machine integer. ${\mathbf{np1}}=〈\mathit{\text{value}}〉$ and ${\mathbf{np2}}=〈\mathit{\text{value}}〉$.
On entry, ${\mathbf{np1}}=〈\mathit{\text{value}}〉$ and ${\mathbf{np2}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{np1}}>{\mathbf{np2}}$.
NE_INTERNAL_ERROR
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact NAG for assistance.

## 7  Accuracy

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

The time taken by nag_quad_md_numth_coeff_2prime (d01gzc) grows at least as fast as ${\left({p}_{1}{p}_{2}\right)}^{4/3}$. (See Section 3.)

## 9  Example

This example calculates the Korobov optimal coefficients where the number of dimensons is $4$ and the number of points is the product of the two prime numbers, $89$ and $11$.

### 9.1  Program Text

Program Text (d01gzce.c)

### 9.2  Program Data

Program Data (d01gzce.d)

### 9.3  Program Results

Program Results (d01gzce.r)