22 #ifndef __LBFGS_TYPES_H__
23 #define __LBFGS_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 "data_management/data/memory_block.h"
29 #include "services/daal_defines.h"
30 #include "algorithms/optimization_solver/iterative_solver/iterative_solver_batch.h"
31 #include "algorithms/optimization_solver/objective_function/sum_of_functions_batch.h"
32 #include "algorithms/engines/mt19937/mt19937.h"
46 namespace optimization_solver
76 correctionPairs = iterative_solver::lastOptionalData + 1,
82 averageArgumentLIterations,
86 lastOptionalData = averageArgumentLIterations,
102 struct DAAL_EXPORT Parameter :
public optimization_solver::iterative_solver::interface1::Parameter
115 Parameter(sum_of_functions::interface1::BatchPtr
function = sum_of_functions::interface1::BatchPtr(),
116 size_t nIterations = 100,
double accuracyThreshold = 1.0e-5,
117 size_t batchSize = 10,
size_t correctionPairBatchSize_ = 100,
118 size_t m = 10,
size_t L = 10,
size_t seed = 777);
120 virtual ~Parameter() {}
127 engines::EnginePtr engine;
129 data_management::NumericTablePtr batchIndices;
131 size_t correctionPairBatchSize;
134 data_management::NumericTablePtr correctionPairBatchIndices;
138 data_management::NumericTablePtr stepLengthSequence;
145 virtual services::Status check() const DAAL_C11_OVERRIDE;
156 class DAAL_EXPORT Input : public optimization_solver::iterative_solver::interface1::Input
159 typedef optimization_solver::iterative_solver::interface1::Input super;
161 Input(
const Input& other);
170 data_management::NumericTablePtr
get(OptionalDataId id)
const;
177 void set(OptionalDataId
id,
const data_management::NumericTablePtr &ptr);
186 virtual services::Status check(
const daal::algorithms::Parameter *par,
int method)
const DAAL_C11_OVERRIDE;
194 class DAAL_EXPORT Result :
public optimization_solver::iterative_solver::interface1::Result
197 DECLARE_SERIALIZABLE_CAST(Result);
198 typedef optimization_solver::iterative_solver::interface1::Result super;
210 template <
typename algorithmFPType>
211 DAAL_EXPORT services::Status allocate(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *par,
const int method);
218 data_management::NumericTablePtr
get(OptionalDataId id)
const;
225 void set(OptionalDataId
id,
const data_management::NumericTablePtr &ptr);
235 virtual services::Status check(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *par,
236 int method)
const DAAL_C11_OVERRIDE;
238 typedef services::SharedPtr<Result> ResultPtr;
255 struct DAAL_EXPORT Parameter :
public optimization_solver::iterative_solver::Parameter
268 Parameter(sum_of_functions::BatchPtr
function = sum_of_functions::BatchPtr(),
269 size_t nIterations = 100,
double accuracyThreshold = 1.0e-5,
270 size_t batchSize = 10,
size_t correctionPairBatchSize_ = 100,
271 size_t m = 10,
size_t L = 10,
size_t seed = 777);
273 virtual ~Parameter() {}
280 engines::EnginePtr engine;
282 data_management::NumericTablePtr batchIndices;
284 size_t correctionPairBatchSize;
287 data_management::NumericTablePtr correctionPairBatchIndices;
291 data_management::NumericTablePtr stepLengthSequence;
298 virtual services::Status check() const DAAL_C11_OVERRIDE;
309 class DAAL_EXPORT Input : public optimization_solver::iterative_solver::Input
312 typedef optimization_solver::iterative_solver::Input super;
314 Input(
const Input& other);
323 data_management::NumericTablePtr
get(OptionalDataId id)
const;
330 void set(OptionalDataId
id,
const data_management::NumericTablePtr &ptr);
339 virtual services::Status check(
const daal::algorithms::Parameter *par,
int method)
const DAAL_C11_OVERRIDE;
347 class DAAL_EXPORT Result :
public optimization_solver::iterative_solver::Result
350 DECLARE_SERIALIZABLE_CAST(Result);
351 typedef optimization_solver::iterative_solver::Result super;
363 template <
typename algorithmFPType>
364 DAAL_EXPORT services::Status allocate(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *par,
const int method);
371 data_management::NumericTablePtr
get(OptionalDataId id)
const;
378 void set(OptionalDataId
id,
const data_management::NumericTablePtr &ptr);
388 virtual services::Status check(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *par,
389 int method)
const DAAL_C11_OVERRIDE;
391 typedef services::SharedPtr<Result> ResultPtr;
396 using interface2::Parameter;
397 using interface2::Input;
398 using interface2::Result;
399 using interface2::ResultPtr;
daal::algorithms::optimization_solver::lbfgs::interface2::Parameter::L
size_t L
Definition: lbfgs_types.h:278
daal::algorithms::optimization_solver::lbfgs::interface2::Parameter::seed
size_t seed
Definition: lbfgs_types.h:279
daal
Definition: algorithm_base_common.h:31
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::lbfgs::OptionalDataId
OptionalDataId
Definition: lbfgs_types.h:74
daal::algorithms::optimization_solver::iterative_solver::interface1::Parameter
Parameter base class for the iterative solver algorithm
Definition: iterative_solver_types.h:113
daal::algorithms::em_gmm::nIterations
Definition: em_gmm_types.h:97
daal::algorithms::optimization_solver::lbfgs::interface1::Parameter::L
size_t L
Definition: lbfgs_types.h:125
daal::algorithms::optimization_solver::lbfgs::interface1::Parameter::m
size_t m
Definition: lbfgs_types.h:122
daal::algorithms::optimization_solver::lbfgs::correctionIndices
Definition: lbfgs_types.h:79
daal::algorithms::optimization_solver::lbfgs::interface2::Parameter::engine
engines::EnginePtr engine
Definition: lbfgs_types.h:280
daal::algorithms::optimization_solver::lbfgs::interface2::Result
Results obtained with the compute() method of the LBFGS algorithm in the batch processing mode...
Definition: lbfgs_types.h:347
daal::algorithms::optimization_solver::lbfgs::defaultDense
Definition: lbfgs_types.h:67
daal::algorithms::optimization_solver::lbfgs::Method
Method
Definition: lbfgs_types.h:65
daal::algorithms::optimization_solver::lbfgs::interface1::Parameter::stepLengthSequence
data_management::NumericTablePtr stepLengthSequence
Definition: lbfgs_types.h:138
daal::algorithms::optimization_solver::lbfgs::interface1::Result
Results obtained with the compute() method of the LBFGS algorithm in the batch processing mode...
Definition: lbfgs_types.h:194
daal::algorithms::optimization_solver::lbfgs::averageArgumentLIterations
Definition: lbfgs_types.h:82
daal::algorithms::optimization_solver::lbfgs::interface2::Parameter
Parameter class for LBFGS algorithm
Definition: lbfgs_types.h:255
daal::algorithms::optimization_solver::lbfgs::interface2::Parameter::correctionPairBatchIndices
data_management::NumericTablePtr correctionPairBatchIndices
Definition: lbfgs_types.h:287
daal::algorithms::optimization_solver::lbfgs::interface2::Parameter::m
size_t m
Definition: lbfgs_types.h:275
daal::algorithms::optimization_solver::lbfgs::interface1::Parameter::seed
size_t seed
Definition: lbfgs_types.h:126
daal::algorithms::optimization_solver::lbfgs::interface2::Parameter::correctionPairBatchSize
size_t correctionPairBatchSize
Definition: lbfgs_types.h:284
daal::algorithms::optimization_solver::lbfgs::interface2::Parameter::stepLengthSequence
data_management::NumericTablePtr stepLengthSequence
Definition: lbfgs_types.h:291
daal::algorithms::optimization_solver::lbfgs::correctionPairs
Definition: lbfgs_types.h:76
daal::algorithms::optimization_solver::lbfgs::interface1::Parameter::engine
engines::EnginePtr engine
Definition: lbfgs_types.h:127
daal::algorithms::optimization_solver::lbfgs::interface1::Parameter
Parameter class for LBFGS algorithm
Definition: lbfgs_types.h:102
daal::algorithms::optimization_solver::lbfgs::interface1::Parameter::correctionPairBatchIndices
data_management::NumericTablePtr correctionPairBatchIndices
Definition: lbfgs_types.h:134
daal::algorithms::optimization_solver::lbfgs::interface1::Parameter::correctionPairBatchSize
size_t correctionPairBatchSize
Definition: lbfgs_types.h:131