<<>> <> <> <> DIRECTORY Complex; FFTSingle: CEDAR DEFINITIONS = { <> <<"Single" appears in the name because single-precision floating-point is used.>> COMPLEX: TYPE ~ Complex.VEC; ComplexSeq: TYPE ~ REF ComplexSequence; ComplexSequence: TYPE ~ RECORD [ length: NAT, elts: SEQUENCE size: NAT OF COMPLEX]; <> NewComplexSeq: PROC [size: NAT] RETURNS [ComplexSeq]; <> CsAppend: PROC [cs: ComplexSeq, c: COMPLEX] RETURNS [ComplexSeq]; <> CsCopy: PROC [cs: ComplexSeq, start, size: INT] RETURNS [ComplexSeq]; <> <> <> DestructiveFft: PROC [cs: ComplexSeq, inv: BOOL] RETURNS [ComplexSeq]; <> <> DestructiveMap: PROC [ cs: ComplexSeq, proc: PROC [COMPLEX] RETURNS [COMPLEX]]; <> }.