25 #ifndef __COVARIANCE_ONLINE_H__
26 #define __COVARIANCE_ONLINE_H__
28 #include "algorithms/algorithm.h"
29 #include "data_management/data/numeric_table.h"
30 #include "services/daal_defines.h"
31 #include "algorithms/covariance/covariance_types.h"
55 class OnlineContainerIface :
public daal::algorithms::AnalysisContainerIface<online>
58 OnlineContainerIface() {}
59 virtual ~OnlineContainerIface() {}
65 virtual services::Status compute() = 0;
71 virtual services::Status finalizeCompute() = 0;
82 template<
typename algorithmFPType, Method method, CpuType cpu>
94 template<
typename algorithmFPType, CpuType cpu>
95 class OnlineContainer<algorithmFPType, defaultDense, cpu> :
public OnlineContainerIface
103 OnlineContainer(daal::services::Environment::env *daalEnv);
105 virtual ~OnlineContainer();
111 virtual services::Status compute() DAAL_C11_OVERRIDE;
116 virtual services::Status finalizeCompute() DAAL_C11_OVERRIDE;
127 template<
typename algorithmFPType, CpuType cpu>
128 class OnlineContainer<algorithmFPType, singlePassDense, cpu> :
public OnlineContainerIface
136 OnlineContainer(daal::services::Environment::env *daalEnv);
138 virtual ~OnlineContainer();
144 virtual services::Status compute() DAAL_C11_OVERRIDE;
149 virtual services::Status finalizeCompute() DAAL_C11_OVERRIDE;
160 template<
typename algorithmFPType, CpuType cpu>
161 class OnlineContainer<algorithmFPType, sumDense, cpu> :
public OnlineContainerIface
169 OnlineContainer(daal::services::Environment::env *daalEnv);
171 virtual ~OnlineContainer();
177 virtual services::Status compute() DAAL_C11_OVERRIDE;
182 virtual services::Status finalizeCompute() DAAL_C11_OVERRIDE;
193 template<
typename algorithmFPType, CpuType cpu>
194 class OnlineContainer<algorithmFPType, fastCSR, cpu> :
public OnlineContainerIface
202 OnlineContainer(daal::services::Environment::env *daalEnv);
204 virtual ~OnlineContainer();
210 virtual services::Status compute() DAAL_C11_OVERRIDE;
215 virtual services::Status finalizeCompute() DAAL_C11_OVERRIDE;
226 template<
typename algorithmFPType, CpuType cpu>
227 class OnlineContainer<algorithmFPType, singlePassCSR, cpu> :
public OnlineContainerIface
235 OnlineContainer(daal::services::Environment::env *daalEnv);
237 virtual ~OnlineContainer();
243 virtual services::Status compute() DAAL_C11_OVERRIDE;
248 virtual services::Status finalizeCompute() DAAL_C11_OVERRIDE;
259 template<
typename algorithmFPType, CpuType cpu>
260 class OnlineContainer<algorithmFPType, sumCSR, cpu> :
public OnlineContainerIface
268 OnlineContainer(daal::services::Environment::env *daalEnv);
270 virtual ~OnlineContainer();
276 virtual services::Status compute() DAAL_C11_OVERRIDE;
281 virtual services::Status finalizeCompute() DAAL_C11_OVERRIDE;
289 class DAAL_EXPORT OnlineImpl :
public daal::algorithms::Analysis<online>
292 typedef algorithms::covariance::Input InputType;
293 typedef algorithms::covariance::OnlineParameter ParameterType;
294 typedef algorithms::covariance::Result ResultType;
295 typedef algorithms::covariance::PartialResult PartialResultType;
310 OnlineImpl(
const OnlineImpl &other) : input(other.input), parameter(other.parameter)
315 virtual ~OnlineImpl() {}
321 ResultPtr getResult()
330 virtual services::Status setResult(
const ResultPtr &result)
332 DAAL_CHECK(result, services::ErrorNullResult)
334 _res = _result.get();
335 return services::Status();
342 PartialResultPtr getPartialResult()
344 return _partialResult;
352 virtual services::Status setPartialResult(
const PartialResultPtr &partialResult,
bool initFlag =
false)
354 DAAL_CHECK(partialResult, services::ErrorNullPartialResult);
355 _partialResult = partialResult;
356 _pres = _partialResult.get();
357 setInitFlag(initFlag);
358 return services::Status();
367 services::SharedPtr<OnlineImpl> clone()
const
369 return services::SharedPtr<OnlineImpl>(cloneImpl());
373 ParameterType parameter;
380 _result.reset(
new ResultType());
381 _partialResult.reset(
new PartialResult());
384 virtual OnlineImpl * cloneImpl() const DAAL_C11_OVERRIDE = 0;
386 PartialResultPtr _partialResult;
411 template<typename algorithmFPType = DAAL_ALGORITHM_FP_TYPE, Method method = defaultDense>
412 class DAAL_EXPORT Online : public OnlineImpl
415 typedef OnlineImpl super;
417 typedef typename super::InputType InputType;
418 typedef typename super::ParameterType ParameterType;
419 typedef typename super::ResultType ResultType;
420 typedef typename super::PartialResultType PartialResultType;
435 Online(
const Online<algorithmFPType, method> &other) : OnlineImpl(other)
446 virtual int getMethod() const DAAL_C11_OVERRIDE {
return (
int)method; }
454 services::SharedPtr<Online<algorithmFPType, method> > clone()
const
456 return services::SharedPtr<Online<algorithmFPType, method> >(cloneImpl());
460 virtual Online<algorithmFPType, method> * cloneImpl() const DAAL_C11_OVERRIDE
462 return new Online<algorithmFPType, method>(*this);
465 virtual services::Status allocateResult() DAAL_C11_OVERRIDE
467 services::Status s = _result->allocate<algorithmFPType>(_partialResult.get(), _par, (int)method);
468 _res = _result.get();
469 _pres = _partialResult.get();
470 return services::Status();
473 virtual services::Status allocatePartialResult() DAAL_C11_OVERRIDE
475 services::Status s = _partialResult->allocate<algorithmFPType>(&input, _par, (int)method);
476 _pres = _partialResult.get();
480 virtual services::Status initializePartialResult() DAAL_C11_OVERRIDE
482 services::Status s = _partialResult->initialize<algorithmFPType>(&input, _par, (int)method);
483 _pres = _partialResult.get();
484 return services::Status();
489 this->_ac =
new __DAAL_ALGORITHM_CONTAINER(online, OnlineContainer, algorithmFPType, method)(&_env);
494 using interface1::OnlineContainerIface;
495 using interface1::OnlineContainer;
496 using interface1::OnlineImpl;
497 using interface1::Online;
daal::algorithms::covariance::interface1::Online::Online
Online()
Definition: covariance_online.h:423
daal::algorithms::covariance::interface1::OnlineContainerIface
Class that spcifies interfaces of implementations of the correlation or variance-covariance matrix al...
Definition: covariance_online.h:55
daal::algorithms::covariance::interface1::OnlineContainer
Provides methods to run implementations of the correlation or variance-covariance matrix algorithm...
Definition: covariance_online.h:83
daal::algorithms::covariance::interface1::OnlineImpl::parameter
ParameterType parameter
Definition: covariance_online.h:373
daal::algorithms::covariance::interface1::Online::clone
services::SharedPtr< Online< algorithmFPType, method > > clone() const
Definition: covariance_online.h:454
daal::algorithms::covariance::covariance
Definition: covariance_types.h:90
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:180
daal::algorithms::covariance::Method
Method
Definition: covariance_types.h:48
daal::algorithms::covariance::interface1::Online::Online
Online(const Online< algorithmFPType, method > &other)
Definition: covariance_online.h:435
daal::algorithms::covariance::interface1::OnlineImpl::getResult
ResultPtr getResult()
Definition: covariance_online.h:321
daal::algorithms::covariance::defaultDense
Definition: covariance_types.h:50
daal::services::ErrorNullResult
Definition: error_indexes.h:98
daal::algorithms::covariance::interface1::OnlineImpl::OnlineImpl
OnlineImpl(const OnlineImpl &other)
Definition: covariance_online.h:310
daal::algorithms::AnalysisContainerIface
Abstract interface class that provides virtual methods to access and run implementations of the analy...
Definition: analysis.h:55
daal::algorithms::covariance::interface1::OnlineContainerIface::finalizeCompute
virtual services::Status finalizeCompute()=0
daal::algorithms::covariance::sumCSR
Definition: covariance_types.h:58
daal::algorithms::covariance::interface1::OnlineImpl::setPartialResult
virtual services::Status setPartialResult(const PartialResultPtr &partialResult, bool initFlag=false)
Definition: covariance_online.h:352
daal::algorithms::covariance::interface1::OnlineContainerIface::compute
virtual services::Status compute()=0
daal::online
Definition: daal_defines.h:114
daal::algorithms::covariance::singlePassCSR
Definition: covariance_types.h:56
daal::algorithms::covariance::interface1::OnlineImpl::clone
services::SharedPtr< OnlineImpl > clone() const
Definition: covariance_online.h:367
daal::algorithms::covariance::fastCSR
Definition: covariance_types.h:55
daal::algorithms::covariance::interface1::OnlineImpl
Abstract class that specifies interface of the algorithms for computing correlation or variance-covar...
Definition: covariance_online.h:289
daal::algorithms::covariance::singlePassDense
Definition: covariance_types.h:51
daal::algorithms::covariance::interface1::Online
Computes correlation or variance-covariance matrix in the online processing mode. ...
Definition: covariance_online.h:412
daal::algorithms::covariance::interface1::OnlineImpl::OnlineImpl
OnlineImpl()
Definition: covariance_online.h:298
daal::algorithms::covariance::sumDense
Definition: covariance_types.h:53
daal::algorithms::covariance::interface1::OnlineImpl::getPartialResult
PartialResultPtr getPartialResult()
Definition: covariance_online.h:342
daal::algorithms::Analysis
Provides methods for execution of operations over data, such as computation of Summary Statistics est...
Definition: analysis.h:70
daal::algorithms::covariance::interface1::OnlineImpl::setResult
virtual services::Status setResult(const ResultPtr &result)
Definition: covariance_online.h:330
daal::algorithms::covariance::interface1::OnlineImpl::input
InputType input
Definition: covariance_online.h:372
daal::services::ErrorNullPartialResult
Definition: error_indexes.h:107
daal::algorithms::covariance::interface1::Online::getMethod
virtual int getMethod() const DAAL_C11_OVERRIDE
Definition: covariance_online.h:446