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::services::interface1::Status
Class that holds the results of API calls. In case of API routine failure it contains the list of err...
Definition: error_handling.h:491
daal
Definition: algorithm_base_common.h:57
daal::algorithms::interface1::AlgorithmContainerImpl
Abstract interface class that provides virtual methods to access and run implementations of the algor...
Definition: algorithm_container_base_common.h:181
daal::algorithms::interface1::Result
Base class to represent final results of the computation. Algorithm-specific final results are repres...
Definition: algorithm_types.h:331
daal::algorithms::interface1::PartialResult
Base class to represent partial results of the computation. Algorithm-specific partial results are re...
Definition: algorithm_types.h:253
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:132
daal::algorithms::interface1::Parameter
Base class to represent computation parameters. Algorithm-specific parameters are represented as deri...
Definition: algorithm_types.h:86
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::Algorithm< batch >
Implements the abstract interface AlgorithmIface. Algorithm<batch> is, in turn, the base class for th...
Definition: algorithm_base_mode.h:150
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