/*Translated by FOR_C, v3.4.2 (-), on 07/09/115 at 08:33:15 */ /*FOR_C Options SET: ftn=u io=c no=p op=aimnv pf=,p_scft s=dbov str=l x=f - prototypes */ #include #include "fcrt.h" #include #include #include "p_scft.h" /* PARAMETER translations */ #define FOUR 4.e0 #define M 7 #define N 128 #define ND 1 #define P1 .1e0 #define P3 .3e0 #define PI 3.1415926535897932384e0 #define RTWO 1.4142135623730950488e0 #define TWOPI (2.e0*PI) #define ZERO 0.e0 /* end of PARAMETER translations */ int main( ) { long int i, k, kf, ms; float deltat, f[256], s[31], t; static float ttime = 25.e0; static long ma[1]={M}; /* OFFSET Vectors w/subscript range: 1 to dimension */ float *const F = &f[0] - 1; long *const Ma = &ma[0] - 1; float *const S = &s[0] - 1; /* end of OFFSET VECTORS */ /*>> 1996-06-05 DRSCFT Krogh Fixes for conversion to C. *>> 1994-10-19 DRSCFT Krogh Changes to use M77CON *>> 1989-05-07 DRSCFT FTK, CLL * Driver to demonstrate SCFT -- Complex Fast Fourier Transform * ------------------------------------------------------------------ *--S replaces "?": DR?CFT, ?CFT * ------------------------------------------------------------------ */ /* parameter (N = 2**M) */ /* ------------------------------------------------------------------ */ printf("Program DRSCFT.. Demonstrates SCFT\n"); deltat = ttime/N; t = ZERO; for (k = 1; k <= (2*N); k += 2) { F[k] = sinf( TWOPI*(t + P1) ) + FOUR*cosf( TWOPI*(RTWO*t + P3) ); F[k + 1] = ZERO; t += deltat; } ms = 0; scft( f, "A", ma, ND, &ms, s ); printf(" \n TRANSFORM FOR K=21 TO 41 (NO SIGMA FACTORS)\n \n"); for (k = 21; k <= 41; k += 3) { kf = 2*k - 1; printf(" K=%3ld TO%3ld", k, k + 2); for (i = kf; i <= (kf + 5); i++) { printf("%11.5f", F[i]); } printf("\n"); } exit(0); } /* end of function */