22 #ifndef __ITERATIVE_SOLVER_TYPES_H__
23 #define __ITERATIVE_SOLVER_TYPES_H__
25 #include "algorithms/algorithm.h"
26 #include "data_management/data/numeric_table.h"
27 #include "data_management/data/homogen_numeric_table.h"
28 #include "services/daal_defines.h"
29 #include "algorithms/optimization_solver/objective_function/sum_of_functions_batch.h"
35 namespace optimization_solver
46 namespace iterative_solver
56 lastInputId = inputArgument
65 optionalArgument = lastInputId + 1,
66 lastOptionalInputId = optionalArgument
77 lastResultId = nIterations
86 optionalResult = lastResultId + 1,
87 lastOptionalResultId = optionalResult
97 lastOptionalData = lastIteration
113 struct DAAL_EXPORT Parameter :
public daal::algorithms::Parameter
123 Parameter(
const sum_of_functions::interface1::BatchPtr &function_,
size_t nIterations_ = 100,
124 double accuracyThreshold_ = 1.0e-05,
bool optionalResultReq_ =
false,
size_t batchSize_ = 1);
130 Parameter(
const Parameter &other);
132 virtual ~Parameter() {}
139 virtual services::Status check()
const;
141 sum_of_functions::interface1::BatchPtr
function;
143 double accuracyThreshold;
145 bool optionalResultRequired;
158 class DAAL_EXPORT Input :
public daal::algorithms::Input
162 Input(
const Input& other);
171 data_management::NumericTablePtr
get(InputId id)
const;
178 algorithms::OptionalArgumentPtr
get(OptionalInputId id)
const;
185 data_management::NumericTablePtr
get(OptionalDataId id)
const;
192 void set(InputId
id,
const data_management::NumericTablePtr &ptr);
199 void set(OptionalInputId
id,
const algorithms::OptionalArgumentPtr &ptr);
206 void set(OptionalDataId
id,
const data_management::NumericTablePtr &ptr);
214 services::Status check(
const daal::algorithms::Parameter *par,
int method)
const DAAL_C11_OVERRIDE;
221 class DAAL_EXPORT Result :
public daal::algorithms::Result
224 DECLARE_SERIALIZABLE_CAST(Result);
225 Result() : daal::algorithms::Result(lastOptionalResultId + 1)
228 virtual ~Result() {};
238 template <
typename algorithmFPType>
239 DAAL_EXPORT services::Status allocate(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *par,
const int method);
246 data_management::NumericTablePtr
get(ResultId id)
const;
253 algorithms::OptionalArgumentPtr
get(OptionalResultId id)
const;
260 data_management::NumericTablePtr
get(OptionalDataId id)
const;
267 void set(ResultId
id,
const data_management::NumericTablePtr &ptr);
274 void set(OptionalResultId
id,
const algorithms::OptionalArgumentPtr &ptr);
281 void set(OptionalDataId
id,
const data_management::NumericTablePtr &ptr);
291 services::Status check(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *par,
292 int method)
const DAAL_C11_OVERRIDE;
296 template<
typename Archive,
bool onDeserialize>
297 services::Status serialImpl(Archive *arch)
299 return daal::algorithms::Result::serialImpl<Archive, onDeserialize>(arch);
302 typedef services::SharedPtr<Result> ResultPtr;
320 struct DAAL_EXPORT Parameter :
public daal::algorithms::Parameter
330 Parameter(
const sum_of_functions::BatchPtr &function_,
size_t nIterations_ = 100,
331 double accuracyThreshold_ = 1.0e-05,
bool optionalResultReq_ =
false,
size_t batchSize_ = 1);
337 Parameter(
const Parameter &other);
339 virtual ~Parameter() {}
346 virtual services::Status check()
const;
348 sum_of_functions::BatchPtr
function;
350 double accuracyThreshold;
352 bool optionalResultRequired;
365 class DAAL_EXPORT Input :
public daal::algorithms::Input
369 Input(
const Input& other);
378 data_management::NumericTablePtr
get(InputId id)
const;
385 algorithms::OptionalArgumentPtr
get(OptionalInputId id)
const;
392 data_management::NumericTablePtr
get(OptionalDataId id)
const;
399 void set(InputId
id,
const data_management::NumericTablePtr &ptr);
406 void set(OptionalInputId
id,
const algorithms::OptionalArgumentPtr &ptr);
413 void set(OptionalDataId
id,
const data_management::NumericTablePtr &ptr);
421 services::Status check(
const daal::algorithms::Parameter *par,
int method)
const DAAL_C11_OVERRIDE;
428 class DAAL_EXPORT Result :
public daal::algorithms::Result
431 DECLARE_SERIALIZABLE_CAST(Result);
432 Result() : daal::algorithms::Result(lastOptionalResultId + 1)
435 virtual ~Result() {};
445 template <
typename algorithmFPType>
446 DAAL_EXPORT services::Status allocate(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *par,
const int method);
453 data_management::NumericTablePtr
get(ResultId id)
const;
460 algorithms::OptionalArgumentPtr
get(OptionalResultId id)
const;
467 data_management::NumericTablePtr
get(OptionalDataId id)
const;
474 void set(ResultId
id,
const data_management::NumericTablePtr &ptr);
481 void set(OptionalResultId
id,
const algorithms::OptionalArgumentPtr &ptr);
488 void set(OptionalDataId
id,
const data_management::NumericTablePtr &ptr);
498 services::Status check(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *par,
499 int method)
const DAAL_C11_OVERRIDE;
503 template<
typename Archive,
bool onDeserialize>
504 services::Status serialImpl(Archive *arch)
506 return daal::algorithms::Result::serialImpl<Archive, onDeserialize>(arch);
509 typedef services::SharedPtr<Result> ResultPtr;
513 using interface2::Parameter;
514 using interface2::Input;
515 using interface2::Result;
516 using interface2::ResultPtr;
daal::algorithms::optimization_solver::iterative_solver::interface1::Parameter::optionalResultRequired
bool optionalResultRequired
Definition: iterative_solver_types.h:145
daal::algorithms::optimization_solver::iterative_solver::interface1::Parameter::nIterations
size_t nIterations
Definition: iterative_solver_types.h:142
daal
Definition: algorithm_base_common.h:31
daal::algorithms::optimization_solver::iterative_solver::interface1::Parameter::batchSize
size_t batchSize
Definition: iterative_solver_types.h:146
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:221
daal::algorithms::optimization_solver::iterative_solver::interface2::Parameter::optionalResultRequired
bool optionalResultRequired
Definition: iterative_solver_types.h:352
daal::algorithms::optimization_solver::iterative_solver::InputId
InputId
Definition: iterative_solver_types.h:53
daal::algorithms::optimization_solver::iterative_solver::interface1::Parameter
Parameter base class for the iterative solver algorithm
Definition: iterative_solver_types.h:113
daal::algorithms::optimization_solver::iterative_solver::interface2::Parameter::nIterations
size_t nIterations
Definition: iterative_solver_types.h:349
daal::algorithms::optimization_solver::iterative_solver::OptionalDataId
OptionalDataId
Definition: iterative_solver_types.h:94
daal::algorithms::optimization_solver::iterative_solver::minimum
Definition: iterative_solver_types.h:75
daal::algorithms::optimization_solver::iterative_solver::interface1::Parameter::accuracyThreshold
double accuracyThreshold
Definition: iterative_solver_types.h:143
daal::algorithms::optimization_solver::iterative_solver::ResultId
ResultId
Definition: iterative_solver_types.h:73
daal::algorithms::optimization_solver::iterative_solver::OptionalResultId
OptionalResultId
Definition: iterative_solver_types.h:84
daal::algorithms::optimization_solver::iterative_solver::lastIteration
Definition: iterative_solver_types.h:96
daal::algorithms::optimization_solver::iterative_solver::optionalResult
Definition: iterative_solver_types.h:86
daal::algorithms::optimization_solver::iterative_solver::interface2::Parameter::batchSize
size_t batchSize
Definition: iterative_solver_types.h:353
daal::algorithms::optimization_solver::iterative_solver::interface2::Parameter
Parameter base class for the iterative solver algorithm
Definition: iterative_solver_types.h:320
daal::algorithms::optimization_solver::iterative_solver::OptionalInputId
OptionalInputId
Definition: iterative_solver_types.h:63
daal::algorithms::optimization_solver::iterative_solver::optionalArgument
Definition: iterative_solver_types.h:65
daal::algorithms::optimization_solver::iterative_solver::interface2::Parameter::accuracyThreshold
double accuracyThreshold
Definition: iterative_solver_types.h:350
daal::algorithms::optimization_solver::iterative_solver::interface2::Result
Results obtained with the compute() method of the iterative solver algorithm in the batch processing ...
Definition: iterative_solver_types.h:428
daal::algorithms::optimization_solver::iterative_solver::nIterations
Definition: iterative_solver_types.h:76
daal::algorithms::optimization_solver::iterative_solver::inputArgument
Definition: iterative_solver_types.h:55