Contents


NAME

     vdcosqb - synthesize a Fourier sequence from its representa-
     tion in terms of a cosine series with odd wave numbers.  The
     VCOSQ operations are normalized, so a call  of  VCOSQF  fol-
     lowed by a call of VCOSQB will return the original sequence.

SYNOPSIS

     SUBROUTINE VDCOSQB(M, N, X, XT, MDIMX, WSAVE)

     INTEGER M, N, MDIMX
     DOUBLE PRECISION X(MDIMX,*), XT(MDIMX,*), WSAVE(*)

     SUBROUTINE VDCOSQB_64(M, N, X, XT, MDIMX, WSAVE)

     INTEGER*8 M, N, MDIMX
     DOUBLE PRECISION X(MDIMX,*), XT(MDIMX,*), WSAVE(*)

  F95 INTERFACE
     SUBROUTINE COSQB([M], [N], X, XT, [MDIMX], WSAVE)

     INTEGER :: M, N, MDIMX
     REAL(8), DIMENSION(:) :: WSAVE
     REAL(8), DIMENSION(:,:) :: X, XT

     SUBROUTINE COSQB_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 vdcosqb(int m, int n, double *x, double *xt, int mdimx,
               double *wsave);

     void vdcosqb_64(long m, long n, double *x, double *xt,  long
               mdimx, double *wsave);

ARGUMENTS

     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 is a product
               of small primes.  N >= 0.

     X (input/output)
               On entry, the rows contain  the  sequences  to  be
               transformed.   On  exit,  the  quarter-wave cosine
               synthesis of the input.

     XT (input)
               A work array.

     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 of dimension (2 * N  +  15)  or
               greater initialized by VCOSQI.