Bayesian Filtering Library Generated from SVN r
sample.h
1// $Id$
2// Copyright (C) 2002 Klaas Gadeyne <first dot last at gmail dot com>
3 /***************************************************************************
4 * This library is free software; you can redistribute it and/or *
5 * modify it under the terms of the GNU General Public *
6 * License as published by the Free Software Foundation; *
7 * version 2 of the License. *
8 * *
9 * As a special exception, you may use this file as part of a free *
10 * software library without restriction. Specifically, if other files *
11 * instantiate templates or use macros or inline functions from this *
12 * file, or you compile this file and link it with other files to *
13 * produce an executable, this file does not by itself cause the *
14 * resulting executable to be covered by the GNU General Public *
15 * License. This exception does not however invalidate any other *
16 * reasons why the executable file might be covered by the GNU General *
17 * Public License. *
18 * *
19 * This library is distributed in the hope that it will be useful, *
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
22 * Lesser General Public License for more details. *
23 * *
24 * You should have received a copy of the GNU General Public *
25 * License along with this library; if not, write to the Free Software *
26 * Foundation, Inc., 51 Franklin Street, Fifth Floor, *
27 * Boston, MA 02110-1301 USA *
28 * *
29 ***************************************************************************/
30#ifndef SAMPLE_H
31#define SAMPLE_H
32
33// Adjust this to absolute path!
34// Using <> makes that the g++ standard implementation of vector is chosen!
35#include "../bfl_err.h"
36#include "../wrappers/matrix/vector_wrapper.h"
37#include "../wrappers/matrix/matrix_wrapper.h"
38#include <iostream>
39
40namespace BFL
41{
42 using namespace std;
43
47 template <typename T> class Sample
48 {
49 protected:
52
53 public:
55
59 Sample (unsigned int dimension = 0);
60
62 virtual ~Sample();
63
65 Sample ( const Sample<T> & my_sample );
66
68 T& ValueGet ( ) ;
69
71 const T& ValueGet ( ) const;
72
73 // dimension get
74 unsigned int DimensionGet () const;
75
76 // dimension set
77 void DimensionSet (unsigned int dim);
78
80
83 void ValueSet ( const T& value );
84
86
90 template <typename S> friend ostream & operator<< (ostream & stream,
91 Sample<S> & my_sample);
92
93 template <typename S> friend istream & operator>> (istream & stream,
94 Sample<S> & my_sample);
96 Sample & operator= (const Sample & my_sample);
97
98 };
99
100
101
102
103
104
105
106
107 // constructor
108 template <typename T> Sample<T>::Sample (unsigned int dimension)
109 {};
110
111
112 // destructor
113 template <typename T> Sample<T>::~Sample( )
114 {};
115
116
117 // copy constructor
118 template <typename T> Sample<T>::Sample ( const Sample & my_sample )
119 {
120 Value = my_sample.ValueGet();
121 }
122
123
124 // set value
125 template <typename T> void Sample<T>::ValueSet (const T& value)
126 {
127 Value = value;
128 }
129
130
131 // get value
132 template <typename T> T& Sample<T>::ValueGet ( )
133 {
134 return Value;
135 }
136
137
138 // get value
139 template <typename T> const T& Sample<T>::ValueGet ( ) const
140 {
141 return Value;
142 }
143
144 // get dimension
145 template <typename T> unsigned int Sample<T>::DimensionGet ( ) const
146 {
147 return 0;
148 }
149
150 // set dimension
151 template <typename T> void Sample<T>::DimensionSet (unsigned int dim)
152 {}
153
154 // stream
155 template <typename S> ostream & operator<< (ostream & stream, Sample<S> & my_sample)
156 {
157 stream << my_sample.ValueGet() << endl;
158 return stream;
159 }
160
161 template <typename S> istream & operator>> (istream & stream, Sample<S> & my_sample)
162 {
163 S value;
164 stream >> value;
165 my_sample.ValueSet(value);
166 return stream;
167 }
168
169 // operator =
170 template <typename T> Sample<T> & Sample<T>::operator= ( const Sample<T> & my_sample)
171 {
172 Value = my_sample.ValueGet();
173 return *this;
174 }
175
176
177
178} // End namespace BFL
179
180#include "sample.cpp"
181
182#endif
Sample(const Sample< T > &my_sample)
Copy Constructor.
Sample & operator=(const Sample &my_sample)
Operator =.
Definition sample.h:170
friend ostream & operator<<(ostream &stream, Sample< S > &my_sample)
Print a sample.
Definition sample.h:155
Sample(unsigned int dimension=0)
Constructor.
Definition sample.h:108
virtual ~Sample()
Destructor.
Definition sample.h:113
const T & ValueGet() const
Get the value of the Sample.
Definition sample.h:139
void ValueSet(const T &value)
Set the value of the Sample.
Definition sample.h:125
T Value
The Sample Value.
Definition sample.h:51
T & ValueGet()
Get the value of the Sample.
Definition sample.h:132