24 #ifndef SKA_CHEETAH_TIMEFREQUENCY_H 25 #define SKA_CHEETAH_TIMEFREQUENCY_H 27 #include "cheetah/data/Units.h" 28 #include "cheetah/data/TimeFrequencyCommon.h" 29 #include "cheetah/utils/Architectures.h" 30 #include "panda/DataChunk.h" 32 #pragma GCC diagnostic push 33 #pragma GCC diagnostic ignored "-Wall" 34 #pragma GCC diagnostic ignored "-Wpragmas" 35 #pragma GCC diagnostic ignored "-Wunused-parameter" 36 #pragma GCC diagnostic ignored "-Wunused-variable" 37 #include "pss/astrotypes/types/TimeFrequency.h" 38 #pragma GCC diagnostic pop 44 template <
class Arch,
typename NumericalT>
class FrequencyTime;
85 template <
class Arch,
typename NumericalT>
86 class TimeFrequency :
public pss::astrotypes::TimeFrequency<NumericalT>
87 ,
public TimeFrequencyCommon<TimeFrequency<Arch, NumericalT>>
89 typedef pss::astrotypes::TimeFrequency<NumericalT> BaseT;
90 typedef TimeFrequencyCommon<TimeFrequency<Arch, NumericalT>> CommonBaseT;
97 typedef NumericalT NumericalRep;
98 typedef Arch Architecture;
100 typedef typename CommonBaseT::FrequencyType FrequencyType;
101 typedef typename CommonBaseT::TimeType TimeType;
102 typedef typename CommonBaseT::TimePointType TimePointType;
104 typedef typename BaseT::iterator Iterator;
105 typedef typename BaseT::const_iterator ConstIterator;
113 typedef typename BaseT::ConstSpectra ConstSpectra;
114 typedef typename BaseT::Channel Channel;
115 typedef typename BaseT::ConstChannel ConstChannel;
117 using pss::astrotypes::TimeFrequency<NumericalT>::TimeFrequency;
131 template<
class OtherArch,
typename OtherNumericalT>
134 template<
typename OtherNumericalT>
137 template<
class OtherArch,
typename OtherNumericalT>
154 void set_channel(
unsigned channel_number, DataType
const& value);
180 template<
typename T,
typename Enable =
void>
186 template<
typename DataType,
typename T=
bool>
187 using EnableIfIsTimeFrequency =
typename std::enable_if<pss::astrotypes::has_exact_dimensions<typename std::remove_reference<DataType>::type
188 , pss::astrotypes::units::Time
189 , pss::astrotypes::units::Frequency>::value, T>::type;
196 namespace astrotypes {
198 template<
typename Alloc,
typename T>
199 struct has_exact_dimensions<
ska::cheetah::data::TimeFrequency<T, Alloc>, units::Time, units::Frequency> :
public std::true_type
206 #include "detail/TimeFrequency.cpp" 207 #include "cuda/TimeFrequency.h" 209 #endif // SKA_CHEETAH_TIMEFREQUENCY_H
bool operator==(TimeFrequency const &) const
return true if equivalent data
Some limits and constants for FLDO.
NumericalT DataType
the underlying data storage type for the amplitude of the signal
std::size_t number_of_channels() const
BaseT::Spectra Spectra
Iterator class for accessing each time sample.
void set_channel(unsigned channel_number, DataType const &value)
sets the value of the specified channel to the provided value across all time samples ...
std::size_t number_of_spectra() const