Multi-Transform

Note

Only fully independent transforms can be executed in parallel.

Functions

SpfftError spfft_multi_transform_forward(int numTransforms, SpfftTransform *transforms, const SpfftProcessingUnitType *inputLocations, double *const *outputPointers, const SpfftScalingType *scalingTypes)

Execute multiple independent forward transforms at once by internal pipelining.

Parameters:
  • numTransforms[in] Number of transforms to execute.

  • transforms[in] Transforms to execute.

  • inputLocations[in] Input locations for each transform.

  • outputPointers[out] Output pointers for each transform.

  • scalingTypes[in] Scaling types for each transform.

Returns:

Error code or SPFFT_SUCCESS.

SpfftError spfft_multi_transform_forward_ptr(int numTransforms, SpfftTransform *transforms, const double *const *inputPointers, double *const *outputPointers, const SpfftScalingType *scalingTypes)

Execute multiple independent forward transforms at once by internal pipelining.

Parameters:
  • numTransforms[in] Number of transforms to execute.

  • transforms[in] Transforms to execute.

  • inputPointers[in] Input pointers for each transform.

  • outputPointers[out] Output pointers for each transform.

  • scalingTypes[in] Scaling types for each transform.

Throws:
  • GenericError – SpFFT error. Can be a derived type.

  • std::exception – Error from standard library calls. Can be a derived type.

SpfftError spfft_multi_transform_backward(int numTransforms, SpfftTransform *transforms, const double *const *inputPointers, const SpfftProcessingUnitType *outputLocations)

Execute multiple independent backward transforms at once by internal pipelining.

Parameters:
  • numTransforms[in] Number of transforms to execute.

  • transforms[in] Transforms to execute.

  • inputPointers[in] Input pointers for each transform.

  • outputLocations[in] Output locations for each transform.

Returns:

Error code or SPFFT_SUCCESS.

SpfftError spfft_multi_transform_backward_ptr(int numTransforms, SpfftTransform *transforms, const double *const *inputPointers, double *const *outputPointers)

Execute multiple independent backward transforms at once by internal pipelining.

Parameters:
  • numTransforms[in] Number of transforms to execute.

  • transforms[in] Transforms to execute.

  • inputPointers[in] Input pointers for each transform.

  • outputPointers[in] Output pointers for each transform.

Throws:
  • GenericError – SpFFT error. Can be a derived type.

  • std::exception – Error from standard library calls. Can be a derived type.

Functions

SpfftError spfft_float_multi_transform_forward(int numTransforms, SpfftFloatTransform *transforms, const SpfftProcessingUnitType *inputLocations, float *const *outputPointers, const SpfftScalingType *scalingTypes)

Execute multiple independent forward transforms at once by internal pipelining.

Parameters:
  • numTransforms[in] Number of transforms to execute.

  • transforms[in] Transforms to execute.

  • inputLocations[in] Input locations for each transform.

  • outputPointers[out] Output pointers for each transform.

  • scalingTypes[in] Scaling types for each transform.

Returns:

Error code or SPFFT_SUCCESS.

SpfftError spfft_float_multi_transform_forward_ptr(int numTransforms, SpfftFloatTransform *transforms, const float *const *inputPointers, float *const *outputPointers, const SpfftScalingType *scalingTypes)

Execute multiple independent forward transforms at once by internal pipelining.

Parameters:
  • numTransforms[in] Number of transforms to execute.

  • transforms[in] Transforms to execute.

  • inputPointers[in] Input pointers for each transform.

  • outputPointers[out] Output pointers for each transform.

  • scalingTypes[in] Scaling types for each transform.

Throws:
  • GenericError – SpFFT error. Can be a derived type.

  • std::exception – Error from standard library calls. Can be a derived type.

SpfftError spfft_float_multi_transform_backward(int numTransforms, SpfftFloatTransform *transforms, const float *const *inputPointers, const SpfftProcessingUnitType *outputLocations)

Execute multiple independent backward transforms at once by internal pipelining.

Parameters:
  • numTransforms[in] Number of transforms to execute.

  • transforms[in] Transforms to execute.

  • inputPointers[in] Input pointers for each transform.

  • outputLocations[in] Output locations for each transform.

Returns:

Error code or SPFFT_SUCCESS.

SpfftError spfft_float_multi_transform_backward_ptr(int numTransforms, SpfftFloatTransform *transforms, const float *const *inputPointers, float *const *outputPointers)

Execute multiple independent backward transforms at once by internal pipelining.

Parameters:
  • numTransforms[in] Number of transforms to execute.

  • transforms[in] Transforms to execute.

  • inputPointers[in] Input pointers for each transform.

  • outputPointers[in] Output pointers for each transform.

Throws:
  • GenericError – SpFFT error. Can be a derived type.

  • std::exception – Error from standard library calls. Can be a derived type.