48 #ifndef __ITERATIVE_SOLVER_TYPES_H__ 49 #define __ITERATIVE_SOLVER_TYPES_H__ 51 #include "algorithms/algorithm.h" 52 #include "data_management/data/numeric_table.h" 53 #include "data_management/data/homogen_numeric_table.h" 54 #include "services/daal_defines.h" 55 #include "algorithms/optimization_solver/objective_function/sum_of_functions_batch.h" 61 namespace optimization_solver
72 namespace iterative_solver
82 lastInputId = inputArgument
91 optionalArgument = lastInputId + 1,
92 lastOptionalInputId = optionalArgument
103 lastResultId = nIterations
110 enum OptionalResultId
112 optionalResult = lastResultId + 1,
113 lastOptionalResultId = optionalResult
123 lastOptionalData = lastIteration
139 struct DAAL_EXPORT Parameter :
public daal::algorithms::Parameter
149 Parameter(
const sum_of_functions::BatchPtr &function_,
size_t nIterations_ = 100,
150 double accuracyThreshold_ = 1.0e-05,
bool optionalResultReq_ =
false,
size_t batchSize_ = 1);
156 Parameter(
const Parameter &other);
158 virtual ~Parameter() {}
165 virtual services::Status check()
const;
167 sum_of_functions::BatchPtr
function;
169 double accuracyThreshold;
171 bool optionalResultRequired;
184 class DAAL_EXPORT Input :
public daal::algorithms::Input
188 Input(
const Input& other);
197 data_management::NumericTablePtr
get(InputId id)
const;
204 algorithms::OptionalArgumentPtr
get(OptionalInputId id)
const;
211 data_management::NumericTablePtr
get(OptionalDataId id)
const;
218 void set(InputId id,
const data_management::NumericTablePtr &ptr);
225 void set(OptionalInputId id,
const algorithms::OptionalArgumentPtr &ptr);
232 void set(OptionalDataId id,
const data_management::NumericTablePtr &ptr);
240 services::Status check(
const daal::algorithms::Parameter *par,
int method)
const DAAL_C11_OVERRIDE;
247 class DAAL_EXPORT Result :
public daal::algorithms::Result
250 DECLARE_SERIALIZABLE_CAST(Result);
251 Result() : daal::algorithms::Result(lastOptionalResultId + 1)
254 virtual ~Result() {};
264 template <
typename algorithmFPType>
265 DAAL_EXPORT services::Status allocate(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *par,
const int method);
272 data_management::NumericTablePtr
get(ResultId id)
const;
279 algorithms::OptionalArgumentPtr
get(OptionalResultId id)
const;
286 data_management::NumericTablePtr
get(OptionalDataId id)
const;
293 void set(ResultId id,
const data_management::NumericTablePtr &ptr);
300 void set(OptionalResultId id,
const algorithms::OptionalArgumentPtr &ptr);
307 void set(OptionalDataId id,
const data_management::NumericTablePtr &ptr);
317 services::Status check(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *par,
318 int method)
const DAAL_C11_OVERRIDE;
322 template<
typename Archive,
bool onDeserialize>
323 services::Status serialImpl(Archive *arch)
325 return daal::algorithms::Result::serialImpl<Archive, onDeserialize>(arch);
328 typedef services::SharedPtr<Result> ResultPtr;
332 using interface1::Parameter;
333 using interface1::Input;
334 using interface1::Result;
335 using interface1::ResultPtr;
daal::algorithms::optimization_solver::iterative_solver::interface1::Parameter::optionalResultRequired
bool optionalResultRequired
Definition: iterative_solver_types.h:171
daal::algorithms::optimization_solver::iterative_solver::interface1::Parameter::nIterations
size_t nIterations
Definition: iterative_solver_types.h:168
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::optimization_solver::iterative_solver::interface1::Parameter::batchSize
size_t batchSize
Definition: iterative_solver_types.h:172
daal::algorithms::optimization_solver::iterative_solver::interface1::Result
Results obtained with the compute() method of the iterative solver algorithm in the batch processing ...
Definition: iterative_solver_types.h:247
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::optimization_solver::iterative_solver::InputId
InputId
Definition: iterative_solver_types.h:79
daal::algorithms::optimization_solver::iterative_solver::interface1::Parameter
Parameter base class for the iterative solver algorithm
Definition: iterative_solver_types.h:139
daal::algorithms::optimization_solver::iterative_solver::OptionalDataId
OptionalDataId
Definition: iterative_solver_types.h:120
daal::algorithms::interface1::Parameter
Base class to represent computation parameters. Algorithm-specific parameters are represented as deri...
Definition: algorithm_types.h:86
daal::services::interface1::SharedPtr
Shared pointer that retains shared ownership of an object through a pointer. Several SharedPtr object...
Definition: daal_shared_ptr.h:187
daal::algorithms::optimization_solver::iterative_solver::minimum
Definition: iterative_solver_types.h:101
daal::algorithms::optimization_solver::iterative_solver::interface1::Parameter::accuracyThreshold
double accuracyThreshold
Definition: iterative_solver_types.h:169
daal::algorithms::optimization_solver::iterative_solver::ResultId
ResultId
Definition: iterative_solver_types.h:99
daal::algorithms::optimization_solver::iterative_solver::OptionalResultId
OptionalResultId
Definition: iterative_solver_types.h:110
daal::algorithms::optimization_solver::iterative_solver::lastIteration
Definition: iterative_solver_types.h:122
daal::algorithms::optimization_solver::iterative_solver::optionalResult
Definition: iterative_solver_types.h:112
daal::algorithms::optimization_solver::iterative_solver::OptionalInputId
OptionalInputId
Definition: iterative_solver_types.h:89
daal::algorithms::optimization_solver::iterative_solver::optionalArgument
Definition: iterative_solver_types.h:91
daal::algorithms::optimization_solver::iterative_solver::nIterations
Definition: iterative_solver_types.h:102
daal::algorithms::optimization_solver::iterative_solver::inputArgument
Definition: iterative_solver_types.h:81