49 #ifndef __COVARIANCE_ONLINE_H__
50 #define __COVARIANCE_ONLINE_H__
52 #include "algorithms/algorithm.h"
53 #include "data_management/data/numeric_table.h"
54 #include "services/daal_defines.h"
55 #include "algorithms/covariance/covariance_types.h"
79 class OnlineContainerIface :
public daal::algorithms::AnalysisContainerIface<online>
82 OnlineContainerIface() {};
83 virtual ~OnlineContainerIface() {}
89 virtual services::Status compute() = 0;
95 virtual services::Status finalizeCompute() = 0;
106 template<
typename algorithmFPType, Method method, CpuType cpu>
107 class DAAL_EXPORT OnlineContainer
118 template<
typename algorithmFPType, CpuType cpu>
119 class DAAL_EXPORT OnlineContainer<algorithmFPType, defaultDense, cpu> :
public OnlineContainerIface
127 OnlineContainer(daal::services::Environment::env *daalEnv);
129 virtual ~OnlineContainer();
135 virtual services::Status compute() DAAL_C11_OVERRIDE;
140 virtual services::Status finalizeCompute() DAAL_C11_OVERRIDE;
151 template<
typename algorithmFPType, CpuType cpu>
152 class DAAL_EXPORT OnlineContainer<algorithmFPType, singlePassDense, cpu> :
public OnlineContainerIface
160 OnlineContainer(daal::services::Environment::env *daalEnv);
162 virtual ~OnlineContainer();
168 virtual services::Status compute() DAAL_C11_OVERRIDE;
173 virtual services::Status finalizeCompute() DAAL_C11_OVERRIDE;
184 template<
typename algorithmFPType, CpuType cpu>
185 class DAAL_EXPORT OnlineContainer<algorithmFPType, sumDense, cpu> :
public OnlineContainerIface
193 OnlineContainer(daal::services::Environment::env *daalEnv);
195 virtual ~OnlineContainer();
201 virtual services::Status compute() DAAL_C11_OVERRIDE;
206 virtual services::Status finalizeCompute() DAAL_C11_OVERRIDE;
217 template<
typename algorithmFPType, CpuType cpu>
218 class DAAL_EXPORT OnlineContainer<algorithmFPType, fastCSR, cpu> :
public OnlineContainerIface
226 OnlineContainer(daal::services::Environment::env *daalEnv);
228 virtual ~OnlineContainer();
234 virtual services::Status compute() DAAL_C11_OVERRIDE;
239 virtual services::Status finalizeCompute() DAAL_C11_OVERRIDE;
250 template<
typename algorithmFPType, CpuType cpu>
251 class DAAL_EXPORT OnlineContainer<algorithmFPType, singlePassCSR, cpu> :
public OnlineContainerIface
259 OnlineContainer(daal::services::Environment::env *daalEnv);
261 virtual ~OnlineContainer();
267 virtual services::Status compute() DAAL_C11_OVERRIDE;
272 virtual services::Status finalizeCompute() DAAL_C11_OVERRIDE;
283 template<
typename algorithmFPType, CpuType cpu>
284 class DAAL_EXPORT OnlineContainer<algorithmFPType, sumCSR, cpu> :
public OnlineContainerIface
292 OnlineContainer(daal::services::Environment::env *daalEnv);
294 virtual ~OnlineContainer();
300 virtual services::Status compute() DAAL_C11_OVERRIDE;
305 virtual services::Status finalizeCompute() DAAL_C11_OVERRIDE;
313 class DAAL_EXPORT OnlineImpl :
public daal::algorithms::Analysis<online>
329 OnlineImpl(
const OnlineImpl &other) : input(other.input), parameter(other.parameter)
334 virtual ~OnlineImpl() {}
340 ResultPtr getResult()
349 virtual services::Status setResult(
const ResultPtr &result)
351 DAAL_CHECK(result, services::ErrorNullResult)
353 _res = _result.get();
354 return services::Status();
361 PartialResultPtr getPartialResult()
363 return _partialResult;
371 virtual services::Status setPartialResult(
const PartialResultPtr &partialResult,
bool initFlag =
false)
373 DAAL_CHECK(partialResult, services::ErrorNullPartialResult);
374 _partialResult = partialResult;
375 _pres = _partialResult.get();
376 setInitFlag(initFlag);
377 return services::Status();
386 services::SharedPtr<OnlineImpl> clone()
const
388 return services::SharedPtr<OnlineImpl>(cloneImpl());
392 OnlineParameter parameter;
399 _result.reset(
new Result());
400 _partialResult.reset(
new PartialResult());
403 virtual OnlineImpl * cloneImpl() const DAAL_C11_OVERRIDE = 0;
405 PartialResultPtr _partialResult;
430 template<typename algorithmFPType = DAAL_ALGORITHM_FP_TYPE, Method method = defaultDense>
431 class DAAL_EXPORT Online : public OnlineImpl
447 Online(
const Online<algorithmFPType, method> &other) : OnlineImpl(other)
458 virtual int getMethod() const DAAL_C11_OVERRIDE {
return (
int)method; }
466 services::SharedPtr<Online<algorithmFPType, method> > clone()
const
468 return services::SharedPtr<Online<algorithmFPType, method> >(cloneImpl());
472 virtual Online<algorithmFPType, method> * cloneImpl() const DAAL_C11_OVERRIDE
474 return new Online<algorithmFPType, method>(*this);
477 virtual services::Status allocateResult() DAAL_C11_OVERRIDE
479 services::Status s = _result->allocate<algorithmFPType>(_partialResult.get(), _par, (int)method);
480 _res = _result.get();
481 _pres = _partialResult.get();
482 return services::Status();
485 virtual services::Status allocatePartialResult() DAAL_C11_OVERRIDE
487 services::Status s = _partialResult->allocate<algorithmFPType>(&input, _par, (int)method);
488 _pres = _partialResult.get();
492 virtual services::Status initializePartialResult() DAAL_C11_OVERRIDE
494 services::Status s = _partialResult->initialize<algorithmFPType>(&input, _par, (int)method);
495 _pres = _partialResult.get();
496 return services::Status();
501 this->_ac =
new __DAAL_ALGORITHM_CONTAINER(online, OnlineContainer, algorithmFPType, method)(&_env);
506 using interface1::OnlineContainerIface;
507 using interface1::OnlineContainer;
508 using interface1::OnlineImpl;
509 using interface1::Online;
daal::algorithms::covariance::singlePassCSR
Definition: covariance_types.h:80
daal::algorithms::covariance::interface1::OnlineParameter
Parameters of the correlation or variance-covariance matrix algorithm in the online processing mode...
Definition: covariance_types.h:295
daal
Definition: algorithm_base_common.h:57
daal::algorithms::AnalysisContainerIface
Abstract interface class that provides virtual methods to access and run implementations of the analy...
Definition: analysis.h:79
daal::algorithms::covariance::interface1::OnlineContainer
Provides methods to run implementations of the correlation or variance-covariance matrix algorithm...
Definition: covariance_online.h:107
daal::algorithms::covariance::interface1::OnlineImpl::parameter
OnlineParameter parameter
Definition: covariance_online.h:392
daal::algorithms::covariance::interface1::OnlineImpl::setPartialResult
virtual services::Status setPartialResult(const PartialResultPtr &partialResult, bool initFlag=false)
Definition: covariance_online.h:371
daal::services::ErrorNullPartialResult
Definition: error_indexes.h:131
daal::algorithms::covariance::interface1::OnlineImpl::setResult
virtual services::Status setResult(const ResultPtr &result)
Definition: covariance_online.h:349
daal::algorithms::covariance::interface1::OnlineImpl::OnlineImpl
OnlineImpl(const OnlineImpl &other)
Definition: covariance_online.h:329
daal::algorithms::covariance::interface1::OnlineContainerIface
Class that spcifies interfaces of implementations of the correlation or variance-covariance matrix al...
Definition: covariance_online.h:79
daal::algorithms::covariance::interface1::OnlineImpl
Abstract class that specifies interface of the algorithms for computing correlation or variance-covar...
Definition: covariance_online.h:313
daal::algorithms::covariance::interface1::Online::Online
Online(const Online< algorithmFPType, method > &other)
Definition: covariance_online.h:447
daal::algorithms::covariance::Method
Method
Definition: covariance_types.h:72
daal::algorithms::covariance::interface1::Online::getMethod
virtual int getMethod() const DAAL_C11_OVERRIDE
Definition: covariance_online.h:458
daal::algorithms::covariance::interface1::Online
Computes correlation or variance-covariance matrix in the online processing mode. ...
Definition: covariance_online.h:431
daal::algorithms::covariance::interface1::OnlineContainerIface::compute
virtual services::Status compute()=0
daal::algorithms::covariance::sumDense
Definition: covariance_types.h:77
daal::algorithms::covariance::fastCSR
Definition: covariance_types.h:79
daal::algorithms::covariance::interface1::Result
Provides methods to access final results obtained with the compute() method of the correlation or var...
Definition: covariance_types.h:317
daal::algorithms::covariance::sumCSR
Definition: covariance_types.h:82
daal::algorithms::covariance::interface1::PartialResult
Provides methods to access partial results obtained with the compute() method of the correlation or v...
Definition: covariance_types.h:204
daal::algorithms::covariance::interface1::Online::Online
Online()
Definition: covariance_online.h:435
daal::algorithms::covariance::interface1::OnlineImpl::input
Input input
Definition: covariance_online.h:391
daal::algorithms::covariance::interface1::OnlineImpl::OnlineImpl
OnlineImpl()
Definition: covariance_online.h:317
daal::algorithms::covariance::interface1::OnlineImpl::getPartialResult
PartialResultPtr getPartialResult()
Definition: covariance_online.h:361
daal::algorithms::covariance::interface1::OnlineContainerIface::finalizeCompute
virtual services::Status finalizeCompute()=0
daal::algorithms::covariance::interface1::OnlineImpl::clone
services::SharedPtr< OnlineImpl > clone() const
Definition: covariance_online.h:386
daal::algorithms::Analysis
Provides methods for execution of operations over data, such as computation of Summary Statistics est...
Definition: analysis.h:94
daal::algorithms::covariance::covariance
Definition: covariance_types.h:114
daal::online
Definition: daal_defines.h:133
daal::algorithms::covariance::defaultDense
Definition: covariance_types.h:74
daal::algorithms::covariance::interface1::Online::clone
services::SharedPtr< Online< algorithmFPType, method > > clone() const
Definition: covariance_online.h:466
daal::services::ErrorNullResult
Definition: error_indexes.h:122
daal::algorithms::covariance::singlePassDense
Definition: covariance_types.h:75
daal::algorithms::covariance::interface1::OnlineImpl::getResult
ResultPtr getResult()
Definition: covariance_online.h:340