# ?_backward_trig_transform

Computes the backward Trigonometric Transform of type specified by the parameter.

## Syntax

void d_backward_trig_transform (double f[], DFTI_DESCRIPTOR_HANDLE *handle, int ipar[], double dpar[], int *stat);

void s_backward_trig_transform (float f[], DFTI_DESCRIPTOR_HANDLE *handle, int ipar[], float spar[], int *stat);

## Input Parameters

f | double for d_backward_trig_transform, float for s_backward_trig_transform, array of size n for staggered2 transforms and of size n+1 for all other transforms, where n is the size of the problem. On input, contains data vector to be transformed. Note that the following values should be 0.0 up to rounding errors: f[0] and f[n] for sine transforms f[n] for staggered cosine transforms f[0] for staggered sine transforms. Otherwise, the routine will produce a warning, and the result of the computations for sine transforms may be wrong. The above restrictions meet the requirements of the Poisson Library, which the TT interface is primarily designed for.
handle | DFTI_DESCRIPTOR_HANDLE*. The data structure used by Intel MKL FFT interface (for details, refer to FFT Functions).
ipar | int array of size 128. Contains integer data needed for Trigonometric Transform computations.
dpar | double array of size 5n/2+2. Contains double-precision data needed for Trigonometric Transform computations.
spar | float array of size 5n/2+2. Contains single-precision data needed for Trigonometric Transform computations.

## Output Parameters

f | Contains the transformed vector on output.
ipar | Contains integer data needed for Trigonometric Transform computations. On output, ipar[6] is updated with the stat value.
stat | int*. Contains the routine completion status, which is also written to ipar[6].

## Description

The routine computes the backward Trigonometric Transform of type defined in the ?_init_trig_transform routine and passed to ?_backward_trig_transform with the ipar array. The size of the problem n, which determines sizes of the array parameters, is also passed to the routine with the ipar array and defined in the previously called ?_init_trig_transform routine. The other data that facilitates the computation is created by ?_commit_trig_transform and supplied in dpar or spar. For a detailed description of arrays ipar, dpar and spar, refer to Common Parameters. The routine has a commit step, which calls the ?_commit_trig_transform routine. The transform is computed according to formulas given in Transforms Implemented. The routine replaces the input vector f with the transformed vector.

### Note

If you need a copy of the data vector f to be transformed, make the copy before calling the ?_backward_trig_transform routine.

## Return Values

stat= 0 | The routine completed the task normally.
stat= -100 | The routine stopped for any of the following reasons: An error in the user's data was encountered. Data in ipar, dpar or spar parameters became incorrect and/or inconsistent as a result of modifications.
stat= -1000 | The routine stopped because of an FFT interface error.
stat= -10000 | The routine stopped because its commit step failed to complete or the parameter ipar[0] was altered by mistake.

Parent topic: TT Routines