24 #ifndef __ITERATIVE_SOLVER_TYPES_H__
25 #define __ITERATIVE_SOLVER_TYPES_H__
27 #include "algorithms/algorithm.h"
28 #include "data_management/data/numeric_table.h"
29 #include "data_management/data/homogen_numeric_table.h"
30 #include "services/daal_defines.h"
31 #include "algorithms/optimization_solver/objective_function/sum_of_functions_batch.h"
37 namespace optimization_solver
48 namespace iterative_solver
58 lastInputId = inputArgument
67 optionalArgument = lastInputId + 1,
68 lastOptionalInputId = optionalArgument
79 lastResultId = nIterations
88 optionalResult = lastResultId + 1,
89 lastOptionalResultId = optionalResult
99 lastOptionalData = lastIteration
115 struct DAAL_EXPORT Parameter :
public daal::algorithms::Parameter
125 Parameter(
const sum_of_functions::interface1::BatchPtr &function_,
size_t nIterations_ = 100,
126 double accuracyThreshold_ = 1.0e-05,
bool optionalResultReq_ =
false,
size_t batchSize_ = 1);
132 Parameter(
const Parameter &other);
134 virtual ~Parameter() {}
141 virtual services::Status check()
const;
143 sum_of_functions::interface1::BatchPtr
function;
145 double accuracyThreshold;
147 bool optionalResultRequired;
160 class DAAL_EXPORT Input :
public daal::algorithms::Input
164 Input(
const Input& other);
173 data_management::NumericTablePtr
get(InputId id)
const;
180 algorithms::OptionalArgumentPtr
get(OptionalInputId id)
const;
187 data_management::NumericTablePtr
get(OptionalDataId id)
const;
194 void set(InputId
id,
const data_management::NumericTablePtr &ptr);
201 void set(OptionalInputId
id,
const algorithms::OptionalArgumentPtr &ptr);
208 void set(OptionalDataId
id,
const data_management::NumericTablePtr &ptr);
216 services::Status check(
const daal::algorithms::Parameter *par,
int method)
const DAAL_C11_OVERRIDE;
223 class DAAL_EXPORT Result :
public daal::algorithms::Result
226 DECLARE_SERIALIZABLE_CAST(Result);
227 Result() : daal::algorithms::Result(lastOptionalResultId + 1)
230 virtual ~Result() {};
240 template <
typename algorithmFPType>
241 DAAL_EXPORT services::Status allocate(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *par,
const int method);
248 data_management::NumericTablePtr
get(ResultId id)
const;
255 algorithms::OptionalArgumentPtr
get(OptionalResultId id)
const;
262 data_management::NumericTablePtr
get(OptionalDataId id)
const;
269 void set(ResultId
id,
const data_management::NumericTablePtr &ptr);
276 void set(OptionalResultId
id,
const algorithms::OptionalArgumentPtr &ptr);
283 void set(OptionalDataId
id,
const data_management::NumericTablePtr &ptr);
293 services::Status check(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *par,
294 int method)
const DAAL_C11_OVERRIDE;
298 template<
typename Archive,
bool onDeserialize>
299 services::Status serialImpl(Archive *arch)
301 return daal::algorithms::Result::serialImpl<Archive, onDeserialize>(arch);
304 typedef services::SharedPtr<Result> ResultPtr;
322 struct DAAL_EXPORT Parameter :
public daal::algorithms::Parameter
332 Parameter(
const sum_of_functions::BatchPtr &function_,
size_t nIterations_ = 100,
333 double accuracyThreshold_ = 1.0e-05,
bool optionalResultReq_ =
false,
size_t batchSize_ = 1);
339 Parameter(
const Parameter &other);
341 virtual ~Parameter() {}
348 virtual services::Status check()
const;
350 sum_of_functions::BatchPtr
function;
352 double accuracyThreshold;
354 bool optionalResultRequired;
367 class DAAL_EXPORT Input :
public daal::algorithms::Input
371 Input(
const Input& other);
380 data_management::NumericTablePtr
get(InputId id)
const;
387 algorithms::OptionalArgumentPtr
get(OptionalInputId id)
const;
394 data_management::NumericTablePtr
get(OptionalDataId id)
const;
401 void set(InputId
id,
const data_management::NumericTablePtr &ptr);
408 void set(OptionalInputId
id,
const algorithms::OptionalArgumentPtr &ptr);
415 void set(OptionalDataId
id,
const data_management::NumericTablePtr &ptr);
423 services::Status check(
const daal::algorithms::Parameter *par,
int method)
const DAAL_C11_OVERRIDE;
430 class DAAL_EXPORT Result :
public daal::algorithms::Result
433 DECLARE_SERIALIZABLE_CAST(Result);
434 Result() : daal::algorithms::Result(lastOptionalResultId + 1)
437 virtual ~Result() {};
447 template <
typename algorithmFPType>
448 DAAL_EXPORT services::Status allocate(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *par,
const int method);
455 data_management::NumericTablePtr
get(ResultId id)
const;
462 algorithms::OptionalArgumentPtr
get(OptionalResultId id)
const;
469 data_management::NumericTablePtr
get(OptionalDataId id)
const;
476 void set(ResultId
id,
const data_management::NumericTablePtr &ptr);
483 void set(OptionalResultId
id,
const algorithms::OptionalArgumentPtr &ptr);
490 void set(OptionalDataId
id,
const data_management::NumericTablePtr &ptr);
500 services::Status check(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *par,
501 int method)
const DAAL_C11_OVERRIDE;
505 template<
typename Archive,
bool onDeserialize>
506 services::Status serialImpl(Archive *arch)
508 return daal::algorithms::Result::serialImpl<Archive, onDeserialize>(arch);
511 typedef services::SharedPtr<Result> ResultPtr;
515 using interface2::Parameter;
516 using interface2::Input;
517 using interface2::Result;
518 using interface2::ResultPtr;
daal::algorithms::optimization_solver::iterative_solver::lastIteration
Definition: iterative_solver_types.h:98
daal::algorithms::optimization_solver::iterative_solver::interface2::Input
Input parameters for the iterative solver algorithm
Definition: iterative_solver_types.h:367
daal::algorithms::optimization_solver::iterative_solver::OptionalResultId
OptionalResultId
Definition: iterative_solver_types.h:86
daal::algorithms::optimization_solver::iterative_solver::interface2::Parameter::accuracyThreshold
double accuracyThreshold
Definition: iterative_solver_types.h:352
daal::algorithms::optimization_solver::iterative_solver::InputId
InputId
Definition: iterative_solver_types.h:55
daal::algorithms::optimization_solver::iterative_solver::interface2::Parameter::nIterations
size_t nIterations
Definition: iterative_solver_types.h:351
daal::algorithms::optimization_solver::iterative_solver::interface1::Parameter::batchSize
size_t batchSize
Definition: iterative_solver_types.h:148
daal::algorithms::optimization_solver::iterative_solver::interface2::Parameter
Parameter base class for the iterative solver algorithm
Definition: iterative_solver_types.h:322
daal::algorithms::optimization_solver::iterative_solver::optionalArgument
Definition: iterative_solver_types.h:67
daal::algorithms::optimization_solver::iterative_solver::interface2::Parameter::batchSize
size_t batchSize
Definition: iterative_solver_types.h:355
daal::algorithms::optimization_solver::iterative_solver::ResultId
ResultId
Definition: iterative_solver_types.h:75
daal::algorithms::optimization_solver::iterative_solver::OptionalInputId
OptionalInputId
Definition: iterative_solver_types.h:65
daal::algorithms::optimization_solver::iterative_solver::interface1::Input
Input parameters for the iterative solver algorithm
Definition: iterative_solver_types.h:160
daal::algorithms::optimization_solver::iterative_solver::minimum
Definition: iterative_solver_types.h:77
daal::algorithms::optimization_solver::iterative_solver::optionalResult
Definition: iterative_solver_types.h:88
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:430
daal::algorithms::optimization_solver::iterative_solver::nIterations
Definition: iterative_solver_types.h:78
daal::algorithms::optimization_solver::iterative_solver::interface2::Parameter::optionalResultRequired
bool optionalResultRequired
Definition: iterative_solver_types.h:354
daal::algorithms::optimization_solver::iterative_solver::OptionalDataId
OptionalDataId
Definition: iterative_solver_types.h:96
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:223
daal::algorithms::optimization_solver::iterative_solver::interface1::Parameter::accuracyThreshold
double accuracyThreshold
Definition: iterative_solver_types.h:145
daal::algorithms::optimization_solver::iterative_solver::interface1::Parameter
Parameter base class for the iterative solver algorithm
Definition: iterative_solver_types.h:115
daal::algorithms::optimization_solver::iterative_solver::inputArgument
Definition: iterative_solver_types.h:57
daal::algorithms::optimization_solver::iterative_solver::interface1::Parameter::optionalResultRequired
bool optionalResultRequired
Definition: iterative_solver_types.h:147
daal::algorithms::optimization_solver::iterative_solver::interface1::Parameter::nIterations
size_t nIterations
Definition: iterative_solver_types.h:144