cisst-saw
Toggle main menu visibility
Loading...
Searching...
No Matches
tmp
cisst-saw
cisst
cisstNumerical
nmrGaussJordanInverse.h
Go to the documentation of this file.
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
/* ex: set filetype=cpp softtabstop=4 shiftwidth=4 tabstop=4 cindent expandtab: */
3
4
/*
5
6
Author(s): Ofri Sadowsky
7
Created on: 2005-09-23
8
9
(C) Copyright 2005-2007 Johns Hopkins University (JHU), All Rights
10
Reserved.
11
12
--- begin cisst license - do not edit ---
13
14
This software is provided "as is" under an open source license, with
15
no warranty. The complete license can be found in license.txt and
16
http://www.cisst.org/cisst/license.txt.
17
18
--- end cisst license ---
19
*/
20
21
#ifndef _nmrGaussJordanInverse_h
22
#define _nmrGaussJordanInverse_h
23
27
28
#include <
cisstCommon/cmnPortability.h
>
29
#include <
cisstVector/vctForwardDeclarations.h
>
30
31
// Always the last file to include!
32
#include <
cisstNumerical/nmrExport.h
>
33
69
71
72
template
<
class
_elementType,
bool
_rowMajorIn,
bool
_rowMajorOut>
73
CISST_EXPORT
74
void
nmrGaussJordanInverse2x2
(
75
vctFixedSizeMatrix<_elementType, 2, 2, _rowMajorIn>
A,
76
bool
& nonsingular,
77
vctFixedSizeMatrix<_elementType, 2, 2, _rowMajorOut>
& Ainv,
78
const
_elementType singularityTolerance);
79
81
template
<
class
_elementType,
bool
_rowMajorIn,
bool
_rowMajorOut>
82
CISST_EXPORT
83
void
nmrGaussJordanInverse3x3
(
84
vctFixedSizeMatrix<_elementType, 3, 3, _rowMajorIn>
A,
85
bool
& nonsingular,
86
vctFixedSizeMatrix<_elementType, 3, 3, _rowMajorOut>
& Ainv,
87
const
_elementType singularityTolerance);
88
90
template
<
class
_elementType,
bool
_rowMajorIn,
bool
_rowMajorOut>
91
CISST_EXPORT
92
void
nmrGaussJordanInverse4x4
(
93
vctFixedSizeMatrix<_elementType, 4, 4, _rowMajorIn>
A,
94
bool
& nonsingular,
95
vctFixedSizeMatrix<_elementType, 4, 4, _rowMajorOut>
& Ainv,
96
const
_elementType singularityTolerance);
98
99
100
#ifndef DOXYGEN
101
#ifdef CISST_COMPILER_IS_MSVC
102
// --- double 2x2 ---
103
template
CISST_EXPORT
void
104
nmrGaussJordanInverse2x2
(
vctFixedSizeMatrix<double, 2, 2, VCT_ROW_MAJOR>
,
bool
&,
105
vctFixedSizeMatrix<double, 2, 2, VCT_ROW_MAJOR>
&,
106
const
double
);
107
template
CISST_EXPORT
void
108
nmrGaussJordanInverse2x2
(
vctFixedSizeMatrix<double, 2, 2, VCT_ROW_MAJOR>
,
bool
&,
109
vctFixedSizeMatrix<double, 2, 2, VCT_COL_MAJOR>
&,
110
const
double
);
111
template
CISST_EXPORT
void
112
nmrGaussJordanInverse2x2
(
vctFixedSizeMatrix<double, 2, 2, VCT_COL_MAJOR>
,
bool
&,
113
vctFixedSizeMatrix<double, 2, 2, VCT_ROW_MAJOR>
&,
114
const
double
);
115
template
CISST_EXPORT
void
116
nmrGaussJordanInverse2x2
(
vctFixedSizeMatrix<double, 2, 2, VCT_COL_MAJOR>
,
bool
&,
117
vctFixedSizeMatrix<double, 2, 2, VCT_COL_MAJOR>
&,
118
const
double
);
119
// --- float 2x2 ---
120
template
CISST_EXPORT
void
121
nmrGaussJordanInverse2x2
(
vctFixedSizeMatrix<float, 2, 2, VCT_ROW_MAJOR>
,
bool
&,
122
vctFixedSizeMatrix<float, 2, 2, VCT_ROW_MAJOR>
&,
123
const
float
);
124
template
CISST_EXPORT
void
125
nmrGaussJordanInverse2x2
(
vctFixedSizeMatrix<float, 2, 2, VCT_ROW_MAJOR>
,
bool
&,
126
vctFixedSizeMatrix<float, 2, 2, VCT_COL_MAJOR>
&,
127
const
float
);
128
template
CISST_EXPORT
void
129
nmrGaussJordanInverse2x2
(
vctFixedSizeMatrix<float, 2, 2, VCT_COL_MAJOR>
,
bool
&,
130
vctFixedSizeMatrix<float, 2, 2, VCT_ROW_MAJOR>
&,
131
const
float
);
132
template
CISST_EXPORT
void
133
nmrGaussJordanInverse2x2
(
vctFixedSizeMatrix<float, 2, 2, VCT_COL_MAJOR>
,
bool
&,
134
vctFixedSizeMatrix<float, 2, 2, VCT_COL_MAJOR>
&,
135
const
float
);
136
// --- double 3x3 ---
137
template
CISST_EXPORT
void
138
nmrGaussJordanInverse3x3
(
vctFixedSizeMatrix<double, 3, 3, VCT_ROW_MAJOR>
,
bool
&,
139
vctFixedSizeMatrix<double, 3, 3, VCT_ROW_MAJOR>
&,
140
const
double
);
141
template
CISST_EXPORT
void
142
nmrGaussJordanInverse3x3
(
vctFixedSizeMatrix<double, 3, 3, VCT_ROW_MAJOR>
,
bool
&,
143
vctFixedSizeMatrix<double, 3, 3, VCT_COL_MAJOR>
&,
144
const
double
);
145
template
CISST_EXPORT
void
146
nmrGaussJordanInverse3x3
(
vctFixedSizeMatrix<double, 3, 3, VCT_COL_MAJOR>
,
bool
&,
147
vctFixedSizeMatrix<double, 3, 3, VCT_ROW_MAJOR>
&,
148
const
double
);
149
template
CISST_EXPORT
void
150
nmrGaussJordanInverse3x3
(
vctFixedSizeMatrix<double, 3, 3, VCT_COL_MAJOR>
,
bool
&,
151
vctFixedSizeMatrix<double, 3, 3, VCT_COL_MAJOR>
&,
152
const
double
);
153
// --- float 3x3 ---
154
template
CISST_EXPORT
void
155
nmrGaussJordanInverse3x3
(
vctFixedSizeMatrix<float, 3, 3, VCT_ROW_MAJOR>
,
bool
&,
156
vctFixedSizeMatrix<float, 3, 3, VCT_ROW_MAJOR>
&,
157
const
float
);
158
template
CISST_EXPORT
void
159
nmrGaussJordanInverse3x3
(
vctFixedSizeMatrix<float, 3, 3, VCT_ROW_MAJOR>
,
bool
&,
160
vctFixedSizeMatrix<float, 3, 3, VCT_COL_MAJOR>
&,
161
const
float
);
162
template
CISST_EXPORT
void
163
nmrGaussJordanInverse3x3
(
vctFixedSizeMatrix<float, 3, 3, VCT_COL_MAJOR>
,
bool
&,
164
vctFixedSizeMatrix<float, 3, 3, VCT_ROW_MAJOR>
&,
165
const
float
);
166
template
CISST_EXPORT
void
167
nmrGaussJordanInverse3x3
(
vctFixedSizeMatrix<float, 3, 3, VCT_COL_MAJOR>
,
bool
&,
168
vctFixedSizeMatrix<float, 3, 3, VCT_COL_MAJOR>
&,
169
const
float
);
170
// --- double 4x4 ---
171
template
CISST_EXPORT
void
172
nmrGaussJordanInverse4x4
(
vctFixedSizeMatrix<double, 4, 4, VCT_ROW_MAJOR>
,
bool
&,
173
vctFixedSizeMatrix<double, 4, 4, VCT_ROW_MAJOR>
&,
174
const
double
);
175
template
CISST_EXPORT
void
176
nmrGaussJordanInverse4x4
(
vctFixedSizeMatrix<double, 4, 4, VCT_ROW_MAJOR>
,
bool
&,
177
vctFixedSizeMatrix<double, 4, 4, VCT_COL_MAJOR>
&,
178
const
double
);
179
template
CISST_EXPORT
void
180
nmrGaussJordanInverse4x4
(
vctFixedSizeMatrix<double, 4, 4, VCT_COL_MAJOR>
,
bool
&,
181
vctFixedSizeMatrix<double, 4, 4, VCT_ROW_MAJOR>
&,
182
const
double
);
183
template
CISST_EXPORT
void
184
nmrGaussJordanInverse4x4
(
vctFixedSizeMatrix<double, 4, 4, VCT_COL_MAJOR>
,
bool
&,
185
vctFixedSizeMatrix<double, 4, 4, VCT_COL_MAJOR>
&,
186
const
double
);
187
// --- float 4x4 ---
188
template
CISST_EXPORT
void
189
nmrGaussJordanInverse4x4
(
vctFixedSizeMatrix<float, 4, 4, VCT_ROW_MAJOR>
,
bool
&,
190
vctFixedSizeMatrix<float, 4, 4, VCT_ROW_MAJOR>
&,
191
const
float
);
192
template
CISST_EXPORT
void
193
nmrGaussJordanInverse4x4
(
vctFixedSizeMatrix<float, 4, 4, VCT_ROW_MAJOR>
,
bool
&,
194
vctFixedSizeMatrix<float, 4, 4, VCT_COL_MAJOR>
&,
195
const
float
);
196
template
CISST_EXPORT
void
197
nmrGaussJordanInverse4x4
(
vctFixedSizeMatrix<float, 4, 4, VCT_COL_MAJOR>
,
bool
&,
198
vctFixedSizeMatrix<float, 4, 4, VCT_ROW_MAJOR>
&,
199
const
float
);
200
template
CISST_EXPORT
void
201
nmrGaussJordanInverse4x4
(
vctFixedSizeMatrix<float, 4, 4, VCT_COL_MAJOR>
,
bool
&,
202
vctFixedSizeMatrix<float, 4, 4, VCT_COL_MAJOR>
&,
203
const
float
);
204
#endif
// CISST_COMPILER_IS_MSVC
205
#endif
// DOXYGEN
206
207
#endif
// _nmrGaussJordanInverse_h
208
vctFixedSizeMatrix
Implementation of a fixed-size matrix using template metaprogramming.
Definition
vctFixedSizeMatrix.h:54
CISST_EXPORT
#define CISST_EXPORT
Definition
cmnExportMacros.h:50
cmnPortability.h
Portability across compilers and operating systems tools.
nmrExport.h
Rules of exporting.
nmrGaussJordanInverse4x4
CISST_EXPORT void nmrGaussJordanInverse4x4(vctFixedSizeMatrix< _elementType, 4, 4, _rowMajorIn > A, bool &nonsingular, vctFixedSizeMatrix< _elementType, 4, 4, _rowMajorOut > &Ainv, const _elementType singularityTolerance)
nmrGaussJordanInverse2x2
CISST_EXPORT void nmrGaussJordanInverse2x2(vctFixedSizeMatrix< _elementType, 2, 2, _rowMajorIn > A, bool &nonsingular, vctFixedSizeMatrix< _elementType, 2, 2, _rowMajorOut > &Ainv, const _elementType singularityTolerance)
nmrGaussJordanInverse3x3
CISST_EXPORT void nmrGaussJordanInverse3x3(vctFixedSizeMatrix< _elementType, 3, 3, _rowMajorIn > A, bool &nonsingular, vctFixedSizeMatrix< _elementType, 3, 3, _rowMajorOut > &Ainv, const _elementType singularityTolerance)
vctForwardDeclarations.h
Forward declarations and #define for cisstVector.
Generated by
1.18.0