Contents
vdsint - compute the discrete Fourier sine transform of an
odd sequence. The VSINT transforms are unnormalized
inverses of themselves, so a call of VSINT followed by
another call of VSINT will multiply the input sequence by 2
* (N+1). The VSINT transforms are normalized, so a call of
VSINT followed by a call of VSINT will return the original
sequence.
SUBROUTINE VDSINT(M, N, X, XT, MDIMX, WSAVE)
INTEGER M, N, MDIMX
DOUBLE PRECISION X(MDIMX,*), XT(MDIMX,*), WSAVE(*)
SUBROUTINE VDSINT_64(M, N, X, XT, MDIMX, WSAVE)
INTEGER*8 M, N, MDIMX
DOUBLE PRECISION X(MDIMX,*), XT(MDIMX,*), WSAVE(*)
F95 INTERFACE
SUBROUTINE SINT([M], [N], X, XT, [MDIMX], WSAVE)
INTEGER :: M, N, MDIMX
REAL(8), DIMENSION(:) :: WSAVE
REAL(8), DIMENSION(:,:) :: X, XT
SUBROUTINE SINT_64([M], [N], X, XT, [MDIMX], WSAVE)
INTEGER(8) :: M, N, MDIMX
REAL(8), DIMENSION(:) :: WSAVE
REAL(8), DIMENSION(:,:) :: X, XT
C INTERFACE
#include <sunperf.h>
void vdsint(int m, int n, double *x, double *xt, int mdimx,
double *wsave);
void vdsint_64(long m, long n, double *x, double *xt, long
mdimx, double *wsave);
M (input)
The number of sequences to be transformed. M >=
0.
N (input) Length of the sequence to be transformed. These
subroutines are most efficient when N+1 is a pro-
duct of small primes. N >= 0.
X (input/output)
On entry, a real two-dimensional array with dimen-
sions of (MDIMX x (N+1)) whose rows contain the
sequences to be transformed. On exit, the sine
transform of the input.
XT (input/output)
A real two-dimensional work array with dimensions
of (MDIMX x (N+1)).
MDIMX (input)
Leading dimension of the arrays X and XT as speci-
fied in a dimension or type statement. MDIMX >=
M.
WSAVE (input)
On entry, an array with dimension of at least
int(2.5 * N + 15) initialized by VSINTI.