CXML
sfst_apply, dfst_apply
Application step for fast sine transform in one
dimension
FORMAT
status = {S,D}FST_APPLY (direction, in, out, fst_struct, stride)
Arguments
direction character*(*)
Specifies the operation as either the forward or
inverse transform. Use Use 'B' or
in, out real*4 | real*8
Both the arguments are one-dimensional arrays. The
input and output arrays can be the same array. The IN
array contains the data to be transformed. The OUT
array contains the transformed data.
fst_struct record /dxml_s_fst_structure/ for single-precision
operations
record /dxml_d_fst_structure/ for double-precision
operations
stride integer*4
Specifies the distance between consecutive elements in
the input and output arrays, depending on the value of
stride_1_flag provided in the _INIT function.
Description
The _FST_APPLY functions compute the fast Sine transform of one-dimensional
data in three steps.
Return Values
0 DXML_SUCCESS()
12 DXML_INS_RES()
13 DXML_BAD_STRIDE()
15 DXML_BAD_DIRECTION_STRING()
17 DXML_OPTION_NOT_SUPPORTED()
Example
INTEGER*4 N
PARAMETER (N=1024)
INCLUDE 'CXMLDEF.FOR'
INTEGER*4 STATUS
RECORD /CXML_S_FST_STRUCTURE/ D_FST_STRUCT
RECORD /CXML_D_FST_STRUCTURE/ D_FST_STRUCT
REAL*8 C(1:N),D(1:N)
REAL*4 E(1:N),F(1:N)
STATUS = DFST_INIT(N,D_FST_STRUCT,1,.TRUE.)
STATUS = DFST_APPLY('F',C,D,D_FST_STRUCT,1)
STATUS = DFST_APPLY('B',D,C,D_FST_STRUCT,1)
STATUS = DFST_EXIT(D_FST_STRUCT)
STATUS = SFST_INIT(N,S_FST_STRUCT,2,.TRUE.)
STATUS = SFST_APPLY('F',E,F,S_FST_STRUCT,1)
STATUS = SFST_APPLY('B',F,E,S_FST_STRUCT,1)
STATUS = SFST_EXIT(D_FST_STRUCT)
This FORTRAN code computes the following:
• Forward Type-1 Sine transform of the real sequence C to real sequence D.
• Backward Type-1 Sine transform of the real sequence D to real sequence
C.
• Forward Type-2 Sine transform of the real sequence E to real sequence F.
• Backward Type-2 Sine transform of the real sequence F to real sequence
E.
CXML Home Page Index of CXML Routines