- A library of signal processing routines

The signal processing routines are a part of the Compaq Extended Math Library (CXML). This library provides subprograms for fast Fourier transforms, convolutions and correlations, and digital filters. A comprehensive set of Fourier transform functions is provided covering the following options:•One, two or three dimensions•Forward or inverse direction•Multiple 1D Fourier transforms The convolution and correlation operations complement the signal processing abilities of the Fourier transform. Both periodic and non-periodic versions are supported. The signal processing library also includes a non-recursive filter that can be used in four ways:•Lowpass•Highpass•Bandpass•Bandstop (notch) All FFT, convolution, and correlation routines are available in real and complex versions, in both single and double precision. The filtering routines are only available for single precision, real data. The include files CXMLDEF.FOR and cxmldef.h contain declarations of structures used by the FFT routines. The following routines are provided for the One-Step Fourier Transform functions. The Subprogram Name is the name of the manual page containing documentation on the subprogram.Name Operationsfft Calculates, in single-precision arithmetic, the fast forward or inverse Fourier transform of one- dimensional, real data. dfft Calculates, in double-precision arithmetic, the fast forward or inverse Fourier transform of one- dimensional, real data. cfft Calculates, in single-precision arithmetic, the fast forward or inverse Fourier transform of one- dimensional, complex data. zfft Calculates, in double-precision arithmetic, the fast forward or inverse Fourier transform of one- dimensional, complex data. sfft_2d Calculates, in single-precision arithmetic, the fast forward or inverse Fourier transform of two- dimensional, real data. dfft_2d Calculates, in double-precision arithmetic, the fast forward or inverse Fourier transform of two- dimensional, real data. cfft_2d Calculates, in single-precision arithmetic, the fast forward or inverse Fourier transform of two- dimensional, complex data. zfft_2d Calculates, in double-precision arithmetic, the fast forward or inverse Fourier transform of two- dimensional, complex data. sfft_3d Calculates, in single-precision arithmetic, the fast forward or inverse Fourier transform of three-dimensional, real data. dfft_3d Calculates, in double-precision arithmetic, the fast forward or inverse Fourier transform of three-dimensional, real data. cfft_3d Calculates, in single-precision arithmetic, the fast forward or inverse Fourier transform of three-dimensional, complex data. zfft_3d Calculates, in double-precision arithmetic, the fast forward or inverse Fourier transform of three-dimensional, complex data. sfft_grp Calculates, in single-precision arithmetic, the fast forward or inverse Fourier transform of a group of real data. dfft_grp Calculates, in double-precision arithmetic, the fast forward or inverse Fourier transform of a group of real data. cfft_grp Calculates, in single-precision arithmetic, the fast forward or inverse Fourier transform of a group of complex data. zfft_grp Calculates, in double-precision arithmetic, the fast forward or inverse Fourier transform of a group of complex data. The following routines are provided for the Three-Step Fourier Transform functions. The Subprogram Name is the name of the manual page containing documentation on the subprogram. Name Operation sfft_init Calculates internal data structures. sfft_apply Applies SFFT_INIT's internal data structure to calculate, in single-precision arithmetic, the fast forward or inverse Fourier transform of one- dimensional, real data. sfft_exit Deallocates the virtual memory allocated by SFFT_INIT. dfft_init Calculates internal data structures. dfft_apply Applies DFFT_INIT's internal data structure to calculate, in double-precision arithmetic, the fast forward or inverse Fourier transform of one- dimensional, real data. dfft_exit Deallocates the virtual memory allocated by DFFT_INIT. cfft_init Calculates internal data structures. cfft_apply Applies CFFT_INIT's internal data structure to calculate, in single-precision arithmetic, the fast forward or inverse Fourier transform of one- dimensional, complex data. cfft_exit Deallocates the virtual memory allocated by CFFT_INIT. zfft_init Calculates internal data structures. zfft_apply Applies ZFFT_INIT's internal data structure to calculate, in double-precision arithmetic, the fast forward or inverse Fourier transform of one- dimensional, complex data. zfft_exit Deallocates the virtual memory allocated by ZFFT_INIT. sfft_init_2d Calculates internal data structures. sfft_apply_2d Applies SFFT_INIT_2D's internal data structure to calculate, in single-precision arithmetic, the fast forward or inverse Fourier transform of two- dimensional, real data. sfft_exit_2d Deallocates the virtual memory allocated by SFFT_INIT_2D. dfft_init_2d Calculates internal data structures. dfft_apply_2d Applies DFFT_INIT_2D's internal data structure to calculate, in double-precision arithmetic, the fast forward or inverse Fourier transform of two- dimensional, real data. dfft_exit_2d Deallocates the virtual memory allocated by DFFT_INIT_2D. cfft_init_2d Calculates internal data structures. cfft_apply_2d Applies CFFT_INIT_2D's internal data structure to calculate, in single-precision arithmetic, the fast forward or inverse Fourier transform of two- dimensional, complex data. cfft_exit_2d Deallocates the virtual memory allocated by CFFT_INIT_2D. zfft_init_2d Calculates internal data structures. zfft_apply_2d Applies ZFFT_INIT_2D's internal data structure to calculate, in double-precision arithmetic, the fast forward or inverse Fourier transform of two- dimensional, complex data. zfft_exit_2d Deallocates the virtual memory allocated by ZFFT_INIT_2D. sfft_init_3d Calculates internal data structures. sfft_apply_3d Applies SFFT_INIT_3D's internal data structure to calculate, in single-precision arithmetic, the fast forward or inverse Fourier transform of three-dimensional, real data. sfft_exit_3d Deallocates the virtual memory allocated by SFFT_INIT_3D. dfft_init_3d Calculates internal data structures. dfft_apply_3d Applies DFFT_INIT_3D's internal data structure to calculate, in double-precision arithmetic, the fast forward or inverse Fourier transform of three-dimensional, real data. dfft_exit_3d Deallocates the virtual memory allocated by DFFT_INIT_3D. cfft_init_3d Calculates internal data structures. cfft_apply_3d Applies CFFT_INIT_3D's internal data structure to calculate, in single-precision arithmetic, the fast forward or inverse Fourier transform of three-dimensional, complex data. cfft_exit_3d Deallocates the virtual memory allocated by CFFT_INIT_3D. zfft_init_3d Calculates internal data structures. zfft_apply_3d Applies ZFFT_INIT_3D's internal data structure to calculate, in double-precision arithmetic, the fast forward or inverse Fourier transform of three-dimensional, complex data. zfft_exit_3d Deallocates the virtual memory allocated by ZFFT_INIT_3D. sfft_init_grp Calculates internal data structures. sfft_apply_grp Applies SFFT_INIT_GRP's internal data structure to calculate, in single-precision arithmetic, the fast forward or inverse Fourier transform of grouped, real data. sfft_exit_grp Deallocates the virtual memory allocated by SFFT_INIT_GRP. dfft_init_grp Calculates internal data structures. dfft_apply_grp Applies DFFT_INIT_GRP's internal data structure to calculate, in double-precision arithmetic, the fast forward or inverse Fourier transform of grouped, real data. dfft_exit_grp Deallocates the virtual memory allocated by DFFT_INIT_GRP. cfft_init_grp Calculates internal data structures. cfft_apply_grp Applies CFFT_INIT_GRP's internal data structure to calculate, in single-precision arithmetic, the fast forward or inverse Fourier transform of grouped, complex data. cfft_exit_grp Deallocates the virtual memory allocated by CFFT_INIT_GRP. zfft_init_grp Calculates internal data structures. zfft_apply_grp Applies SFFT_INIT_GRP's internal data structure to calculate, in double-precision arithmetic, the fast forward or inverse Fourier transform of grouped, complex data. zfft_exit_grp Deallocates the virtual memory allocated by ZFFT_INIT_GRP. The following routines are provided for the Convolution functions. The Subprogram Name is the name of the manual page containing documentation on the subprogram. Subroutine Name Operation sconv_nonperiodic Calculates, in single-precision arithmetic, the nonperiodic convolution of two real arrays. dconv_nonperiodic Calculates, in double-precision arithmetic, the nonperiodic convolution of two real arrays. cconv_nonperiodic Calculates, in single-precision arithmetic, the nonperiodic convolution of two complex arrays. zconv_nonperiodic Calculates, in double-precision arithmetic, the nonperiodic convolution of two complex arrays. sconv_periodic Calculates, in single-precision arithmetic, the periodic convolution of two real arrays. dconv_periodic Calculates, in double-precision arithmetic, the periodic convolution of two real arrays. cconv_periodic Calculates, in single-precision arithmetic, the periodic convolution of two complex arrays. zconv_periodic Calculates, in double-precision arithmetic, the periodic convolution of two complex arrays. sconv_nonperiodic_ext Calculates, in single-precision arithmetic, the nonperiodic convolution of two real arrays. dconv_nonperiodic_ext Calculates, in double-precision arithmetic, the nonperiodic convolution of two real arrays. cconv_nonperiodic_ext Calculates, in single-precision arithmetic, the nonperiodic convolution of two complex arrays. zconv_nonperiodic_ext Calculates, in double-precision arithmetic, the nonperiodic convolution of two complex arrays. sconv_periodic_ext Calculates, in single-precision arithmetic, the periodic convolution of two real arrays. dconv_periodic_ext Calculates, in double-precision arithmetic, the periodic convolution of two real arrays. cconv_periodic_ext Calculates, in single-precision arithmetic, the periodic convolution of two complex arrays. zconv_periodic_ext Calculates, in double-precision arithmetic, the periodic convolution of two complex arrays. The following routines are provided for the Correlation functions. The Subprogram Name is the name of the manual page containing documentation on the subprogram. Subroutine Name Operation scorr_nonperiodic Calculates, in single-precision arithmetic, the nonperiodic correlation of two real arrays. dcorr_nonperiodic Calculates, in double-precision arithmetic, the nonperiodic correlation of two real arrays. ccorr_nonperiodic Calculates, in single-precision arithmetic, the nonperiodic correlation of two complex arrays. zcorr_nonperiodic Calculates, in double-precision arithmetic, the nonperiodic correlation of two complex arrays. scorr_periodic Calculates, in single-precision arithmetic, the periodic correlation of two real arrays. dcorr_periodic Calculates, in double-precision arithmetic, the periodic correlation of two real arrays. ccorr_periodic Calculates, in single-precision arithmetic, the periodic correlation of two complex arrays. zcorr_periodic Calculates, in double-precision arithmetic, the periodic correlation of two complex arrays. scorr_nonperiodic_ext Calculates, in single-precision arithmetic, the nonperiodic correlation of two real arrays. dcorr_nonperiodic_ext Calculates, in double-precision arithmetic, the nonperiodic correlation of two real arrays. ccorr_nonperiodic_ext Calculates, in single-precision arithmetic, the nonperiodic correlation of two complex arrays. zcorr_nonperiodic_ext Calculates, in double-precision arithmetic, the nonperiodic correlation of two complex arrays. scorr_periodic_ext Calculates, in single-precision arithmetic, the periodic correlation of two real arrays. dcorr_periodic_ext Calculates, in double-precision arithmetic, the periodic correlation of two real arrays. ccorr_periodic_ext Calculates, in single-precision arithmetic, the periodic correlation of two complex arrays. zcorr_periodic_ext Calculates, in double-precision arithmetic, the periodic correlation of two complex arrays. The following routines are provided for the Compaq Filter functions. The Subprogram Name is the name of the manual page containing documentation on the subprogram. Subroutine Name Operation sfilter_nonrec Performs the filter operation in one step sfilter_init_nonrec Initializes a working array sfilter_apply_nonrec Uses the initialized working array for repeated filtering operations