C++ API Reference for Intel® Data Analytics Acceleration Library 2019 Update 5

iterative_solver_batch.h
1 /* file: iterative_solver_batch.h */
2 /*******************************************************************************
3 * Copyright 2014-2019 Intel Corporation.
4 *
5 * This software and the related documents are Intel copyrighted materials, and
6 * your use of them is governed by the express license under which they were
7 * provided to you (License). Unless the License provides otherwise, you may not
8 * use, modify, copy, publish, distribute, disclose or transmit this software or
9 * the related documents without Intel's prior written permission.
10 *
11 * This software and the related documents are provided as is, with no express
12 * or implied warranties, other than those that are expressly stated in the
13 * License.
14 *******************************************************************************/
15 
16 /*
17 //++
18 // Implementation of iterative solver interface interface.
19 //--
20 */
21 
22 #ifndef __ITERATIVE_SOLVER_BATCH_H__
23 #define __ITERATIVE_SOLVER_BATCH_H__
24 
25 #include "algorithms/algorithm.h"
26 #include "data_management/data/numeric_table.h"
27 #include "services/daal_defines.h"
28 #include "algorithms/optimization_solver/optimization_solver_batch.h"
29 #include "algorithms/optimization_solver/iterative_solver/iterative_solver_types.h"
30 
31 namespace daal
32 {
33 namespace algorithms
34 {
35 namespace optimization_solver
36 {
37 namespace iterative_solver
38 {
42 namespace interface1
43 {
52 class DAAL_EXPORT Batch : public optimization_solver::BatchIface
53 {
54 public:
55  typedef algorithms::optimization_solver::iterative_solver::interface1::Input InputType;
56  typedef algorithms::optimization_solver::iterative_solver::interface1::Parameter ParameterType;
57  typedef algorithms::optimization_solver::iterative_solver::interface1::Result ResultType;
58 
59  Batch()
60  {
61  }
62 
69  Batch(const Batch &other)
70  {
71  }
72 
73  virtual ~Batch() {}
74 
79  virtual InputType * getInput() = 0;
80 
85  virtual ParameterType * getParameter() = 0;
86 
91  ResultPtr getResult()
92  {
93  return _result;
94  }
95 
101  virtual services::Status createResult() = 0;
102 
108  services::SharedPtr<Batch> clone() const
109  {
110  return services::SharedPtr<Batch>(cloneImpl());
111  }
112 
113 protected:
114  virtual Batch *cloneImpl() const DAAL_C11_OVERRIDE = 0;
115 
116  ResultPtr _result;
117 };
119 typedef services::SharedPtr<Batch> BatchPtr;
120 
121 } // namespace interface1
122 
126 namespace interface2
127 {
136 class DAAL_EXPORT Batch : public optimization_solver::BatchIface
137 {
138 public:
139  typedef algorithms::optimization_solver::iterative_solver::Input InputType;
140  typedef algorithms::optimization_solver::iterative_solver::Parameter ParameterType;
141  typedef algorithms::optimization_solver::iterative_solver::Result ResultType;
142 
143  Batch()
144  {
145  }
146 
153  Batch(const Batch &other)
154  {
155  }
156 
157  virtual ~Batch() {}
158 
163  virtual InputType * getInput() = 0;
164 
169  virtual ParameterType * getParameter() = 0;
170 
175  ResultPtr getResult()
176  {
177  return _result;
178  }
179 
185  virtual services::Status createResult() = 0;
186 
192  services::SharedPtr<Batch> clone() const
193  {
194  return services::SharedPtr<Batch>(cloneImpl());
195  }
196 
197 protected:
198  virtual Batch *cloneImpl() const DAAL_C11_OVERRIDE = 0;
199 
200  ResultPtr _result;
201 };
203 typedef services::SharedPtr<Batch> BatchPtr;
204 
205 } // namespace interface2
206 using interface2::Batch;
207 using interface2::BatchPtr;
208 
209 } // namespace optimization_solver
210 } // namespace iterative_solver
211 } // namespace algorithm
212 } // namespace daal
213 #endif
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::iterative_solver::interface2::Batch::getResult
ResultPtr getResult()
Definition: iterative_solver_batch.h:175
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::interface1::Input
Input parameters for the iterative solver algorithm
Definition: iterative_solver_types.h:158
daal::algorithms::optimization_solver::iterative_solver::interface1::Batch::getResult
ResultPtr getResult()
Definition: iterative_solver_batch.h:91
daal_defines.h
daal::algorithms::optimization_solver::iterative_solver::interface2::Batch::Batch
Batch(const Batch &other)
Definition: iterative_solver_batch.h:153
daal::algorithms::optimization_solver::iterative_solver::interface2::Batch
Interface for computing the iterative solver in the batch processing mode.
Definition: iterative_solver_batch.h:136
daal::algorithms::optimization_solver::iterative_solver::interface1::Batch
Interface for computing the iterative solver in the batch processing mode.
Definition: iterative_solver_batch.h:52
daal::algorithms::optimization_solver::iterative_solver::interface1::Batch::Batch
Batch(const Batch &other)
Definition: iterative_solver_batch.h:69
daal::algorithms::optimization_solver::iterative_solver::interface2::Batch::clone
services::SharedPtr< Batch > clone() const
Definition: iterative_solver_batch.h:192
daal::algorithms::optimization_solver::iterative_solver::interface1::Batch::clone
services::SharedPtr< Batch > clone() const
Definition: iterative_solver_batch.h:108

For more complete information about compiler optimizations, see our Optimization Notice.