1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
#ifndef ALGORITHMS_ENUMS_H
#define ALGORITHMS_ENUMS_H
namespace algorithms {
enum class RFITestSet {
Empty,
SpectralLines,
GaussianSpectralLines,
IntermittentSpectralLines,
FullBandBursts,
HalfBandBursts,
VaryingBursts,
GaussianBursts,
SinusoidalBursts,
SlewedGaussians,
FluctuatingBursts,
StrongPowerLaw,
MediumPowerLaw,
WeakPowerLaw,
PolarizedSpike
};
constexpr inline RFITestSet RFITestSetFirst() { return RFITestSet::Empty; }
constexpr inline RFITestSet RFITestSetLast() {
return RFITestSet::PolarizedSpike;
}
RFITestSet inline operator++(RFITestSet& x) {
return x = (RFITestSet)(std::underlying_type<RFITestSet>::type(x) + 1);
}
enum class BackgroundTestSet {
Empty,
LowFrequency,
HighFrequency,
ThreeSources,
FiveSources,
FiveFilteredSources,
StaticSidelobeSource,
StrongVariableSidelobeSource,
FaintVariableSidelobeSource,
Checker
};
constexpr inline BackgroundTestSet BackgroundTestSetFirst() {
return BackgroundTestSet::Empty;
}
constexpr inline BackgroundTestSet BackgroundTestSetLast() {
return BackgroundTestSet::Checker;
}
BackgroundTestSet inline operator++(BackgroundTestSet& x) {
return x = (BackgroundTestSet)(std::underlying_type<BackgroundTestSet>::type(
x) +
1);
}
} // namespace algorithms
#endif
|