예제 #1
0
int main()  {
  double Delta_i, Delta_f, U_i;
  double* y;

  Delta_i=0.8;
  Delta_f=1;
  N=2*N_half+1;
  Ns=N*N;

  y=(double*)malloc(sizeof(double)*4*Ns);

  Delta=Delta_f;
  U_f=inity(y);
  Delta=Delta_i;
  U_i=inity(y);

  printf("Delta_i=%lf U_i=%lf Delta_f=%lf U_f=%lf\n",Delta_i,U_i,Delta_f,U_f);

	evolution(y);

  free(y);
  return 0;
}
예제 #2
0
int main() {

  double* y;
  long int N_half,N,Ns;
	double U;

	N_half=400;
	N=2*N_half+1;
	Ns=N*N;
	y=(double*)malloc(sizeof(double)*4*Ns);

  U=inity(y);
	free(y);

  return 0;
}
예제 #3
0
파일: main.c 프로젝트: digdig/omp_gl_eom1
int main()	{
  double* y;
	double t;
 	N_half=N/2;
  Ns=N*N;
	t=0;

  y=(double*) malloc(sizeof(double)*16*Ns);
//provide y at t=0,and U. comment off if the values read from data.
  U=inity(y);  
  printf("U=%f\n",U);

	omp_set_num_threads(3);
	evolution(y,t);

  free(y);
  return 0;
}
예제 #4
0
int main(int argc, char **argv){
    
    int N = 64;
    int M = 28815;
    int O = 28768;
    int N2 = N/2;
    int L = (M/N2);
    int P = 4;
    clock_t start;
    clock_t stop;   
    
    int i;
    int j = 0;
    int k = 0;
    int n;
    int idx;
    
    double x1[N];
    double y1[N];
    double y[O];
    double *temparray = (double *) malloc(sizeof(double) * N);
    double *G = (double *) malloc(sizeof(double) * N);
    double *D = (double *) calloc(N,sizeof(double));
    double *past_tail = (double *) calloc(N2,sizeof(double));
    double X1[2*N+1];
    double S[2*N+1];
    double tempy1[2*N+1];

    
    for (k = 0; k < P; k++) {
        n = N2*k;
        memcpy(temparray,x+(n),sizeof(double)*N);
        windowingFilter(h,temparray,x1,N);
        preFFT(x1,X1,N);
        modelfft(X1, N, 1);
        NoiseSpecterEstimate(D,X1,P,N);
    }
    
    inity(y,P*N2);
    idx = P*N2;

    for (k = P; k < L-1; k++) {
        n = N2*k;
        memcpy(temparray,x+(n),sizeof(double)*N);
        windowingFilter(h,temparray,x1,N);
        
        preFFT(x1,X1,N);
        modelfft(X1, N, 1);
        
	start = clock();
        SSMethod(S,G,D,X1,N);
        stop = clock();


	printf("Time start: %f\n", (double)start);
	printf("Time stop: %f\n", (double)stop);

	printf("Time elapsed: %f\n", ((double)stop - start) / CLOCKS_PER_SEC);

        memcpy(tempy1,S,sizeof(double)*2*N+1);
        modelfft(tempy1, N, -1);
        postIFFT(tempy1,y1,N);
        
        cascadeOUT(y,past_tail,y1,idx,N);
        idx+=(N/2);
        
        j = 0;
        for (i = N2;i < N;i++) {
            past_tail[j] = y1[i];
            j++;
        }
    }
    
    // FILE *fp;
    // fp = fopen("result.dat","w");
	// for(i=0; i<O; i++) {
        // fprintf(fp,"%.8f\n",y[i]);
    // }
    // fclose(fp);
    
    // for(i=O-100; i<O; i++) {
        // printf("%.8f\n",y[i]);
    // }
    
    free(temparray);
    free(G);
    free(D);
    free(past_tail);
    
    return 0;
    
}