AA-ALERT RFIm
Classes | Namespaces | Typedefs | Enumerations | Functions
RFIm.hpp File Reference
#include <OpenCLTypes.hpp>
#include <Kernel.hpp>
#include <InitializeOpenCL.hpp>
#include <Observation.hpp>
#include <utils.hpp>
#include <Statistics.hpp>
#include <Timer.hpp>
#include <typeinfo>
#include <string>
#include <vector>
#include <iostream>
#include <iomanip>
#include <map>

Go to the source code of this file.

Classes

class  RFIm::RFImConfig
 RFI specific kernel configuration. More...
 

Namespaces

 RFIm
 

Typedefs

using RFIm::RFImConfigurations = std::map< std::string, std::map< unsigned int, std::map< float, RFImConfig * > * > * >
 

Enumerations

enum  RFIm::RFImKernel { RFIm::TimeDomainSigmaCut, RFIm::FrequencyDomainSigmaCut }
 The kernel type. More...
 
enum  RFIm::DataOrdering { RFIm::FrequencyTime, RFIm::TimeFrequency }
 Ordering of input/output data. More...
 
enum  RFIm::ReplacementStrategy { RFIm::ReplaceWithMean, RFIm::ReplaceWithMedian }
 Strategy for flagged data replacement. More...
 

Functions

void RFIm::readRFImConfig (RFImConfigurations &configurations, const std::string &filename)
 Read one RFImConfig from a configuration file. More...
 
void RFIm::readSigmaSteps (const std::string &inputFilename, std::vector< float > &steps)
 Read the. More...
 
template<typename DataType >
std::uint64_t RFIm::timeDomainSigmaCut (const bool subbandDedispersion, const DataOrdering &ordering, const ReplacementStrategy &replacement, const AstroData::Observation &observation, std::vector< DataType > &time_series, const float sigmaCut, const unsigned int padding)
 Compute time domain sigma cut. Not optimized, just for testing purpose. More...
 
template<typename DataType >
std::string * RFIm::getTimeDomainSigmaCutOpenCL (const RFImConfig &config, const DataOrdering &ordering, const ReplacementStrategy &replacement, const std::string &dataTypeName, const AstroData::Observation &observation, const float sigmaCut, const unsigned int padding)
 Generates the OpenCL code for the time domain sigma cut. More...
 
template<typename DataType >
std::string * RFIm::getTimeDomainSigmaCutOpenCL_FrequencyTime_ReplaceWithMean (const RFImConfig &config, const std::string &dataTypeName, const AstroData::Observation &observation, const float sigmaCut, const unsigned int padding)
 Generates the OpenCL code for the time domain sigma cut. This function generates specialized code for the case in which the input is FrequencyTime ordered and flagged samples are replaced with the mean. More...
 
template<typename DataType >
void RFIm::testTimeDomainSigmaCut (const bool printCode, const bool printResults, const RFImConfig &config, const DataOrdering &ordering, const ReplacementStrategy &replacement, const std::string &dataTypeName, const AstroData::Observation &observation, const std::vector< DataType > &time_series, isa::OpenCL::OpenCLRunTime &openCLRunTime, const unsigned int clDeviceID, const float sigmaCut, const unsigned int padding)
 Test the OpenCL kernel by comparing results with C++ implementation. More...
 
template<typename DataType >
void RFIm::tuneTimeDomainSigmaCut (const bool subbandDedispersion, const isa::OpenCL::TuningParameters &parameters, const DataOrdering &ordering, const ReplacementStrategy &replacement, const std::string &dataTypeName, const AstroData::Observation &observation, const std::vector< DataType > &time_series, const unsigned int clPlatformID, const unsigned int clDeviceID, const float sigmaCut, const unsigned int padding)
 Tune the OpenCL kernel to find best performing configuration for a certain scenario. More...
 
template<typename DataType >
std::uint64_t RFIm::frequencyDomainSigmaCut (const bool subbandDedispersion, const DataOrdering &ordering, const ReplacementStrategy &replacement, const AstroData::Observation &observation, std::vector< DataType > &time_series, const unsigned int nrBins, const float sigmaCut, const unsigned int padding)
 Compute frequency domain sigma cut. Not optimized, just for testing purpose. More...
 
template<typename DataType >
std::string * RFIm::getFrequencyDomainSigmaCutOpenCL (const RFImConfig &config, const DataOrdering &ordering, const ReplacementStrategy &replacement, const std::string &dataTypeName, const AstroData::Observation &observation, const unsigned int nrBins, const float sigmaCut, const unsigned int padding)
 Generates the OpenCL code for the frequency domain sigma cut. More...
 
template<typename DataType >
std::string * RFIm::getFrequencyDomainSigmaCutOpenCL_FrequencyTime_ReplaceWithMean (const RFImConfig &config, const std::string &dataTypeName, const AstroData::Observation &observation, const unsigned int nrBins, const float sigmaCut, const unsigned int padding)
 Generates the OpenCL code for the frequency domain sigma cut. This function generates specialized code for the case in which the input is FrequencyTime ordered and flagged samples are replaced with the mean. More...
 
template<typename DataType >
void RFIm::testFrequencyDomainSigmaCut (const bool printCode, const bool printResults, const RFImConfig &config, const DataOrdering &ordering, const ReplacementStrategy &replacement, const std::string &dataTypeName, const AstroData::Observation &observation, const std::vector< DataType > &time_series, isa::OpenCL::OpenCLRunTime &openCLRunTime, const unsigned int clDeviceID, const unsigned int nrBins, const float sigmaCut, const unsigned int padding)
 Test the OpenCL kernel by comparing results with C++ implementation. More...
 
template<typename DataType >
void RFIm::tuneFrequencyDomainSigmaCut (const bool subbandDedispersion, const isa::OpenCL::TuningParameters &parameters, const DataOrdering &ordering, const ReplacementStrategy &replacement, const std::string &dataTypeName, const AstroData::Observation &observation, const std::vector< DataType > &time_series, const unsigned int clPlatformID, const unsigned int clDeviceID, const unsigned int nrBins, const float sigmaCut, const unsigned int padding)
 Tune the OpenCL kernel to find best performing configuration for a certain scenario. More...