# SetInternalPrecision

Changes the value of the parameter internal_precision in the convolution or correlation task descriptor.

## Syntax

Fortran:

status = vslconvsetinternalprecision(task, precision)

status = vslcorrsetinternalprecision(task, precision)

C:

status = vslConvSetInternalPrecision(task, precision);

status = vslCorrSetInternalPrecision(task, precision);

## Description

The routine changes the value of the parameter internal_precision for the operation of convolution or correlation. This parameter defines whether the internal computations of the convolution or correlation result should be done in single or double precision. Initial value for internal_precision is assigned by a task constructor and set to either “single” or “double” according to the particular flavor of the constructor used.

Changing the internal_precision can be useful if the default setting of this parameter was “single” but you want to calculate the result with double precision even if input and output data are represented in single precision.

Predefined values for the internal_precision input parameter are as follows:

Values of internal_precision Parameter
Value | Purpose
--- | ---
VSL_CONV_PRECISION_SINGLE | Compute convolution with single precision.
VSL_CORR_PRECISION_SINGLE | Compute correlation with single precision.
VSL_CONV_PRECISION_DOUBLE | Compute convolution with double precision.
VSL_CORR_PRECISION_DOUBLE | Compute correlation with double precision.

## Input Parameters

Name | Type | Description
--- | --- | ---
task | FORTRAN: TYPE(VSL_CONV_TASK) for vslconvsetinternalprecision TYPE(VSL_CORR_TASK) for vslcorrsetinternalprecision C: VSLConvTaskPtr for vslConvSetInternalPrecision VSLCorrTaskPtr for vslCorrSetInternalPrecision | Pointer to the task descriptor.
precision | FORTRAN: INTEGER C: int | New value of the parameter internal_precision.

## Output Parameters

Name | Type | Description
--- | --- | ---
status | FORTRAN: INTEGER C: int | Current status of the task.

Parent topic: Task Editors