C++ API Reference for Intel® Data Analytics Acceleration Library 2020 Update 1

linear_regression_single_beta_types.h
1 /* file: linear_regression_single_beta_types.h */
2 /*******************************************************************************
3 * Copyright 2014-2020 Intel Corporation
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *******************************************************************************/
17 
18 /*
19 //++
20 // Interface for the linear regression algorithm quality metrics for a single beta coefficient
21 //--
22 */
23 
24 #ifndef __LINEAR_REGRESSION_SINGLE_BETA_TYPES_H__
25 #define __LINEAR_REGRESSION_SINGLE_BETA_TYPES_H__
26 
27 #include "services/daal_shared_ptr.h"
28 #include "algorithms/algorithm.h"
29 #include "algorithms/linear_regression/linear_regression_model.h"
30 #include "data_management/data/homogen_numeric_table.h"
31 
32 namespace daal
33 {
34 namespace algorithms
35 {
36 namespace linear_regression
37 {
38 namespace quality_metric
39 {
46 namespace single_beta
47 {
48 
53 enum Method
54 {
55  defaultDense = 0
56 };
57 
62 enum DataInputId
63 {
64  expectedResponses,
65  predictedResponses,
66  lastDataInputId = predictedResponses
67 };
68 
73 enum ModelInputId
74 {
75  model = lastDataInputId + 1,
76  lastModelInputId = model
77 };
78 
83 enum ResultId
84 {
85  rms,
86  variance,
87  zScore,
88  confidenceIntervals,
89  inverseOfXtX,
90  lastResultId = inverseOfXtX
91 };
92 
97 enum ResultDataCollectionId
98 {
99  betaCovariances = lastResultId + 1,
100  lastResultDataCollectionId = betaCovariances
101 };
102 
106 namespace interface1
107 {
108 
115 /* [Parameter source code] */
116 struct DAAL_EXPORT Parameter: public daal::algorithms::Parameter
117 {
118  Parameter(double alphaVal = 0.05, double accuracyVal = 0.001);
119  virtual ~Parameter() {}
120 
121  double alpha;
122  double accuracyThreshold;
128  virtual services::Status check() const;
129 };
130 /* [Parameter source code] */
131 
136 class DAAL_EXPORT Input: public daal::algorithms::Input
137 {
138 public:
139  DAAL_CAST_OPERATOR(Input);
140  DAAL_DOWN_CAST_OPERATOR(Input, daal::algorithms::Input);
141 
143  Input();
144 
145  virtual ~Input() {}
146 
152  data_management::NumericTablePtr get(DataInputId id) const;
153 
159  void set(DataInputId id, const data_management::NumericTablePtr &value);
160 
166  linear_regression::ModelPtr get(ModelInputId id) const;
167 
173  void set(ModelInputId id, const linear_regression::ModelPtr &value);
174 
182  services::Status check(const daal::algorithms::Parameter *par, int method) const DAAL_C11_OVERRIDE;
183 };
184 typedef services::SharedPtr<Input> InputPtr;
185 
190 class DAAL_EXPORT Result: public daal::algorithms::Result
191 {
192 public:
193  DAAL_CAST_OPERATOR(Result);
194  DAAL_DOWN_CAST_OPERATOR(Result, daal::algorithms::Result);
195 
196  Result();
197 
203  data_management::NumericTablePtr get(ResultId id) const;
204 
210  void set(ResultId id, const data_management::NumericTablePtr &value);
211 
217  data_management::DataCollectionPtr get(ResultDataCollectionId id) const;
218 
225  data_management::NumericTablePtr get(ResultDataCollectionId id, size_t index) const;
226 
232  void set(ResultDataCollectionId id, const data_management::DataCollectionPtr &value);
233 
242  template <typename algorithmFPType>
243  DAAL_EXPORT services::Status allocate(const daal::algorithms::Input *input, const daal::algorithms::Parameter *par, const int method);
244 
253  services::Status check(const daal::algorithms::Input *input, const daal::algorithms::Parameter *par, int method) const DAAL_C11_OVERRIDE;
254 
258  int getSerializationTag() const DAAL_C11_OVERRIDE { return SERIALIZATION_LINEAR_REGRESSION_SINGLE_BETA_RESULT_ID; }
259 
260 protected:
262  template<typename Archive, bool onDeserialize>
263  services::Status serialImpl(Archive *arch)
264  {
265  daal::algorithms::Result::serialImpl<Archive, onDeserialize>(arch);
266 
267  return services::Status();
268  }
269 
270  services::Status serializeImpl(data_management::InputDataArchive *arch) DAAL_C11_OVERRIDE
271  {
272  serialImpl<data_management::InputDataArchive, false>(arch);
273 
274  return services::Status();
275  }
276 
277  services::Status deserializeImpl(const data_management::OutputDataArchive *arch) DAAL_C11_OVERRIDE
278  {
279  serialImpl<const data_management::OutputDataArchive, true>(arch);
280 
281  return services::Status();
282  }
283 };
284 typedef services::SharedPtr<Result> ResultPtr;
285 
286 }
287 using interface1::Parameter;
288 using interface1::Result;
289 using interface1::ResultPtr;
290 using interface1::Input;
291 using interface1::InputPtr;
292 
293 }
295 }
296 }
297 }
298 }
299 
300 #endif // __LINEAR_REGRESSION_SINGLE_BETA_TYPES_H__
daal::algorithms::linear_regression::quality_metric::single_beta::interface1::Parameter::alpha
double alpha
Definition: linear_regression_single_beta_types.h:121
daal::algorithms::linear_regression::quality_metric::single_beta::rms
Definition: linear_regression_single_beta_types.h:85
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:116
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:62
daal::algorithms::linear_regression::quality_metric::single_beta::predictedResponses
Definition: linear_regression_single_beta_types.h:65
daal::algorithms::linear_regression::quality_metric::single_beta::zScore
Definition: linear_regression_single_beta_types.h:87
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:190
daal::algorithms::linear_regression::quality_metric::single_beta::inverseOfXtX
Definition: linear_regression_single_beta_types.h:89
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:97
daal::algorithms::linear_regression::quality_metric::single_beta::expectedResponses
Definition: linear_regression_single_beta_types.h:64
daal::algorithms::linear_regression::quality_metric::single_beta::confidenceIntervals
Definition: linear_regression_single_beta_types.h:88
daal::algorithms::linear_regression::quality_metric::single_beta::betaCovariances
Definition: linear_regression_single_beta_types.h:99
daal::algorithms::linear_regression::quality_metric::single_beta::interface1::Input
Input objects for single beta quality metrics
Definition: linear_regression_single_beta_types.h:136
daal::algorithms::linear_regression::quality_metric::single_beta::defaultDense
Definition: linear_regression_single_beta_types.h:55
daal::algorithms::linear_regression::quality_metric::single_beta::interface1::Result::getSerializationTag
int getSerializationTag() const DAAL_C11_OVERRIDE
Definition: linear_regression_single_beta_types.h:258
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:83
daal::algorithms::linear_regression::quality_metric::single_beta::Method
Method
Definition: linear_regression_single_beta_types.h:53
daal::algorithms::math::abs::value
Definition: abs_types.h:88
daal::algorithms::linear_regression::quality_metric::single_beta::model
Definition: linear_regression_single_beta_types.h:75
daal::algorithms::linear_regression::quality_metric::single_beta::variance
Definition: linear_regression_single_beta_types.h:86
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:73
daal::algorithms::linear_regression::quality_metric::single_beta::interface1::Parameter::accuracyThreshold
double accuracyThreshold
Definition: linear_regression_single_beta_types.h:122

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