22 #ifndef __ALGORITHM_BASE_MODE_H__
23 #define __ALGORITHM_BASE_MODE_H__
25 #include "services/daal_memory.h"
26 #include "services/daal_kernel_defines.h"
27 #include "services/error_handling.h"
28 #include "services/env_detect.h"
29 #include "algorithms/algorithm_types.h"
30 #include "algorithms/algorithm_base_common.h"
50 template<ComputeMode mode>
class Algorithm :
public AlgorithmIfaceImpl
54 Algorithm() : _ac(0), _in(0), _pres(0), _res(0), _par(0) { }
64 virtual void clean() {}
69 virtual services::Status checkPartialResult() = 0;
74 virtual services::Status checkFinalizeComputeParams() = 0;
77 PartialResult *allocatePartialResultMemory()
81 allocatePartialResult();
87 virtual void setParameter() {}
89 services::Status allocateResultMemory()
92 return allocateResult();
93 return services::Status();
96 services::Status initPartialResult()
98 return initializePartialResult();
101 virtual services::Status allocatePartialResult() = 0;
102 virtual services::Status allocateResult() = 0;
104 virtual services::Status initializePartialResult() = 0;
105 virtual Algorithm<mode> *cloneImpl()
const = 0;
107 bool getInitFlag() {
return _pres->getInitFlag(); }
108 void setInitFlag(
bool flag) { _pres->setInitFlag(flag); }
110 AlgorithmContainerImpl<mode> *_ac;
113 PartialResult *_pres;
124 template<>
class Algorithm<batch> :
public AlgorithmIfaceImpl
128 Algorithm() : _ac(0), _par(0), _in(0), _res(0) { }
141 virtual services::Status checkComputeParams() = 0;
143 Parameter * getBaseParameter() {
return _par; }
146 services::Status allocateResultMemory()
149 return allocateResult();
150 return services::Status();
153 virtual void setParameter() {}
155 virtual services::Status allocateResult() = 0;
157 virtual Algorithm<batch> *cloneImpl()
const = 0;
159 daal::algorithms::AlgorithmContainerImpl<batch> *_ac;
168 using interface1::Algorithm;
daal
Definition: algorithm_base_common.h:31
daal::algorithms::interface1::Algorithm::checkFinalizeComputeParams
virtual services::Status checkFinalizeComputeParams()=0
daal::algorithms::interface1::Algorithm::checkPartialResult
virtual services::Status checkPartialResult()=0
daal::batch
Definition: daal_defines.h:110
daal::algorithms::interface1::Algorithm< batch >::Algorithm
Algorithm()
Definition: algorithm_base_mode.h:128
daal::algorithms::interface1::PartialResult::getInitFlag
bool getInitFlag()
Definition: algorithm_types.h:252
daal::algorithms::interface1::AlgorithmIfaceImpl
Implements the abstract interface AlgorithmIface. AlgorithmIfaceImpl is, in turn, the base class for ...
Definition: algorithm_base_common.h:85
daal::algorithms::interface1::Algorithm
Implements the abstract interface AlgorithmIface. Algorithm is, in turn, the base class for the class...
Definition: algorithm_base_mode.h:50
daal::algorithms::interface1::AlgorithmIface::checkComputeParams
virtual services::Status checkComputeParams()=0
daal::algorithms::interface1::Algorithm::Algorithm
Algorithm()
Definition: algorithm_base_mode.h:54
daal::algorithms::interface1::PartialResult::setInitFlag
void setInitFlag(bool flag)
Definition: algorithm_types.h:258