SUBROUTINE VCOSTI(N,WSAVE) C***BEGIN PROLOGUE VCOSTI C***DATE WRITTEN 860701 (YYMMDD) C***REVISION DATE 900509 (YYMMDD) C***CATEGORY NO. J1A3 C***KEYWORDS FAST FOURIER TRANSFORM, COSINE TRANSFORM, MULTIPLE C SEQUENCES C***AUTHOR BOISVERT, R. F. (NIST) C***PURPOSE Initialize for VCOST. C***DESCRIPTION C C Subroutine VCOSTI initializes the array WSAVE which is used in C subroutine VCOST. The prime factorization of N together with C a tabulation of the trigonometric functions are computed and C stored in WSAVE. C C Input Parameter C C N the length of the sequence to be transformed. The method C is most efficient when N-1 is a product of small primes. C C Output Parameter C C WSAVE a work array which must be dimensioned at least 3*N+15. C Different WSAVE arrays are required for different values C of N. The contents of WSAVE must not be changed between C calls of VCOST. C C ----------------------------------------------------------------- C C VCOSTI is a straightforward extension of the subprogram COSTI to C handle M simultaneous sequences. COSTI was originally developed C by P. N. Swarztrauber of NCAR. C C***REFERENCES P. N. Swarztrauber, Vectorizing the FFTs, in Parallel C Computations, (G. Rodrigue, ed.), Academic Press, 1982, C pp. 51-83. C***ROUTINES CALLED VRFFTI C***END PROLOGUE VCOSTI DIMENSION WSAVE(*) C***FIRST EXECUTABLE STATEMENT VCOSTI PI = PIMACH(1.0) IF (N .LE. 3) RETURN NM1 = N-1 NP1 = N+1 NS2 = N/2 DT = PI/REAL(NM1) FK = 0. DO 101 K=2,NS2 FK = FK+1. WSAVE(K) = 2.*SIN(FK*DT) 101 CONTINUE FK = 0. DO 102 K=2,NS2 KC = NP1-K FK = FK+1. WSAVE(KC) = 2.*COS(FK*DT) 102 CONTINUE CALL VRFFTI (NM1,WSAVE(N+1)) RETURN END