 	
 	cf (N_RA, poles_r, poles_i, res_r, res_i);
   
-  cuDoubleComplex *polesHost = (cuDoubleComplex*) calloc (N_RA, sizeof(cuDoubleComplex));
-  cuDoubleComplex *resHost = (cuDoubleComplex*) calloc (N_RA, sizeof(cuDoubleComplex));
+ 	cuDoubleComplex polesHost[N_RA];
+ 	cuDoubleComplex resHost[N_RA];
 	
 	for (int i = 0; i < N_RA; ++i) {
 		polesHost[i] = make_cuDoubleComplex(poles_r[i], poles_i[i]);

  fclose (pFile);
  #endif
  
  free (polesHost);
  free (resHost);
  free (y_host);
  free (pres_host);
  #ifdef CONV

  errorCheck (status);
  
  // copy poles and residuals
  status = cudaMemcpyToSymbol (poles, polesHost, N_RA * sizeof(cuDoubleComplex), 0, cudaMemcpyHostToDevice);
  errorCheck (status);
  
  status = cudaMemcpyToSymbol (res, resHost, N_RA * sizeof(cuDoubleComplex), 0, cudaMemcpyHostToDevice);
  errorCheck (status);
  
	// set initial time
