Blame view

src/ExternLib/StatisticFunctions/CorrelationProcess.cc 4.66 KB
8dd4b7f3   Hacene SI HADJ MOHAND   setting up processé
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
/*
 * 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.cc
 * Author: hacene
 * 
 * Created on September 27, 2021, 10:02 AM
 */
#include <stdlib.h>
#include <string>

#include <boost/lexical_cast.hpp>

#include "DicError.hh"
#include "AMDA_exception.hh"

#include "Operation.hh"
#include "ParameterManager.hh"
#include "ParamMgr.hh"
#include "ParameterCreatorFromExpression.hh"
#include "CorrelationProcess.hh"
e6a241e7   Hacene SI HADJ MOHAND   structure ok
26
#include "StatisticCorrelationCreator.hh"
f5c74402   Hacene SI HADJ MOHAND   compilation ok
27
#include "CorrelationFunctions.hh"
403992c8   Hacene SI HADJ MOHAND   scalr ok tested
28
29
#include <typeinfo>

8dd4b7f3   Hacene SI HADJ MOHAND   setting up processé
30
31
32
33
34
35
36
using namespace std;
using namespace boost;
using namespace log4cxx;

namespace AMDA {
    namespace Parameters {

e336270a   Benjamin Renard   Fix correlation &...
37
        CorrelationProcess::CorrelationProcess(Parameter &parameter) : MultiParamProcess_CRTP(parameter) {
403992c8   Hacene SI HADJ MOHAND   scalr ok tested
38
            _type = "";
8dd4b7f3   Hacene SI HADJ MOHAND   setting up processé
39
40
        }

e336270a   Benjamin Renard   Fix correlation &...
41
42
        CorrelationProcess::CorrelationProcess(const CorrelationProcess& pProcess, Parameter &parameter) : MultiParamProcess_CRTP(pProcess, parameter),
            _firstParamName(pProcess._firstParamName), _secondParamName(pProcess._secondParamName) {
403992c8   Hacene SI HADJ MOHAND   scalr ok tested
43
            _type = "";
8dd4b7f3   Hacene SI HADJ MOHAND   setting up processé
44
45
46
        }

        CorrelationProcess::~CorrelationProcess() {
8dd4b7f3   Hacene SI HADJ MOHAND   setting up processé
47
48
        }

e336270a   Benjamin Renard   Fix correlation &...
49
50
51
52
53
54
55
56
57
        void CorrelationProcess::parse() {
  	        ParameterCreatorFromExpression creator(_parameter.getParameterManager());
  	        ParameterSPtr lParameter = creator.getOneParameterFromExpression(_parameter,_expression, isUserProcess());
  	        _paramNameList[lParameter->getId()].first = lParameter;
	        _firstParamName = lParameter->getId();
  	        lParameter = creator.getOneParameterFromExpression(_parameter,_attributList[0], isUserProcess());
		    _paramNameList[lParameter->getId()].first = lParameter;
		    _secondParamName = lParameter->getId();
        }
8dd4b7f3   Hacene SI HADJ MOHAND   setting up processé
58

e336270a   Benjamin Renard   Fix correlation &...
59
60
61
        void CorrelationProcess::establishConnection() {
            parse();
  	        MultiParamProcess::establishConnection();
8dd4b7f3   Hacene SI HADJ MOHAND   setting up processé
62
63
64
65
        }

        TimeStamp CorrelationProcess::init() {
            _windowtime = atof(_attributList[1].c_str());
403992c8   Hacene SI HADJ MOHAND   scalr ok tested
66
67
68
            
            if(_type.empty() && _attributList.size() >=3)
                _type =  _attributList[2];
8dd4b7f3   Hacene SI HADJ MOHAND   setting up processé
69

e336270a   Benjamin Renard   Fix correlation &...
70
71
72
73
74
75
76
            TimeStamp timeStamp = MultiParamProcess::init();

            ParamData* lfirstParamInput = _paramNameList[_firstParamName].first->getParamData(this).get();

            ParamData* lSecondParamInput = _paramNameList[_secondParamName].first->getParamData(this).get();

            StatisticCorrelationCreator lCreator(*this, _timeIntervalList, *lfirstParamInput, *lSecondParamInput, _windowtime, _type);
8dd4b7f3   Hacene SI HADJ MOHAND   setting up processé
77

e336270a   Benjamin Renard   Fix correlation &...
78
79
80
        	_operation = lCreator.getOperation();	
	        _paramData = ParamDataSPtr(_operation->getParamOutput());
	        _paramData->setMinSampling(lfirstParamInput->getMinSampling());
403992c8   Hacene SI HADJ MOHAND   scalr ok tested
81

e336270a   Benjamin Renard   Fix correlation &...
82
	        return timeStamp;
8dd4b7f3   Hacene SI HADJ MOHAND   setting up processé
83
        }
403992c8   Hacene SI HADJ MOHAND   scalr ok tested
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
        
// Covariance 
        CovarianceProcess::CovarianceProcess(Parameter& parameter):CorrelationProcess(parameter){
            CorrelationProcess::_type = "covariance";
        }
        
        CovarianceProcess::CovarianceProcess(const CorrelationProcess& pProcess, Parameter& parameter):CorrelationProcess(pProcess, parameter){
            CorrelationProcess::_type = "covariance";
        }
        
        CovarianceProcess::~CovarianceProcess(){        
        }
       
    
    // Pearson 
        PearsonProcess::PearsonProcess(Parameter& parameter):CorrelationProcess(parameter){
            CorrelationProcess::_type = "pearson";
        }
        
        PearsonProcess::PearsonProcess(const CorrelationProcess& pProcess, Parameter& parameter):CorrelationProcess(pProcess, parameter){
            CorrelationProcess::_type = "pearson";
8dd4b7f3   Hacene SI HADJ MOHAND   setting up processé
105
        }
403992c8   Hacene SI HADJ MOHAND   scalr ok tested
106
107
108
109
110
        
        PearsonProcess::~PearsonProcess(){        
        }
        
    
f5c74402   Hacene SI HADJ MOHAND   compilation ok
111

403992c8   Hacene SI HADJ MOHAND   scalr ok tested
112
113
114
115
116
117
118
119
120
121
// Kendall 
        KendallProcess::KendallProcess(Parameter& parameter):CorrelationProcess(parameter){
            CorrelationProcess::_type = "kendall";
        }
        
        KendallProcess::KendallProcess(const CorrelationProcess& pProcess, Parameter& parameter):CorrelationProcess(pProcess, parameter){
            CorrelationProcess::_type = "kendall";
        }
        
        KendallProcess::~KendallProcess(){        
8dd4b7f3   Hacene SI HADJ MOHAND   setting up processé
122
        }
403992c8   Hacene SI HADJ MOHAND   scalr ok tested
123
124
125
        
        // Spearman  
        SpearmanProcess::SpearmanProcess(Parameter& parameter):CorrelationProcess(parameter){
bf7793bf   Hacene SI HADJ MOHAND   correcting kendall
126
            CorrelationProcess::_type = "spearman";
403992c8   Hacene SI HADJ MOHAND   scalr ok tested
127
128
129
        }
        
        SpearmanProcess::SpearmanProcess(const CorrelationProcess& pProcess, Parameter& parameter):CorrelationProcess(pProcess, parameter){
bf7793bf   Hacene SI HADJ MOHAND   correcting kendall
130
            CorrelationProcess::_type = "spearman";
403992c8   Hacene SI HADJ MOHAND   scalr ok tested
131
132
133
134
135
        }
        
        SpearmanProcess::~SpearmanProcess(){        
        }
        
8dd4b7f3   Hacene SI HADJ MOHAND   setting up processé
136
    }
403992c8   Hacene SI HADJ MOHAND   scalr ok tested
137
138
    
    
8dd4b7f3   Hacene SI HADJ MOHAND   setting up processé
139
}
403992c8   Hacene SI HADJ MOHAND   scalr ok tested