- import java.io.*;
- import java.lang.*;
-
- class DFT
- { static int NMAX = 128;
- static int MMAX = 8;
-
- static double [] fr = new double[NMAX];
- static double [] fi = new double[NMAX];
- static double [] gr = new double[NMAX];
- static double [] gi = new double[NMAX];
-
- static void dft(double [] fr, double [] fi,double [] gr,double [] gi, int n)
- {
-
-
- int i,j;
- double pi,x,q;
-
- pi = 4*Math.atan(1);
- x = 2*pi/n;
-
- for (i = 0; i < n; ++i)
- {
- gr[i] = 0;
- gi[i] = 0;
- for (j = 0; j < n; ++j)
- {
- q = x*j*i;
- gr[i] = gr[i]+fr[j]*Math.cos(q)+fi[j]*Math.sin(q);
- gi[i] = gi[i]+fi[j]*Math.cos(q)-fr[j]*Math.sin(q);
- }
- }
- }
-
-
- public static void main( String argv[] ) {
-
- int i,n,m;
- double f0,h,rn,x;
- //double fr[],fi[],gr[],gi[];
- double [] fr = new double[NMAX];
- double [] fi = new double[NMAX];
- double [] gr = new double[NMAX];
- double [] gi = new double[NMAX];
- n = NMAX;
- m = MMAX;
- h = 1.0/(n-1);
- rn = n;
- f0 = 1/Math.sqrt(rn);
-
- for (i = 0; i < n; ++i)
- {
- x = h*i;
- fr[i] = x*(1-x);
- fi[i] = 0;
- }
- dft (fr,fi,gr,gi,n);
- for (i = 0; i < n; ++i)
- {
- gr[i] = f0*gr[i];
- gi[i] = f0*gi[i];
- }
-
- /* execution de la transformee inverse */
-
- for (i = 0; i < n; ++i)
- {
- gi[i] = -gi[i];
- }
- dft (gr,gi,fr,fi,n);
- for (i = 0; i < n; ++i)
- {
- fr[i] = f0*fr[i];
- fi[i] = -f0*fi[i];
- if (i == 0 || i%m == 0)
- {
- x = h*i;
- System.out.println(x + " " + fr[i] );
- }
- }
- }
- }
import java.io.*;
import java.lang.*;
class DFT
{ static int NMAX = 128;
static int MMAX = 8;
static double [] fr = new double[NMAX];
static double [] fi = new double[NMAX];
static double [] gr = new double[NMAX];
static double [] gi = new double[NMAX];
static void dft(double [] fr, double [] fi,double [] gr,double [] gi, int n)
{
int i,j;
double pi,x,q;
pi = 4*Math.atan(1);
x = 2*pi/n;
for (i = 0; i < n; ++i)
{
gr[i] = 0;
gi[i] = 0;
for (j = 0; j < n; ++j)
{
q = x*j*i;
gr[i] = gr[i]+fr[j]*Math.cos(q)+fi[j]*Math.sin(q);
gi[i] = gi[i]+fi[j]*Math.cos(q)-fr[j]*Math.sin(q);
}
}
}
public static void main( String argv[] ) {
int i,n,m;
double f0,h,rn,x;
//double fr[],fi[],gr[],gi[];
double [] fr = new double[NMAX];
double [] fi = new double[NMAX];
double [] gr = new double[NMAX];
double [] gi = new double[NMAX];
n = NMAX;
m = MMAX;
h = 1.0/(n-1);
rn = n;
f0 = 1/Math.sqrt(rn);
for (i = 0; i < n; ++i)
{
x = h*i;
fr[i] = x*(1-x);
fi[i] = 0;
}
dft (fr,fi,gr,gi,n);
for (i = 0; i < n; ++i)
{
gr[i] = f0*gr[i];
gi[i] = f0*gi[i];
}
/* execution de la transformee inverse */
for (i = 0; i < n; ++i)
{
gi[i] = -gi[i];
}
dft (gr,gi,fr,fi,n);
for (i = 0; i < n; ++i)
{
fr[i] = f0*fr[i];
fi[i] = -f0*fi[i];
if (i == 0 || i%m == 0)
{
x = h*i;
System.out.println(x + " " + fr[i] );
}
}
}
}