vsinti(3P)
NAME
vsinti - initialize the array xWSAVE, which is used in subroutine xSINT.
SYNOPSIS
SUBROUTINE SINTI (N, RWSAVE)
SUBROUTINE DSINTI (N, DWSAVE)
SUBROUTINE VSINTI (N, WSAVE)
SUBROUTINE VDSINTI (N, WSAVE)
#include <sunperf.h>
void sinti (int n, float ∗rwsave) ;
void dsinti (int n, double ∗dwsave) ;
void vsinti (int n, float ∗rwsave) ;
void vdsinti (int n, float ∗dwsave) ;
ARGUMENTS
N Length of the sequence to be transformed. N >= 0.
xWSAVE On entry, an array with a dimension of at least (3 ∗ N + 15). Different xWSAVE arrays are required for different values of N. This initialization does not have to be repeated between calls to xSINT as long as N and xWSAVE remain unchanged, thus subsequent transforms can be obtained faster than the first.
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
SunOS 5.0 — Last change: 10 Dec 1998