/*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 <math.h>
#include "fcrt.h"
#include <stdio.h>
#include <stdlib.h>
#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 */