/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /* * File: CorrelationProcess.hh * Author: hacene * * Created on September 27, 2021, 10:02 AM */ #ifndef CORRELATIONPROCESS_HH #define CORRELATIONPROCESS_HH #include "MultiParamProcess.hh" #include "ParamInfo.hh" namespace AMDA { namespace Parameters { class CorrelationProcess : public MultiParamProcess_CRTP { public: CorrelationProcess(Parameter ¶meter); CorrelationProcess(const CorrelationProcess& pProcess, Parameter ¶meter); virtual ~CorrelationProcess(); /** * @overload Process::establishConnection() */ void establishConnection(); /** * @overload Process::init() */ TimeStamp init(); protected: /** * @brief If the expression is not a Single parameter, * it must ask the creation of a parameter responsible of the formula calculation. */ void parse(); std::string _type; private: double _windowtime; std::string _firstParamName; std::string _secondParamName; }; class CovarianceProcess : public CorrelationProcess { public: CovarianceProcess(Parameter& parameter); CovarianceProcess(const CorrelationProcess& pProcess, Parameter ¶meter); virtual ~CovarianceProcess(); }; class PearsonProcess : public CorrelationProcess { public: PearsonProcess(Parameter& parameter); PearsonProcess(const CorrelationProcess& pProcess, Parameter ¶meter); virtual ~PearsonProcess(); }; class SpearmanProcess : public CorrelationProcess { public: SpearmanProcess(Parameter& parameter); SpearmanProcess(const CorrelationProcess& pProcess, Parameter ¶meter); virtual ~SpearmanProcess(); }; class KendallProcess : public CorrelationProcess { public: KendallProcess(Parameter& parameter); KendallProcess(const CorrelationProcess& pProcess, Parameter ¶meter); virtual ~KendallProcess(); }; } } #endif /* CORRELATIONPROCESS_HH */