24 #include "cheetah/ddtr/astroaccelerate/DdtrWorker.h" 30 namespace astroaccelerate {
33 template<
typename DdtrTraits>
34 DdtrWorker<DdtrTraits>::DdtrWorker(std::shared_ptr<DedispersionStrategy<NumericalRep>>
const& strategy)
39 template<
typename DdtrTraits>
40 DdtrWorker<DdtrTraits>::~DdtrWorker()
44 template<
typename DdtrTraits>
45 template<
typename BufferType>
46 std::shared_ptr<typename DdtrWorker<DdtrTraits>::DmTrialsType> DdtrWorker<DdtrTraits>::operator()(panda::PoolResource<panda::nvidia::Cuda>& gpu
47 , BufferType
const& agg_buf)
50 PANDA_LOG <<
"astroaccelerate:: invoked (on device "<< gpu.device_id() <<
")";
52 if (agg_buf.data_size() < (std::size_t) _strategy->maxshift())
54 const std::string msg(
"DdtrCuda: data buffer size < maxshift ");
55 PANDA_LOG_ERROR << msg <<
"(" << agg_buf.data_size() <<
"<" << _strategy->maxshift() <<
")";
56 throw panda::Error(msg);
58 auto const& start_time = agg_buf.composition().front()->start_time(0);
59 auto dm_trials_ptr = data::DmTrials<Cpu,float>::make_shared(_dm_trial_metadata, start_time);
Some limits and constants for FLDO.