本文整理汇总了C++中TimeSeries::set_engine方法的典型用法代码示例。如果您正苦于以下问题:C++ TimeSeries::set_engine方法的具体用法?C++ TimeSeries::set_engine怎么用?C++ TimeSeries::set_engine使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TimeSeries
的用法示例。
在下文中一共展示了TimeSeries::set_engine方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
//.........这里部分代码省略.........
if (config->coherent_dedispersion &&
config->filterbank.get_convolve_when() != Filterbank::Config::During)
{
if (!convolution)
convolution = new Convolution;
if (!config->input_buffering)
convolution->set_buffering_policy (NULL);
convolution->set_response (response);
if (!config->integration_turns)
convolution->set_passband (passband);
convolved = new_time_series();
if (filterbank_after_dedisp)
{
convolution->set_input (filterbanked);
convolution->set_output (convolved); // out of place
}
else
{
convolution->set_input (filterbanked);
convolution->set_output (convolved); // out of place
}
#if HAVE_CUDA
if (run_on_gpu)
{
convolved->set_memory (device_memory);
convolution->set_device (device_memory.ptr());
unsigned nchan = manager->get_info()->get_nchan() * config->filterbank.get_nchan();
if (nchan >= 16)
convolution->set_engine (new CUDA::ConvolutionEngineSpectral (stream));
else
convolution->set_engine (new CUDA::ConvolutionEngine (stream));
}
#endif
operations.push_back (convolution.get());
}
if (filterbank_after_dedisp)
prepare_interchan (convolved);
else
prepare_interchan (convolved);
if (filterbank_after_dedisp && filterbank)
operations.push_back (filterbank.get());
if (config->plfb_nbin)
{
// Set up output
Archiver* archiver = new Archiver;
unloader.resize(1);
unloader[0] = archiver;
prepare_archiver( archiver );
if (!phased_filterbank)
{
if (output_subints())
{
Subint<PhaseLockedFilterbank> *sub_plfb =
new Subint<PhaseLockedFilterbank>;
示例2: Error
//.........这里部分代码省略.........
double nbytes_per_sample = sizeof(float) * nchan * npol * ndim;
double MB = 1024.0 * 1024.0;
// ideally, block size would be a full output block, but this is too large
// pick a nice fraction that will divide evently into maximum RAM
// NB this doesn't account for copies (yet)
if (verbose)
cerr << "digifits: nsample * nbytes_per_sample=" << nsample * nbytes_per_sample
<< " config->maximum_RAM=" << config->maximum_RAM << endl;
while (nsample * nbytes_per_sample > config->maximum_RAM) nsample /= 2;
if (verbose)
cerr << "digifits: block_size=" << (nbytes_per_sample*nsample)/MB
<< " MB " << "(" << nsample << " samp)" << endl;
manager->set_block_size ( nsample );
// if running on multiple GPUs, make nsblk such that no buffering is
// required
if ((run_on_gpu) and (config->get_total_nthread() > 1))
{
config->nsblk = nsample / samp_per_fb;
if (verbose)
cerr << "digifits: due to GPU multi-threading, setting nsblk="<<config->nsblk << endl;
}
TimeSeries* timeseries = unpacked;
#if HAVE_CUDA
if (run_on_gpu)
{
timeseries->set_memory (device_memory);
timeseries->set_engine (new CUDA::TimeSeriesEngine (device_memory));
}
#endif
if (!obs->get_detected())
{
cerr << "digifits: input data not detected" << endl;
// if no filterbank specified
if ((fb_nchan == 0) && (nchan == 1))
{
throw Error(InvalidParam,"dsp::LoadToFITS::construct",
"must specify filterbank scheme if single channel data");
}
if ((config->coherent_dedisp) && (config->dispersion_measure != 0.0))
{
cerr << "digifits: performing coherent dedispersion" << endl;
kernel = new Dedispersion;
kernel->set_dispersion_measure( config->dispersion_measure );
unsigned frequency_resolution = config->filterbank.get_freq_res ();
cerr << "digifits: config->filterbank.get_freq_res= " << frequency_resolution << endl;
if (frequency_resolution)
{
cerr << "digifits: setting filter length to " << frequency_resolution << endl;
//kernel->set_frequency_resolution (frequency_resolution);
kernel -> set_times_minimum_nfft (frequency_resolution);
}
}
else
{
if (config->dispersion_measure != 0.0)