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

outlier_detection_multivariate_types.h
1 /* file: outlier_detection_multivariate_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 // Outlier Detection algorithm parameter structure
21 //--
22 */
23 
24 #ifndef __OUTLIERDETECTION_MULTIVARIATE_TYPES_H__
25 #define __OUTLIERDETECTION_MULTIVARIATE_TYPES_H__
26 
27 #include "algorithms/algorithm.h"
28 #include "data_management/data/homogen_numeric_table.h"
29 
30 namespace daal
31 {
32 namespace algorithms
33 {
43 namespace multivariate_outlier_detection
44 {
49 enum Method
50 {
51  defaultDense = 0,
52  baconDense = 1
54 };
55 
61 enum BaconInitializationMethod
62 {
63  baconMedian = 0,
64  baconMahalanobis = 1
65 };
66 
71 enum InputId
72 {
73  data ,
74  location ,
75  scatter ,
76  threshold ,
77  lastInputId = threshold
78 };
79 
80 
85 enum ResultId
86 {
87  weights,
88  lastResultId = weights
89 };
90 
94 namespace interface1
95 {
100 struct InitIface
101 {
109  virtual void operator()(data_management::NumericTable *data,
110  data_management::NumericTable *location,
111  data_management::NumericTable *scatter,
112  data_management::NumericTable *threshold) = 0;
113 
114  virtual ~InitIface() {}
115 };
116 
121 struct DAAL_EXPORT DefaultInit : public InitIface
122 {
130  virtual void operator()(data_management::NumericTable *data,
131  data_management::NumericTable *location,
132  data_management::NumericTable *scatter,
133  data_management::NumericTable *threshold) {}
134 };
135 
139 template <Method method>
140 struct Parameter : public daal::algorithms::Parameter
141 {};
142 
149 /* [ParameterDefault source code] */
150 template <>
151 struct DAAL_EXPORT Parameter<defaultDense> : public daal::algorithms::Parameter
152 {
153  Parameter() {}
154  services::SharedPtr<InitIface> initializationProcedure;
156  virtual services::Status check() const DAAL_C11_OVERRIDE {return services::Status();}
157 };
158 /* [ParameterDefault source code] */
159 
167 /* [ParameterBacon source code] */
168 template <>
169 struct DAAL_EXPORT Parameter<baconDense> : public daal::algorithms::Parameter
170 {
171  Parameter(BaconInitializationMethod initMethod = baconMedian,
172  double alpha = 0.05, double toleranceToConverge = 0.005) {}
173 
174  BaconInitializationMethod initMethod;
175  double alpha;
178  double toleranceToConverge;
180  virtual services::Status check() const DAAL_C11_OVERRIDE {return services::Status();}
181 };
182 /* [ParameterBacon source code] */
183 
188 class DAAL_EXPORT Input : public daal::algorithms::Input
189 {
190 public:
191  Input();
192  Input(const Input& other);
193 
194  virtual ~Input() {}
195 
201  data_management::NumericTablePtr get(InputId id) const;
202 
208  void set(InputId id, const data_management::NumericTablePtr &ptr);
209 
217  services::Status check(const daal::algorithms::Parameter *par, int method) const DAAL_C11_OVERRIDE;
218 };
219 
224 class DAAL_EXPORT Result : public daal::algorithms::Result
225 {
226 public:
227  DECLARE_SERIALIZABLE_CAST(Result);
228  Result();
229 
230  virtual ~Result() {};
231 
241  template <typename algorithmFPType>
242  DAAL_EXPORT services::Status allocate(const daal::algorithms::Input *input, const daal::algorithms::Parameter *parameter, const int method);
243 
249  data_management::NumericTablePtr get(ResultId id) const;
250 
256  void set(ResultId id, const data_management::NumericTablePtr &ptr);
257 
266  services::Status check(const daal::algorithms::Input *input, const daal::algorithms::Parameter *par, int method) const DAAL_C11_OVERRIDE;
267 
268 protected:
270  template<typename Archive, bool onDeserialize>
271  services::Status serialImpl(Archive *arch)
272  {
273  return daal::algorithms::Result::serialImpl<Archive, onDeserialize>(arch);
274  }
275 };
276 typedef services::SharedPtr<Result> ResultPtr;
277 
279 } // namespace interface1
280 using interface1::InitIface;
281 using interface1::DefaultInit;
282 using interface1::Parameter;
283 using interface1::Input;
284 using interface1::Result;
285 using interface1::ResultPtr;
286 
287 } // namespace multivariate_outlier_detection
288 } // namespace algorithm
289 } // namespace daal
290 #endif
daal::algorithms::multivariate_outlier_detection::interface1::Parameter< baconDense >::toleranceToConverge
double toleranceToConverge
Definition: outlier_detection_multivariate_types.h:178
daal::algorithms::multivariate_outlier_detection::interface1::Parameter< defaultDense >::initializationProcedure
services::SharedPtr< InitIface > initializationProcedure
Definition: outlier_detection_multivariate_types.h:154
daal::algorithms::multivariate_outlier_detection::interface1::DefaultInit::operator()
virtual void operator()(data_management::NumericTable *data, data_management::NumericTable *location, data_management::NumericTable *scatter, data_management::NumericTable *threshold)
Definition: outlier_detection_multivariate_types.h:130
daal::algorithms::multivariate_outlier_detection::location
Definition: outlier_detection_multivariate_types.h:74
daal::algorithms::multivariate_outlier_detection::baconMahalanobis
Definition: outlier_detection_multivariate_types.h:64
daal::algorithms::multivariate_outlier_detection::weights
Definition: outlier_detection_multivariate_types.h:87
daal::algorithms::multivariate_outlier_detection::interface1::Input
Input objects for the multivariate outlier detection algorithm
Definition: outlier_detection_multivariate_types.h:188
daal::algorithms::multivariate_outlier_detection::threshold
Definition: outlier_detection_multivariate_types.h:76
daal::algorithms::multivariate_outlier_detection::interface1::Parameter< baconDense >::initMethod
BaconInitializationMethod initMethod
Definition: outlier_detection_multivariate_types.h:174
daal::algorithms::multivariate_outlier_detection::defaultDense
Definition: outlier_detection_multivariate_types.h:51
daal::algorithms::multivariate_outlier_detection::interface1::InitIface::operator()
virtual void operator()(data_management::NumericTable *data, data_management::NumericTable *location, data_management::NumericTable *scatter, data_management::NumericTable *threshold)=0
daal::algorithms::multivariate_outlier_detection::baconDense
Definition: outlier_detection_multivariate_types.h:52
daal::algorithms::multivariate_outlier_detection::interface1::Parameter< baconDense >::alpha
double alpha
Definition: outlier_detection_multivariate_types.h:175
daal::algorithms::multivariate_outlier_detection::interface1::Parameter
Definition: outlier_detection_multivariate_types.h:140
daal::algorithms::multivariate_outlier_detection::baconMedian
Definition: outlier_detection_multivariate_types.h:63
daal::algorithms::multivariate_outlier_detection::data
Definition: outlier_detection_multivariate_types.h:73
daal::algorithms::multivariate_outlier_detection::InputId
InputId
Definition: outlier_detection_multivariate_types.h:71
daal::algorithms::multivariate_outlier_detection::BaconInitializationMethod
BaconInitializationMethod
Definition: outlier_detection_multivariate_types.h:61
daal::algorithms::multivariate_outlier_detection::interface1::DefaultInit
Class that specifies the default method for the initialization procedure.
Definition: outlier_detection_multivariate_types.h:121
daal::algorithms::multivariate_outlier_detection::scatter
Definition: outlier_detection_multivariate_types.h:75
daal::algorithms::multivariate_outlier_detection::interface1::Result
Results obtained with the compute() method of the multivariate outlier detection algorithm in the bat...
Definition: outlier_detection_multivariate_types.h:224
daal::algorithms::multivariate_outlier_detection::ResultId
ResultId
Definition: outlier_detection_multivariate_types.h:85
daal::algorithms::multivariate_outlier_detection::interface1::InitIface
Abstract interface class that provides function for the initialization procedure. ...
Definition: outlier_detection_multivariate_types.h:100
daal::algorithms::multivariate_outlier_detection::Method
Method
Definition: outlier_detection_multivariate_types.h:49

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