c09 Chapter Contents
c09 Chapter Introduction
NAG C Library Manual

# NAG Library Function Documentnag_idwt (c09cbc)

## 1  Purpose

nag_idwt (c09cbc) computes the inverse one-dimensional discrete wavelet transform (DWT) at a single level. The initialization function nag_wfilt (c09aac) must be called first to set up the DWT options.

## 2  Specification

 #include #include
 void nag_idwt (Integer lenc, const double ca[], const double cd[], Integer n, double y[], const Integer icomm[], NagError *fail)

## 3  Description

nag_idwt (c09cbc) performs the inverse operation of nag_dwt (c09cac). That is, given sets of ${n}_{c}$ approximation coefficients and detail coefficients, computed by nag_dwt (c09cac) using a DWT as set up by the initialization function nag_wfilt (c09aac), on a real data array of length $n$, nag_idwt (c09cbc) will reconstruct the data array ${y}_{i}$, for $\mathit{i}=1,2,\dots ,n$, from which the coefficients were derived.

None.

## 5  Arguments

1:     lencIntegerInput
On entry: the dimension of the arrays ca and cd.
Constraint: ${\mathbf{lenc}}\ge {n}_{c}$, where ${n}_{c}$ is the value returned in nwc by the call to the initialization function nag_wfilt (c09aac).
2:     ca[lenc]const doubleInput
On entry: the ${n}_{c}$ approximation coefficients, ${C}_{a}$. These will normally be the result of some transformation on the coefficients computed by nag_dwt (c09cac).
3:     cd[lenc]const doubleInput
On entry: the ${n}_{c}$ detail coefficients, ${C}_{d}$. These will normally be the result of some transformation on the coefficients computed by nag_dwt (c09cac).
4:     nIntegerInput
On entry: $n$, the length of the original data array from which the wavelet coefficients were computed by nag_dwt (c09cac) and the length of the data array y that is to be reconstructed by this function.
Constraint: This must be the same as the value n passed to the initialization function nag_wfilt (c09aac).
5:     y[n]doubleOutput
On exit: the reconstructed data based on approximation and detail coefficients ${C}_{a}$ and ${C}_{d}$ and the transform options supplied to the initialization function nag_wfilt (c09aac).
6:     icomm[$100$]const IntegerCommunication Array
On entry: contains details of the discrete wavelet transform and the problem dimension and, possibly, additional information on the previously computed forward transform.
7:     failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

## 6  Error Indicators and Warnings

NE_ALLOC_FAIL
Dynamic memory allocation failed.
NE_ARRAY_DIM_LEN
On entry, array dimension lenc not large enough: ${\mathbf{lenc}}=〈\mathit{\text{value}}〉$ but must be at least $〈\mathit{\text{value}}〉$.
On entry, argument $〈\mathit{\text{value}}〉$ had an illegal value.
NE_INITIALIZATION
Either the initialization function has not been called first or array icomm has been corrupted.
Either the initialization function was called with ${\mathbf{wtrans}}=\mathrm{Nag_MultiLevel}$ or array icomm has been corrupted.
On entry, n is inconsistent with the value passed to the initialization function: ${\mathbf{n}}=〈\mathit{\text{value}}〉$, n should be $〈\mathit{\text{value}}〉$.
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 accuracy of the wavelet transform depends only on the floating point operations used in the convolution and downsampling and should thus be close to machine precision.