24 #ifndef SKA_CHEETAH_DDTR_ASTROACCELERATE_DEDISPERSIONPLAN_H 25 #define SKA_CHEETAH_DDTR_ASTROACCELERATE_DEDISPERSIONPLAN_H 27 #include "cheetah/data/TimeFrequency.h" 28 #include "cheetah/ddtr/Config.h" 29 #include "cheetah/ddtr/astroaccelerate/Config.h" 30 #include "cheetah/ddtr/astroaccelerate/DedispersionStrategy.h" 34 namespace astroaccelerate {
40 template <
typename DdtrTraits>
44 typedef typename DdtrTraits::value_type NumericalT;
45 typedef typename DdtrTraits::DedispersionHandler DedispersionHandler;
46 typedef typename DdtrTraits::DmTrialsType DmTrialsType;
47 typedef typename DdtrTraits::TimeFrequencyType TimeFrequencyType;
48 typedef ddtr::Config::Dm Dm;
49 typedef typename DdtrTraits::BufferFillerType BufferFillerType;
50 typedef typename DdtrTraits::BufferType BufferType;
51 typedef std::vector<ddtr::Config::Dm> DmListType;
52 typedef typename TimeFrequencyType::FrequencyType FrequencyType;
53 typedef typename TimeFrequencyType::TimeType TimeType;
54 typedef std::vector<FrequencyType> FrequencyListType;
62 data::DimensionSize<data::Time> reset(TimeFrequencyType
const&);
64 void reset(data::DimensionSize<data::Time>
const& spectra);
66 data::DimensionSize<data::Time> number_of_spectra()
const;
68 data::DimensionSize<data::Time> buffer_overlap()
const;
70 std::shared_ptr<data::DmTrialsMetadata> generate_dmtrials_metadata(TimeType sample_interval, std::size_t nspectra, std::size_t nsamples)
const 72 return _algo_config.generate_dmtrials_metadata(sample_interval, nspectra, nsamples);
75 std::vector<Dm>
const& dm_trials()
const 77 return _algo_config.dm_trials();
80 std::vector<double>
const& dm_factors()
const 85 std::shared_ptr<data::DmTrialsMetadata> dm_trial_metadata()
const 87 return _dm_trial_metadata;
90 std::shared_ptr<DedispersionStrategy<NumericalT>>
const& dedispersion_strategy()
const 96 ConfigType
const& _algo_config;
97 std::shared_ptr<DedispersionStrategy<NumericalT>> _strategy;
98 std::shared_ptr<data::DmTrialsMetadata> _dm_trial_metadata;
100 std::size_t _max_delay;
101 std::size_t _dedispersion_samples;
102 std::vector<double> _dm_factors;
103 std::size_t _number_of_spectra;
111 #include "cheetah/ddtr/astroaccelerate/detail/DedispersionPlan.cpp" 112 #endif // SKA_CHEETAH_DDTR_ASTROACCELERATE_DEDISPERSIONPLAN_H
Some limits and constants for FLDO.