The Fib multimedia system
Fib is a system for storing multimedia data (like images or films).
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
cOneAryRangeFunction.h
Go to the documentation of this file.
1 /**
2  * @file cOneAryRangeFunction
3  * file name: cOneAryRangeFunction.h
4  * @author Betti Oesterholz
5  * @date 15.07.2010
6  * @mail webmaster@BioKom.info
7  *
8  * System: C++
9  *
10  * This header specifies a abstract class for a one ary functions.
11  * Copyright (C) @c GPL3 2010 Betti Oesterholz
12  *
13  * This program is free software: you can redistribute it and/or modify
14  * it under the terms of the GNU General Public License (GPL) as
15  * published by the Free Software Foundation, either version 3 of the
16  * License, or any later version.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21  * GNU Lesser General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with this program. If not, see <http://www.gnu.org/licenses/>.
25  *
26  *
27  * This header specifies a abstract class for a one ary functions which
28  * factors lay in an range.
29  *
30  */
31 /*
32 History:
33 15.07.2010 Oesterholz created
34 */
35 
36 #ifndef ___N_D_1_C_ONE_ARY_RANGE_FUNCTION_H__
37 #define ___N_D_1_C_ONE_ARY_RANGE_FUNCTION_H__
38 
39 #include "version.h"
40 
41 #include "nD1.h"
42 #include "cRangeFactor.h"
43 #include "cDataPointRange.h"
44 #include "cLinearConstrainFix.h"
45 
46 #include "cUnderFunction.h"
47 #include "cFibVariable.h"
48 
49 #include <vector>
50 
51 using namespace fib::algorithms::nLinearInequation;
52 using namespace fib;
53 
54 namespace fib{
55 
56 namespace algorithms{
57 
58 namespace nD1{
59 
60 template <class tX, class tY>
62 
63 public:
64 
65  /**
66  * This method prints the given this polynom to the given stream.
67  *
68  * @param outputStream the stream wher to print this polynom to
69  */
70  virtual void print( ostream & outputStream ) const = 0;
71 
72  /**
73  * This functions evalues the ranges for the possible factors for a
74  * polynom which matches the given data vecData.
75  * The returned ranges don't have to include the factors for polynom
76  * which match the data, if ther isn't a possible polynome of the maximal
77  * range given for the data.
78  *
79  * @see evalue()
80  * @param vecData the data which the returend polynom should match
81  * @param uiMaxPolynomOrder the maximal order of the polynom to generate
82  * the factor ranges for
83  * @return ranges in which the factors of a polynom should lay, if
84  * possible (@see evalue()) in this cOneAryRangeFunction
85  */
86  virtual void evalue(
87  const vector< cDataPointRange< tX, tY> > & vecData,
88  unsigned int uiMaxPolynomOrder ) = 0;
89 
90 
91  /**
92  * @return the sum of the ranges of this function
93  */
94  virtual tY getRangeSizeSum() const = 0;
95 
96  /**
97  * @return if the sum of the ranges of this function is 0
98  */
99  virtual bool getRangeSizeSumIsNull() const = 0;
100 
101 };//end class cOneAryRangeFunction
102 };//end namespace nD1
103 };//end namespace algorithms
104 };//end namespace fib
105 
106 
107 
108 #endif //___N_D_1_C_ONE_ARY_RANGE_FUNCTION_H__