DGtal
0.6.devel
Main Page
Related Pages
Modules
Namespaces
Data Structures
Examples
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
src
DGtal
kernel
SimpleMatrixSpecializations.h
1
17
#pragma once
18
31
#if defined(SimpleMatrixSpecializations_RECURSES)
32
#error Recursive header files inclusion detected in SimpleMatrixSpecializations.h
33
#else // defined(SimpleMatrixSpecializations_RECURSES)
34
35
#define SimpleMatrixSpecializations_RECURSES
36
37
#if !defined SimpleMatrixSpecializations_h
38
39
#define SimpleMatrixSpecializations_h
40
42
// Inclusions
43
#include <iostream>
44
#include "DGtal/base/Common.h"
45
#include "DGtal/kernel/SimpleMatrix.h"
46
#include "DGtal/kernel/NumberTraits.h"
48
49
namespace
DGtal
50
{
51
52
54
// template class SimpleMatrixSpecializations
67
template
<
typename
TMatrix, DGtal::Dimension TM, DGtal::Dimension TN>
68
struct
SimpleMatrixSpecializations
69
{
70
// ----------------------- Standard services ------------------------------
71
73
typedef
typename
TMatrix::Component
Component
;
75
typedef
TMatrix
Matrix
;
76
77
BOOST_STATIC_ASSERT
( TM == TMatrix::M );
78
BOOST_STATIC_ASSERT
( TN == TMatrix::N );
79
88
static
Component
minorDeterminant
(
const
Matrix
&M,
89
const
DGtal::Dimension
i,
90
const
DGtal::Dimension
j);
91
99
static
Component
determinant
(
const
Matrix
&M);
100
101
102
};
// end of class SimpleMatrixSpecializations
103
105
// template class SimpleMatrixSpecializations
110
template
<
typename
TMatrix>
111
struct
SimpleMatrixSpecializations
<TMatrix,2,2>
112
{
113
// ----------------------- Standard services ------------------------------
114
public
:
115
116
typedef
typename
TMatrix::Component
Component
;
117
typedef
TMatrix
Matrix
;
118
119
BOOST_STATIC_ASSERT
( 2 == TMatrix::M );
120
BOOST_STATIC_ASSERT
( 2 == TMatrix::N );
121
130
static
Component
minorDeterminant
(
const
Matrix
&aM,
131
const
DGtal::Dimension
i,
132
const
DGtal::Dimension
j);
133
141
static
Component
determinant
(
const
Matrix
&aM);
142
143
144
};
// end of class SimpleMatrixSpecializations
146
// template class SimpleMatrixSpecializations
151
template
<
typename
TMatrix>
152
struct
SimpleMatrixSpecializations
<TMatrix,1,1>
153
{
154
// ----------------------- Standard services ------------------------------
155
public
:
156
157
typedef
typename
TMatrix::Component
Component
;
158
typedef
TMatrix
Matrix
;
159
160
BOOST_STATIC_ASSERT
( 1 == TMatrix::M );
161
BOOST_STATIC_ASSERT
( 1 == TMatrix::N );
162
171
static
Component
minorDeterminant
(
const
Matrix
&aM,
172
const
DGtal::Dimension
i,
173
const
DGtal::Dimension
j);
174
182
static
Component
determinant
(
const
Matrix
&aM);
183
184
185
};
// end of class SimpleMatrixSpecializations
186
188
// template class SimpleMatrixSpecializations
193
template
<
typename
TMatrix>
194
struct
SimpleMatrixSpecializations
<TMatrix,3,3>
195
{
196
// ----------------------- Standard services ------------------------------
197
public
:
198
199
typedef
typename
TMatrix::Component
Component
;
200
typedef
TMatrix
Matrix
;
201
202
BOOST_STATIC_ASSERT
( 3 == TMatrix::M );
203
BOOST_STATIC_ASSERT
( 3 == TMatrix::N );
204
213
static
Component
minorDeterminant
(
const
Matrix
&M,
214
const
DGtal::Dimension
i,
215
const
DGtal::Dimension
j);
216
224
static
Component
determinant
(
const
Matrix
&M);
225
226
227
};
// end of class SimpleMatrixSpecializations
228
229
}
// namespace DGtal
230
231
233
// Includes inline functions.
234
#include "DGtal/kernel/SimpleMatrixSpecializations.ih"
235
236
// //
238
239
#endif // !defined SimpleMatrixSpecializations_h
240
241
#undef SimpleMatrixSpecializations_RECURSES
242
#endif // else defined(SimpleMatrixSpecializations_RECURSES)
Generated on Wed Dec 19 2012 19:10:35 for DGtal by
1.8.1.1