# SetMode

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

## Syntax

Fortran:

status = vslconvsetmode(task, newmode)

status = vslcorrsetmode(task, newmode)

C:

status = vslConvSetMode(task, newmode);

status = vslCorrSetMode(task, newmode);

## Description

The routine changes the value of the parameter mode for the operation of convolution or correlation. This parameter defines whether the computation should be done via Fourier transforms of the input/output data or using a direct algorithm. Initial value for mode is assigned by a task constructor.

Predefined values for the mode parameter are as follows:

Values of mode parameter
Value | Purpose
--- | ---
VSL_CONV_MODE_FFT | Compute convolution by using fast Fourier transform.
VSL_CORR_MODE_FFT | Compute correlation by using fast Fourier transform.
VSL_CONV_MODE_DIRECT | Compute convolution directly.
VSL_CORR_MODE_DIRECT | Compute correlation directly.
VSL_CONV_MODE_AUTO | Automatically choose direct or Fourier mode for convolution.
VSL_CORR_MODE_AUTO | Automatically choose direct or Fourier mode for correlation.

## Input Parameters

Name | Type | Description
--- | --- | ---
task | FORTRAN: TYPE(VSL_CONV_TASK) for vslconvsetmode TYPE(VSL_CORR_TASK) for vslcorrsetmode C: VSLConvTaskPtr for vslConvSetMode VSLCorrTaskPtr for vslCorrSetMode | Pointer to the task descriptor.
newmode | FORTRAN: INTEGER C: int | New value of the parameter mode.

## Output Parameters

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

Parent topic: Task Editors