48 #ifndef __ALGORITHM_BASE_MODE_H__
49 #define __ALGORITHM_BASE_MODE_H__
51 #include "services/daal_memory.h"
52 #include "services/daal_kernel_defines.h"
53 #include "services/error_handling.h"
54 #include "services/env_detect.h"
55 #include "algorithms/algorithm_types.h"
56 #include "algorithms/algorithm_base_common.h"
76 template<ComputeMode mode>
class Algorithm :
public AlgorithmIfaceImpl
80 Algorithm() : _ac(0), _in(0), _pres(0), _res(0), _par(0) { }
90 virtual void clean() {}
95 virtual services::Status checkPartialResult() = 0;
100 virtual services::Status checkFinalizeComputeParams() = 0;
103 PartialResult *allocatePartialResultMemory()
107 allocatePartialResult();
113 virtual void setParameter() {}
115 services::Status allocateResultMemory()
118 return allocateResult();
119 return services::Status();
122 services::Status initPartialResult()
124 return initializePartialResult();
127 virtual services::Status allocatePartialResult() = 0;
128 virtual services::Status allocateResult() = 0;
130 virtual services::Status initializePartialResult() = 0;
131 virtual Algorithm<mode> *cloneImpl()
const = 0;
133 bool getInitFlag() {
return _pres->getInitFlag(); }
134 void setInitFlag(
bool flag) { _pres->setInitFlag(flag); }
136 AlgorithmContainerImpl<mode> *_ac;
139 PartialResult *_pres;
150 template<>
class Algorithm<batch> :
public AlgorithmIfaceImpl
154 Algorithm() : _ac(0), _par(0), _in(0), _res(0) { }
167 virtual services::Status checkComputeParams() = 0;
169 Parameter * getBaseParameter() {
return _par; }
172 services::Status allocateResultMemory()
175 return allocateResult();
176 return services::Status();
179 virtual void setParameter() {}
181 virtual services::Status allocateResult() = 0;
183 virtual Algorithm<batch> *cloneImpl()
const = 0;
185 daal::algorithms::AlgorithmContainerImpl<batch> *_ac;
194 using interface1::Algorithm;
daal
Definition: algorithm_base_common.h:57
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:131
daal::algorithms::interface1::Algorithm< batch >::Algorithm
Algorithm()
Definition: algorithm_base_mode.h:154
daal::algorithms::interface1::PartialResult::getInitFlag
bool getInitFlag()
Definition: algorithm_types.h:278
daal::algorithms::interface1::AlgorithmIfaceImpl
Implements the abstract interface AlgorithmIface. AlgorithmIfaceImpl is, in turn, the base class for ...
Definition: algorithm_base_common.h:111
daal::algorithms::interface1::Algorithm
Implements the abstract interface AlgorithmIface. Algorithm is, in turn, the base class for the class...
Definition: algorithm_base_mode.h:76
daal::algorithms::interface1::AlgorithmIface::checkComputeParams
virtual services::Status checkComputeParams()=0
daal::algorithms::interface1::Algorithm::Algorithm
Algorithm()
Definition: algorithm_base_mode.h:80
daal::algorithms::interface1::PartialResult::setInitFlag
void setInitFlag(bool flag)
Definition: algorithm_types.h:284