 		cudaEventRecord(start, 0);
 
 		for (int j = 0; j < fft_run; j++) {
-			cufftExecC2C(cufft_plan, d_sig, d_result, CUFFT_FORWARD);
+			// ToDo: run c2c cufft
+			// http://docs.nvidia.com/cuda/cufft/index.html#function-cufftexecc2c-cufftexecz2z 
+			cufftExecC2C( );
 		}
 
 		cudaEventRecord(stop, 0);

	//------------------------------------------------------------------------//
	// host memory
	//------------------------------------------------------------------------//
	cufftComplex *h_sig;
	cudaMallocHost((void **) &h_sig, sizeof(cufftComplex) * sig_len);

	srand(time(NULL));
	for (int i = 0; i < sig_len; i++) {
		h_sig[i].x = (float)rand() / RAND_MAX;
		h_sig[i].y = (float)rand() / RAND_MAX;
	}

	//------------------------------------------------------------------------//
	// device memory
	//------------------------------------------------------------------------//
	cufftComplex *d_sig, *d_result;
	cudaMalloc((void **) &d_sig,    sizeof(cufftComplex) * sig_len);
	cudaMalloc((void **) &d_result, sizeof(cufftComplex) * sig_len);

	//------------------------------------------------------------------------//
	// copy data from host to device 
	//------------------------------------------------------------------------//
	cudaMemcpyAsync(d_sig, h_sig, sizeof(cufftComplex) * sig_len, cudaMemcpyHostToDevice);

	//------------------------------------------------------------------------//
	// set up cuda fft env 

	checkCudaErrors(cudaEventDestroy(start));
	checkCudaErrors(cudaEventDestroy(stop));

	// ToDo: deallocate h_sig, d_sig, d_result
}
