Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

sint(3P)

NAME

sint - compute the discrete Fourier sine transform of an odd sequence.  The xSINT transforms are unnormalized inverses of themselves, so a call of xSINT followed by another call of xSINT will multiply the input sequence by 2 ∗ (N+1).  The VxSINT transforms are normalized, so a call of VxSINT followed by a call of VxSINT will return the original sequence. 

SYNOPSIS

SUBROUTINE SINT (N, RX, RWSAVE)

SUBROUTINE DSINT (N, DX, DWSAVE)

SUBROUTINE VSINT (M, N, RX, RXT, MDIMX, RWSAVE)

SUBROUTINE VDSINT (M, N, DX, DXT, MDIMX, DWSAVE)

 

#include <sunperf.h>

void sint (int n, float ∗sx, float ∗wsave) ;

void dsint (int n, double ∗dx, double ∗wsave) ;

void vsint(int m, int n, float ∗sx, int mdimx, float ∗wsave) ;

void vdsint(int m, int n, double ∗dx, int mdimx, double ∗wsave) ;

ARGUMENTS

M (For vector operations only.) 
The number of sequences to be transformed.  M >= 0.

N Length of the sequence to be transformed.  These subroutines are most efficient when N+1 is a product of small primes.  N >= 0. 

xX On entry, an array of length N containing the sequence to be transformed.  For VxSINT, a real two-dimensional array with dimensions of (MDIMX x (N+1)) whose rows contain the sequences to be transformed.  On exit, the sine transform of the input. 

xXT (For vector operations only.) 
A real two-dimensional work array with dimensions of (MDIMX x (N+1)).

MDIMX (For vector operations only.) 
Leading dimension of the arrays xX and xXT as specified in a dimension or type statement.  MDIMX >= M.

xWSAVE On entry, an array with dimension of at least int(2.5 ∗ N + 15) initialized by xSINTI or VxSINTI. 

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 WorkShop_5.0  —  Last change: 10 Dec 1998

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026