NAME
vsint - compute the discrete Fourier sine transform of an
odd sequence. The xSINT transforms are unnormalized
inverses of themselves, so a call of xSINT followed by
another call of xSINT will multiply the input sequence by 2
* (N+1). The VxSINT transforms are normalized, so a call of
VxSINT followed by a call of VxSINT will return the original
sequence.
SYNOPSIS
SUBROUTINE SINT (N, RX, RWSAVE)
SUBROUTINE DSINT (N, DX, DWSAVE)
SUBROUTINE VSINT (M, N, RX, RXT, MDIMX, RWSAVE)
SUBROUTINE VDSINT (M, N, DX, DXT, MDIMX, DWSAVE)
#include <sunperf.h>
void sint (int n, float *sx, float *wsave) ;
void dsint (int n, double *dx, double *wsave) ;
void vsint(int m, int n, float *sx, int mdimx, float *wsave)
;
void vdsint(int m, int n, double *dx, int mdimx, double
*wsave) ;
ARGUMENTS
M (For vector operations only.)
The number of sequences to be transformed. M >=
0.
N Length of the sequence to be transformed. These
subroutines are most efficient when N+1 is a pro-
duct of small primes. N >= 0.
xX On entry, an array of length N containing the
sequence to be transformed. For VxSINT, a real
two-dimensional array with dimensions of (MDIMX x
(N+1)) whose rows contain the sequences to be
transformed. On exit, the sine transform of the
input.
xXT (For vector operations only.)
A real two-dimensional work array with dimensions
of (MDIMX x (N+1)).
MDIMX (For vector operations only.)
Leading dimension of the arrays xX and xXT as
specified in a dimension or type statement. MDIMX
>= M.
xWSAVE On entry, an array with dimension of at least
int(2.5 * N + 15) initialized by xSINTI or
VxSINTI.
SAMPLE PROGRAM
PROGRAM TEST
IMPLICIT NONE
C
INTEGER N
PARAMETER (N = 9)
C
INTEGER I
REAL PI, WSAVE(3 * N + 15), X(N)
C
EXTERNAL SINT, SINTI
INTRINSIC ACOS, SIN
C
C Initialize the array X to an odd sequence, that is, it can be
C expanded in terms of a trigonometric series that contains only
C sine terms.
C
PI = ACOS (-1.0)
DO 100, I=1, N
X(I) = SIN ( I * 2.0 * PI / (N + 1.0))
100 CONTINUE
C
PRINT 1000
PRINT 1010, (X(I), I = 1, N)
CALL SINTI (N, WSAVE)
CALL SINT (N, X, WSAVE)
PRINT 1020
PRINT 1010, (X(I), I = 1, N)
CALL SINT (N, X, WSAVE)
PRINT 1030
PRINT 1010, (X(I), I = 1, N)
C
1000 FORMAT (1X, 'Original Sequence: ')
1010 FORMAT (1X, 100(F7.3, 1X))
1020 FORMAT (1X, 'Transformed Sequence: ')
1030 FORMAT (1X, 'Recovered Sequence: ')
C
END
SAMPLE OUTPUT
Original Sequence:
0.588 0.951 0.951 0.588 0.000 -0.588 -0.951 -
0.951 -0.588
Transformed Sequence:
0.000 10.000 0.000 0.000 0.000 0.000 0.000
0.000 0.000
Recovered Sequence:
11.756 19.021 19.021 11.756 0.000 -11.756 -19.021
-19.021 -11.756
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |