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

linear_regression_single_beta_types.h
1 /* file: linear_regression_single_beta_types.h */
2 /*******************************************************************************
3 * Copyright 2014-2018 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 // Interface for the linear regression algorithm quality metrics for a single beta coefficient
19 //--
20 */
21 
22 #ifndef __LINEAR_REGRESSION_SINGLE_BETA_TYPES_H__
23 #define __LINEAR_REGRESSION_SINGLE_BETA_TYPES_H__
24 
25 #include "services/daal_shared_ptr.h"
26 #include "algorithms/algorithm.h"
27 #include "algorithms/linear_regression/linear_regression_model.h"
28 #include "data_management/data/homogen_numeric_table.h"
29 
30 namespace daal
31 {
32 namespace algorithms
33 {
34 namespace linear_regression
35 {
36 namespace quality_metric
37 {
44 namespace single_beta
45 {
46 
51 enum Method
52 {
53  defaultDense = 0
54 };
55 
60 enum DataInputId
61 {
62  expectedResponses,
63  predictedResponses,
64  lastDataInputId = predictedResponses
65 };
66 
71 enum ModelInputId
72 {
73  model = lastDataInputId + 1,
74  lastModelInputId = model
75 };
76 
81 enum ResultId
82 {
83  rms,
84  variance,
85  zScore,
86  confidenceIntervals,
87  inverseOfXtX,
88  lastResultId = inverseOfXtX
89 };
90 
95 enum ResultDataCollectionId
96 {
97  betaCovariances = lastResultId + 1,
98  lastResultDataCollectionId = betaCovariances
99 };
100 
104 namespace interface1
105 {
106 
113 /* [Parameter source code] */
114 struct DAAL_EXPORT Parameter: public daal::algorithms::Parameter
115 {
116  Parameter(double alphaVal = 0.05, double accuracyVal = 0.001);
117  virtual ~Parameter() {}
118 
119  double alpha;
120  double accuracyThreshold;
126  virtual services::Status check() const;
127 };
128 /* [Parameter source code] */
129 
134 class DAAL_EXPORT Input: public daal::algorithms::Input
135 {
136 public:
137  DAAL_CAST_OPERATOR(Input);
138  DAAL_DOWN_CAST_OPERATOR(Input, daal::algorithms::Input);
139 
141  Input();
142 
143  virtual ~Input() {}
144 
150  data_management::NumericTablePtr get(DataInputId id) const;
151 
157  void set(DataInputId id, const data_management::NumericTablePtr &value);
158 
164  linear_regression::ModelPtr get(ModelInputId id) const;
165 
171  void set(ModelInputId id, const linear_regression::ModelPtr &value);
172 
180  services::Status check(const daal::algorithms::Parameter *par, int method) const DAAL_C11_OVERRIDE;
181 };
182 typedef services::SharedPtr<Input> InputPtr;
183 
188 class DAAL_EXPORT Result: public daal::algorithms::Result
189 {
190 public:
191  DAAL_CAST_OPERATOR(Result);
192  DAAL_DOWN_CAST_OPERATOR(Result, daal::algorithms::Result);
193 
194  Result();
195 
201  data_management::NumericTablePtr get(ResultId id) const;
202 
208  void set(ResultId id, const data_management::NumericTablePtr &value);
209 
215  data_management::DataCollectionPtr get(ResultDataCollectionId id) const;
216 
223  data_management::NumericTablePtr get(ResultDataCollectionId id, size_t index) const;
224 
230  void set(ResultDataCollectionId id, const data_management::DataCollectionPtr &value);
231 
240  template <typename algorithmFPType>
241  DAAL_EXPORT services::Status allocate(const daal::algorithms::Input *input, const daal::algorithms::Parameter *par, const int method);
242 
251  services::Status check(const daal::algorithms::Input *input, const daal::algorithms::Parameter *par, int method) const DAAL_C11_OVERRIDE;
252 
256  int getSerializationTag() const DAAL_C11_OVERRIDE { return SERIALIZATION_LINEAR_REGRESSION_SINGLE_BETA_RESULT_ID; }
257 
258 protected:
260  template<typename Archive, bool onDeserialize>
261  services::Status serialImpl(Archive *arch)
262  {
263  daal::algorithms::Result::serialImpl<Archive, onDeserialize>(arch);
264 
265  return services::Status();
266  }
267 
268  services::Status serializeImpl(data_management::InputDataArchive *arch) DAAL_C11_OVERRIDE
269  {
270  serialImpl<data_management::InputDataArchive, false>(arch);
271 
272  return services::Status();
273  }
274 
275  services::Status deserializeImpl(const data_management::OutputDataArchive *arch) DAAL_C11_OVERRIDE
276  {
277  serialImpl<const data_management::OutputDataArchive, true>(arch);
278 
279  return services::Status();
280  }
281 };
282 typedef services::SharedPtr<Result> ResultPtr;
283 
284 }
285 using interface1::Parameter;
286 using interface1::Result;
287 using interface1::ResultPtr;
288 using interface1::Input;
289 using interface1::InputPtr;
290 
291 }
293 }
294 }
295 }
296 }
297 
298 #endif // __LINEAR_REGRESSION_SINGLE_BETA_TYPES_H__
daal::algorithms::linear_regression::quality_metric::single_beta::zScore
Definition: linear_regression_single_beta_types.h:85
daal::algorithms::linear_regression::quality_metric::single_beta::ResultDataCollectionId
ResultDataCollectionId
Available identifiers of the result of single beta quality metrics.
Definition: linear_regression_single_beta_types.h:95
daal
Definition: algorithm_base_common.h:31
daal::algorithms::linear_regression::quality_metric::single_beta::DataInputId
DataInputId
Available identifiers of input objects for a single beta quality metrics.
Definition: linear_regression_single_beta_types.h:60
daal::algorithms::linear_regression::quality_metric::single_beta::model
Definition: linear_regression_single_beta_types.h:73
daal::algorithms::linear_regression::quality_metric::single_beta::interface1::Result::getSerializationTag
int getSerializationTag() const DAAL_C11_OVERRIDE
Definition: linear_regression_single_beta_types.h:256
daal::algorithms::linear_regression::quality_metric::single_beta::ModelInputId
ModelInputId
Available identifiers of input objects for single beta quality metrics.
Definition: linear_regression_single_beta_types.h:71
daal::algorithms::linear_regression::quality_metric::single_beta::variance
Definition: linear_regression_single_beta_types.h:84
daal::algorithms::linear_regression::quality_metric::single_beta::ResultId
ResultId
Available identifiers of the result of single beta quality metrics.
Definition: linear_regression_single_beta_types.h:81
daal::algorithms::linear_regression::quality_metric::single_beta::confidenceIntervals
Definition: linear_regression_single_beta_types.h:86
daal::algorithms::linear_regression::quality_metric::single_beta::Method
Method
Definition: linear_regression_single_beta_types.h:51
daal::algorithms::linear_regression::quality_metric::single_beta::rms
Definition: linear_regression_single_beta_types.h:83
daal::algorithms::linear_regression::quality_metric::single_beta::interface1::Parameter::alpha
double alpha
Definition: linear_regression_single_beta_types.h:119
daal::algorithms::linear_regression::quality_metric::single_beta::expectedResponses
Definition: linear_regression_single_beta_types.h:62
daal::algorithms::linear_regression::quality_metric::single_beta::interface1::Input
Input objects for single beta quality metrics
Definition: linear_regression_single_beta_types.h:134
daal::algorithms::math::abs::value
Definition: abs_types.h:86
daal::algorithms::linear_regression::quality_metric::single_beta::interface1::Parameter
Parameters for the compute() method of single beta quality metrics.
Definition: linear_regression_single_beta_types.h:114
daal::algorithms::linear_regression::quality_metric::single_beta::interface1::Parameter::accuracyThreshold
double accuracyThreshold
Definition: linear_regression_single_beta_types.h:120
daal::algorithms::linear_regression::quality_metric::single_beta::interface1::Result
Provides interface for the result of linear regression quality metrics.
Definition: linear_regression_single_beta_types.h:188
daal::algorithms::linear_regression::quality_metric::single_beta::defaultDense
Definition: linear_regression_single_beta_types.h:53
daal::algorithms::linear_regression::quality_metric::single_beta::betaCovariances
Definition: linear_regression_single_beta_types.h:97
daal::algorithms::linear_regression::quality_metric::single_beta::predictedResponses
Definition: linear_regression_single_beta_types.h:63
daal::algorithms::linear_regression::quality_metric::single_beta::inverseOfXtX
Definition: linear_regression_single_beta_types.h:87

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