All Classes Namespaces Functions Variables Typedefs Enumerations Pages
fmatvec.h
1 /* Copyright (C) 2003-2005 Martin Förg
2 
3  * This library is free software; you can redistribute it and/or
4  * modify it under the terms of the GNU Lesser General Public
5  * License as published by the Free Software Foundation; either
6  * version 2.1 of the License, or (at your option) any later version.
7  *
8  * This library is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11  * Lesser General Public License for more details.
12  *
13  * You should have received a copy of the GNU Lesser General Public
14  * License along with this library; if not, write to the Free Software
15  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16  *
17  * Contact:
18  * martin.o.foerg@googlemail.com
19  *
20  */
21 
22 #ifndef fmatrixvector_h
23 #define fmatrixvector_h
24 
25 #include "linear_algebra.h"
26 #include "linear_algebra_double.h"
27 
28 namespace fmatvec {
29 
30  class General;
31  class Ref;
32  class Diagonal;
33  class Symmetric;
34  class GeneralBand;
35  class Sparse;
36  class Rotation;
37  class Var;
38  template<int N> class Fixed;
39 
40  template<class Type, class Row, class Col, class AT>
41  class Matrix;
42 
43  template<class Type, class AT>
44  class SquareMatrix;
45 
46  template<class Row, class AT>
47  class Vector;
48 
49  template<class Col, class AT>
50  class RowVector;
51 
58 
65 
72 
79 
86 
93 
100 
102 
103  typedef Vector<Ref, int> VecInt;
104  typedef Vector<Var, int> VecVI;
105 
106  /* Typedefs for Fixed types */
107 
108  //Column Vectors
109  typedef Vector<Fixed<1>, double> Vec1;
110  typedef Vector<Fixed<2>, double> Vec2;
111  typedef Vector<Fixed<2>, int> Vec2I;
112  typedef Vector<Fixed<3>, double> Vec3;
113  typedef Vector<Fixed<4>, double> Vec4;
114 
115  typedef Vector<Fixed<11>, double> Vec11;
116  typedef Vector<Fixed<16>, double> Vec16;
117 
118  //Row Vectors
119  typedef RowVector<Fixed<1>, double> RowVec1;
120  typedef RowVector<Fixed<2>, double> RowVec2;
121  typedef RowVector<Fixed<3>, double> RowVec3;
122  typedef RowVector<Fixed<4>, double> RowVec4;
123 
124  typedef RowVector<Fixed<11>, double> RowVec11;
125  typedef RowVector<Fixed<16>, double> RowVec16;
126 
127  //General Matrices
128  typedef Matrix<General, Fixed<3>, Fixed<3>, double> Mat3x3;
129  typedef Matrix<General, Fixed<3>, Fixed<2>, double> Mat3x2;
130  typedef Matrix<General, Fixed<3>, Fixed<11>, double> Mat3x11;
131  typedef Matrix<General, Fixed<3>, Fixed<16>, double> Mat3x16;
132 
133  typedef Matrix<General, Fixed<4>, Fixed<16>, double> Mat4x16;
134 
135  typedef Matrix<General, Fixed<16>, Fixed<3>, double> Mat16x3;
136  typedef Matrix<General, Fixed<16>, Fixed<4>, double> Mat16x4;
137 
138  //Square Matrices
139  typedef SquareMatrix<Fixed<1>, double> SqrMat1;
140  typedef SquareMatrix<Fixed<2>, double> SqrMat2;
141  typedef SquareMatrix<Fixed<3>, double> SqrMat3;
142  typedef SquareMatrix<Fixed<11>, double> SqrMat11;
143  typedef SquareMatrix<Fixed<16>, double> SqrMat16;
144 
145  //Symmetric Matrices
146  typedef Matrix<Symmetric, Fixed<3>, Fixed<3>, double> SymMat3;
147  typedef Matrix<Symmetric, Fixed<4>, Fixed<4>, double> SymMat4;
148 
150 
152 
154 
156 
157  typedef Vector<Var, double> VecV;
158 
161 
162  //Rotation Matrices
163  typedef Matrix<Rotation, Fixed<3>, Fixed<3>, double> RotMat3;
164 
165  /*Typedefs for mixed size */
166 
167  typedef Matrix<General, Fixed<2>, Var, double> Mat2xV;
169  typedef Matrix<General, Fixed<3>, Var, double> Mat3xV;
170  typedef Matrix<General, Fixed<3>, Var, int> Mat3xVI;
171 
172  typedef Matrix<General, Var, Fixed<2>, double> MatVx2;
173  typedef Matrix<General, Var, Fixed<3>, double> MatVx3;
175 
176  typedef Range<Var,Var> RangeV;
177 
178 }
179 
180 #endif
Definition: fmatvec.h:38
Matrix< Symmetric, Ref, Ref, double > SymMat
Symmetric matrix.
Definition: fmatvec.h:92
Vector< Ref, double > Vec
Vector.
Definition: fmatvec.h:64
This is the basic matrix class for arbitrary matrices.
Definition: fmatvec.h:41
Matrix< Diagonal, Ref, Ref, double > DiagMat
Diagonal matrix.
Definition: fmatvec.h:85
Definition: types.h:65
Definition: fmatvec.h:50
Definition: fmatvec.h:44
Definition: fmatvec.h:47
Matrix< General, Ref, Ref, double > Mat
General matrix.
Definition: fmatvec.h:50
SquareMatrix< Ref, double > SqrMat
Square matrix.
Definition: fmatvec.h:78
Matrix< GeneralBand, Ref, Ref, double > BandMat
Band matrix.
Definition: fmatvec.h:99
RowVector< Ref, double > RowVec
Row vector.
Definition: fmatvec.h:71
This is an index class for creating submatrices.
Definition: range.h:44

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML