SHOGUN  v3.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GNPPLib.h
Go to the documentation of this file.
1 /*-----------------------------------------------------------------------
2  *
3  * This program is free software; you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License as published by
5  * the Free Software Foundation; either version 3 of the License, or
6  * (at your option) any later version.
7  *
8  * Library of solvers for Generalized Nearest Point Problem (GNPP).
9  *
10  * Written (W) 1999-2008 Vojtech Franc, xfrancv@cmp.felk.cvut.cz
11  * Copyright (C) 1999-2008 Center for Machine Perception, CTU FEL Prague
12  *
13 -------------------------------------------------------------------- */
14 
15 #ifndef GNPPLIB_H__
16 #define GNPPLIB_H__
17 
18 #include <math.h>
19 #include <limits.h>
20 
21 #include <shogun/base/SGObject.h>
22 #include <shogun/io/SGIO.h>
23 #include <shogun/lib/common.h>
24 #include <shogun/kernel/Kernel.h>
25 
26 namespace shogun
27 {
31 class CGNPPLib: public CSGObject
32 {
33  public:
35  CGNPPLib();
36 
44  CGNPPLib(float64_t* vector_y, CKernel* kernel, int32_t num_data, float64_t reg_const);
45  virtual ~CGNPPLib();
46 
53  int8_t gnpp_mdm(float64_t *diag_H,
54  float64_t *vector_c,
55  float64_t *vector_y,
56  int32_t dim,
57  int32_t tmax,
58  float64_t tolabs,
59  float64_t tolrel,
60  float64_t th,
61  float64_t *alpha,
62  int32_t *ptr_t,
63  float64_t *ptr_aHa11,
64  float64_t *ptr_aHa22,
65  float64_t **ptr_History,
66  int32_t verb);
67 
74  int8_t gnpp_imdm(float64_t *diag_H,
75  float64_t *vector_c,
76  float64_t *vector_y,
77  int32_t dim,
78  int32_t tmax,
79  float64_t tolabs,
80  float64_t tolrel,
81  float64_t th,
82  float64_t *alpha,
83  int32_t *ptr_t,
84  float64_t *ptr_aHa11,
85  float64_t *ptr_aHa22,
86  float64_t **ptr_History,
87  int32_t verb);
88 
90  virtual const char* get_name() const { return "GNPPLib"; }
91 
92  protected:
99  float64_t* get_col(int64_t a, int64_t b);
100 
108  int64_t Cache_Size;
110  int32_t m_num_data;
117 
118 };
119 }
120 #endif // GNPPLIB_H__

SHOGUN Machine Learning Toolbox - Documentation