SiGraph: sulcal graphs


vectorLearnable.h
Go to the documentation of this file.
1
2
3#ifndef SI_LEARNABLE_VECTORLEARNABLE_H
4#define SI_LEARNABLE_VECTORLEARNABLE_H
5
6#include <vector>
9#include <cartobase/type/string_conversion.h>
10
11namespace sigraph
12{
13
15{
16 public:
17 virtual ~VectorLearnable() {};
18
20
21 public:
22 virtual std::vector<double> X() const = 0;
23 virtual std::vector<double> Y() const = 0;
24 virtual std::string INF(unsigned int ind) const = 0;
26
28
29 public:
30 virtual int sizeX() const = 0;
31 virtual int sizeY() const = 0;
32 virtual int sizeINF() const = 0;
33 virtual double getX(unsigned int ind) const = 0;
34 virtual double getY(unsigned int ind) const = 0;
35 virtual char *getINF(unsigned int ind) const = 0;
37};
38
39
41{
42 public:
43 GaussVectorLearnable(std::vector<double> &X, double y);
45
47
48 public:
49 virtual std::vector<double> X() const;
50 virtual std::vector<double> Y() const;
51 virtual std::string INF(unsigned int ind) const;
53
55
56 public:
57 virtual int sizeX() const;
58 virtual int sizeY() const;
59 virtual int sizeINF() const;
60 virtual double getX(unsigned int ind) const;
61 virtual double getY(unsigned int ind) const;
62 virtual double y() const;
63 virtual char *getINF(unsigned int ind) const;
65
66 protected:
67 std::vector<double> _X;
68 double _y;
69};
70
71
73{
74 public:
75 DBVectorLearnable(const DBLearnable *db, unsigned int ind);
76 virtual ~DBVectorLearnable() {};
77
79
80 public:
81 virtual std::vector<double> X() const;
82 virtual std::vector<double> Y() const;
83 virtual std::string INF(unsigned int ind) const;
84 virtual std::string INF(std::string &label) const;
86
88
89 public:
90 virtual int sizeX() const;
91 virtual int sizeY() const;
92 virtual int sizeINF() const;
93 virtual double getX(unsigned int ind) const;
94 virtual double getY(unsigned int ind) const;
95 virtual char *getINF(unsigned int ind) const;
96 virtual char *getINF(std::string &label) const;
98
99 protected:
103 unsigned int _ind;
104};
105
106
109{
110 public:
111 SiVectorLearnable(const DBLearnable *db, unsigned int ind);
112 virtual ~SiVectorLearnable() {};
113
114 int cycle() const;
115 double y() const;
116
117 private:
118 unsigned int _cycle_ind;
119};
120
121
122/******************************************************************************/
123inline int DBVectorLearnable::sizeX() const
124{
125 return _db->getXcolsNumber();
126}
127
128inline int DBVectorLearnable::sizeY() const
129{
130 return _db->getYcolsNumber();
131}
132
134{
135 return _db->getINFcolsNumber();
136}
137
138inline double DBVectorLearnable::getX(unsigned int ind) const
139{
140 double *X = _db->getX();
141 int l = _db->getXcolsNumber();
142 return X[_ind * l + ind]; //ind : column indice.
143}
144
145inline double DBVectorLearnable::getY(unsigned int ind) const
146{
147 double *Y = _db->getY();
148 int l = _db->getYcolsNumber();
149 return Y[_ind * l + ind]; //ind : column indice.
150}
151
152inline char *DBVectorLearnable::getINF(unsigned int ind) const
153{
154 char *INF = _db->getINF();
155 int l = _db->getINFcolsNumber();
156 return INF + (_ind * l * 32 + ind); //ind : column indice.
157}
158
159inline char *DBVectorLearnable::getINF(std::string &label) const
160{
161 int ind = _db->getIndiceFromLabel(label);
162 return getINF(ind);
163}
164
165
166inline int SiVectorLearnable::cycle() const
167{
168 unsigned int d;
169 const std::string cycle_string = INF(_cycle_ind);
170
171 carto::stringTo<unsigned int>(cycle_string, d);
172 return d;
173}
174
175
176/******************************************************************************/
177inline double SiVectorLearnable::y() const
178{
179 return getY(0);
180}
181
182}
183
184#endif
virtual std::string INF(unsigned int ind) const
virtual std::string INF(std::string &label) const
virtual std::vector< double > X() const
Converter.
virtual int sizeY() const
virtual char * getINF(unsigned int ind) const
DBVectorLearnable(const DBLearnable *db, unsigned int ind)
const DBLearnable * _db
db which owned data
virtual int sizeX() const
inline / accessors
unsigned int _ind
indice of vector in database (row indice)
virtual double getY(unsigned int ind) const
virtual int sizeINF() const
virtual double getX(unsigned int ind) const
virtual std::vector< double > Y() const
GaussVectorLearnable(std::vector< double > &X, double y)
virtual std::vector< double > X() const
Converter.
virtual double y() const
virtual int sizeY() const
virtual int sizeINF() const
virtual std::string INF(unsigned int ind) const
virtual char * getINF(unsigned int ind) const
virtual double getX(unsigned int ind) const
virtual double getY(unsigned int ind) const
virtual std::vector< double > Y() const
virtual int sizeX() const
inline / accessors
SiVectorLearnable(const DBLearnable *db, unsigned int ind)
virtual int sizeX() const =0
inline / accessors
virtual int sizeINF() const =0
virtual std::vector< double > X() const =0
Converter.
virtual double getY(unsigned int ind) const =0
virtual std::string INF(unsigned int ind) const =0
virtual double getX(unsigned int ind) const =0
virtual char * getINF(unsigned int ind) const =0
virtual int sizeY() const =0
virtual std::vector< double > Y() const =0
void stringTo< unsigned int >(const std::string &value, unsigned int &result)