NAME dsinti - initialize the array xWSAVE, which is used in sub- routine 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
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |