fmatvec  0.0.0
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
28namespace fmatvec {
29
30 class General;
31 class Ref;
32 class Diagonal;
33 class Symmetric;
34 class GeneralBand;
35 class Sparse;
36 class SymmetricSparse;
37 class Rotation;
38 class Var;
39 template<int N> class Fixed;
40
41 template<class Type, class Row, class Col, class AT>
42 class Matrix;
43
44 template<class Type, class AT>
45 class SquareMatrix;
46
47 template<class Row, class AT>
48 class Vector;
49
50 template<class Col, class AT>
51 class RowVector;
52
59
66
73
80
87
94
101
103
105
106 using VecInt = Vector<Ref, int>;
107 using VecVI = Vector<Var, int>;
108
109 /* Typedefs for Fixed types */
110
111 //Column Vectors
112 using Vec1 = Vector<Fixed<1>, double>;
113 using Vec2 = Vector<Fixed<2>, double>;
114 using Vec2I = Vector<Fixed<2>, int>;
115 using Vec3 = Vector<Fixed<3>, double>;
116 using Vec4 = Vector<Fixed<4>, double>;
117
118 using Vec11 = Vector<Fixed<11>, double>;
119 using Vec16 = Vector<Fixed<16>, double>;
120
121 //Row Vectors
122 using RowVec1 = RowVector<Fixed<1>, double>;
123 using RowVec2 = RowVector<Fixed<2>, double>;
124 using RowVec3 = RowVector<Fixed<3>, double>;
125 using RowVec4 = RowVector<Fixed<4>, double>;
126
127 using RowVec11 = RowVector<Fixed<11>, double>;
128 using RowVec16 = RowVector<Fixed<16>, double>;
129
130 //General Matrices
131 using Mat3x3 = Matrix<General, Fixed<3>, Fixed<3>, double>;
132 using Mat3x2 = Matrix<General, Fixed<3>, Fixed<2>, double>;
135
137
140
141 //Square Matrices
142 using SqrMat1 = SquareMatrix<Fixed<1>, double>;
143 using SqrMat2 = SquareMatrix<Fixed<2>, double>;
144 using SqrMat3 = SquareMatrix<Fixed<3>, double>;
145 using SqrMat11 = SquareMatrix<Fixed<11>, double>;
146 using SqrMat16 = SquareMatrix<Fixed<16>, double>;
147
148 //Symmetric Matrices
151
153
155
157
159
161
164
165 //Rotation Matrices
167
168 /*Typedefs for mixed size */
169
170 using Mat2xV = Matrix<General, Fixed<2>, Var, double>;
172 using Mat3xV = Matrix<General, Fixed<3>, Var, double>;
173 using Mat3xVI = Matrix<General, Fixed<3>, Var, int>;
174
175 using MatVx2 = Matrix<General, Var, Fixed<2>, double>;
176 using MatVx3 = Matrix<General, Var, Fixed<3>, double>;
178
179 using RangeV = Range<Var, Var>;
180
181}
182
183#endif
Definition: types.h:108
This is the basic matrix class for arbitrary matrices.
Definition: matrix.h:52
This is an index class for creating submatrices.
Definition: range.h:44
Definition: matrix.h:170
Definition: matrix.h:164
Definition: types.h:105
Definition: matrix.h:167
Namespace fmatvec.
Definition: _memory.cc:28