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
nLinearEquation.h
Go to the documentation of this file.
1 /**
2  * @file nLinearEquation
3  * file name: nLinearEquation.h
4  * @author Betti Oesterholz
5  * @date 11.06.2010
6  * @mail webmaster@BioKom.info
7  *
8  * System: C++
9  *
10  * This header specifies functions for linear inequiation.
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 functions for linear inequiation.
28  */
29 /*
30 History:
31 11.06.2010 Oesterholz created
32 */
33 
34 #ifndef ___N_LINEAR_EQUATION_H__
35 #define ___N_LINEAR_EQUATION_H__
36 
37 #include "version.h"
38 
39 #include "cLinearEquation.h"
40 
41 #include <vector>
42 #include <ostream>
43 
44 namespace fib{
45 
46 namespace algorithms{
47 
48 namespace nLinearEquation{
49 
50 
51  /**
52  * This functions converts the given vector of equation into a diagonal
53  * form. In this form ther exsists only one factor in the liniar formular
54  * (@see cLinearEquation::vecFactors) in every equation. For the
55  * first n equation this factor is the n'th factor. For the remaining
56  * equation, this factor is the last factor. (n is the number of
57  * factors @see cLinearEquation::vecFactors.size())
58  * The convertion is done by multiplying equation with a number
59  * (@see cLinearEquation::mult()) or adding two equation of the
60  * vector of equations (@see cLinearEquation::operator+()).
61  *
62  * @param vecOfEquations a reference to the vector of equation, which
63  * to convert into the diagonal form (this is changed)
64  * @return a pointer to the converted vector of equations
65  */
66  template <class tFactors>
67  vector< cLinearEquation<tFactors> > & crateDiagonalForm(
68  vector< cLinearEquation<tFactors> > & vecOfEquations );
69 
70  /**
71  * This function prints the given inequiations.
72  * It simply calls @see cPolyConstrainFix::print() for all given
73  * inequiations.
74  *
75  * @param vecOfInequations a vector with the inequiations to output
76  * @param outputStream a stream, wher to print the inequiations to
77  */
78  template <class tFactors> void printEquations(
79  vector< cLinearEquation<tFactors> > vecOfInequations,
80  ostream & outputStream );
81 
82 
83 
84 };//end namespace nLinearEquation
85 };//end namespace algorithms
86 };//end namespace fib
87 
88 //include template implementation
89 #include "../src/nLinearEquation.cpp"
90 
91 
92 #endif //___N_LINEAR_EQUATION_H__